Skip to content
Connect AI Assets

Connect AI assets ​

Connect every AI asset you run — agents, MCP servers and skills — so Boidra Platform can show what each one did, what it cost and how it performed. Boidra Platform ingests standard OpenTelemetry spans that follow the GenAI semantic conventions. If your asset already emits those, you only need to point its exporter at Boidra Platform. This page covers the data model and the one piece of config every path shares.

What you can connect ​

AssetHow it shows upWhat to do
Agent — a custom Joule agent, an A2A agent on BTP, a domain agentIts turns as invoke_agent spans and its LLM calls as chat spans, under its agent namePoint the agent's OpenTelemetry exporter at Boidra Platform (below)
MCP server — custom, or exposed through the MCP GatewayEvery call as an execute_tool span with the tool's name, and tool type mcpEmit tool spans from the agent or client that calls it, or from the server itself
Skill — a reusable capability run by an agent or clientThrough the agent or client that runs it: as the agent turn or the tool call it performsInstrument the agent or client that runs the skill

Once connected, the same asset can be registered and published in the AI Asset Dashboard, so people can find it and its usage and cost are tracked from the first call.

The flow ​

Your AI asset (agent · MCP server · skill runner)
   │  (OpenTelemetry SDK)
   ▼
OTLP exporter  ──OTLP/HTTP──▶  POST /otel/v1/traces  ──▶  Boidra Platform backend  ──▶  Dashboard

The three span types ​

Boidra Platform stores every span as one of three types, decided from the GenAI gen_ai.operation.name attribute (with span-name fallbacks):

gen_ai.operation.nameSpan typeMeaning
invoke_agentinvoke_agentA top-level agent turn
chat / text_completionchatAn LLM call
execute_toolexecute_toolA tool or MCP call

Spans that aren't GenAI-shaped (HTTP client spans, framework "workflow" wrappers, zero-duration empty agent wrappers) are skipped — so you can export everything and Boidra Platform keeps only the meaningful agent/LLM/tool spans.

The attributes Boidra Platform reads ​

These are the OpenTelemetry GenAI attributes that populate dashboard fields. Fallback keys are accepted where shown.

Dashboard fieldAttribute (with fallbacks)
Span typegen_ai.operation.name
Agent namegen_ai.agent.name → agent_name → (service.name for agents)
Modelgen_ai.request.model → gen_ai.response.model → model
Input tokensgen_ai.usage.input_tokens → gen_ai.usage.prompt_tokens
Output tokensgen_ai.usage.output_tokens → gen_ai.usage.completion_tokens
Tool namegen_ai.tool.name → tool_name
Tool typegen_ai.tool.type → tool_type
Conversation idgen_ai.conversation.id → a2a.context_id → conversation_id
Tenant idsap.tenancy.tenant_id → tenant_id
User iduser.id → user_id
ErrorOTel span status ERROR, or error = true / outcome = "error"

The full authoritative table is on the OTLP attributes reference.

The shared config: point the exporter at Boidra Platform ​

Every path sets the OTLP endpoint to your Boidra Platform host, with the /otel prefix:

bash
export OTEL_EXPORTER_OTLP_ENDPOINT="https://<your-dashboard-host>/otel"

The OpenTelemetry SDK appends /v1/traces, so spans land at /otel/v1/traces.

Use OTLP/HTTP, not gRPC

Boidra Platform's ingest is OTLP/HTTP. Some SDKs (including the SAP Cloud SDK for Python) default to gRPC. When that's the case, also set:

bash
export OTEL_EXPORTER_OTLP_PROTOCOL="http/protobuf"

Choose your path ​

Boidra — multi-agent AI systems in the SAP ecosystem.