Send AI Gateway traces to any OpenTelemetry backend, voice agents over WebRTC, and simulations from your own harness
The AI Gateway can now export its traces over OTLP/HTTP to any backend you configure, with the request and response attached when you opt in. Voice agents run as web calls over WebRTC, simulations from the Simulate SDK and Agent Learning Kit post back into Future AGI, enterprise code joins the open-source repository, Error Feed clustering gets sharper, and more.
What's in this digest
Send AI Gateway traces to any OpenTelemetry backend
The AI Gateway can now export a span for each call it handles, or a sampled share if you set a sample rate, to any OTLP/HTTP endpoint you configure, authenticated with headers you set. Turn on include_bodies and each span also carries the request messages and the model response, streamed or not, redacted with your organization’s privacy rules before it leaves the gateway. Chat, image, audio, embedding, and retrieval calls are all covered, and large payloads like base64 images and embedding vectors are recorded by size, not copied.
What you get
- A span per call, in the shape GenAI backends expect. Each span carries the model, the real upstream provider, token counts, the gateway’s own cost, time to first token, latency, and your session, user, and metadata. Attribute names follow the OpenTelemetry GenAI conventions (
gen_ai.*), so spans are classified as LLM or embedding calls instead of landing as unknown. - The actual prompt and response, when you opt in. With
include_bodies: true, the span getsinput.valueandoutput.valueplus the conversation as flattenedllm.input_messagesandllm.output_messages. A trace viewer shows the full back-and-forth, message by message. Streamed completions are assembled from their chunks, so they are captured too, and a failed call keeps its prompt and the upstream error. - Redacted before it leaves. Message content passes through the same privacy config as your gateway request log. Redaction runs on the full text before anything is truncated, so a secret is never half-exported.
- Heavy payloads stay light. Base64 images, embedding vectors, OCR page images, and audio files are recorded as byte counts, not copied onto the span. Transcripts, extracted text, revised prompts, and URLs are kept. In the conversation attributes, images up to 64 KB travel as their data URI; larger ones are replaced with a short placeholder naming the image type and size.
- Your traffic never waits on the collector. Spans are queued and sent in the background, so if the collector is down, requests carry on at normal latency. Rate-limited exports are retried, and export picks back up once the collector is reachable; spans that still can’t be delivered are dropped rather than held.
How to turn it on
Enable the otel plugin in the gateway config, set exporter: "otlp" and protocol: "http/protobuf", and point endpoint at your backend. Add the headers it needs to authenticate, kept in environment variables. Bodies are off by default. Set include_bodies: true only when you want prompts and responses on the span. Short request fields that are useful for filtering, like an image prompt, an audio transcript, or a search query, are recorded as span attributes either way. Use sample_rate to export a share of calls instead of every one. To send spans to Future AGI, use https://api.futureagi.com/v1/traces with your X-Api-Key and X-Secret-Key, or point it at any OpenTelemetry collector you already run.
Why this matters
Until now, a self-hosted gateway could only print spans to standard output. Now gateway traffic lands in the same observability backend as the rest of your stack. Evaluators and trace viewers get the real input and output, and the privacy rules you already set for the gateway still apply.
Who this is for
Teams running the Future AGI AI Gateway, especially self-hosted deployments that want gateway traffic in Future AGI or in their own OpenTelemetry backend.
Voice agents now run as web calls over WebRTC
Voice agents can run as web calls over WebRTC, not just telephony. An explicit WebRTC versus Telephony toggle replaces the old behavior that inferred the transport from whether a phone number was present, and setting up an outbound WebRTC agent no longer requires a phone number or a telephony API key.
Pick the transport, not a workaround. Choose WebRTC or Telephony directly on the voice agent. A browser-based agent needs no phone number and no telephony provider key, so you can build and simulate a web-call agent without provisioning telephony at all.
Improvements
Simulate
Post simulations from the Simulate SDK and Agent Learning Kit into Future AGI. Voice simulations run through the Simulate SDK or the Agent Learning Kit can now be posted back to Future AGI and render exactly like a native voice simulation: transcript, recording, turn-by-turn detail, words per minute, CSAT, tokens, and cost. Results from your own harness are fully observable in the platform.
Evaluation
Re-run a task from its detail header. The task detail header now has a Re-run button, so you can re-run a task without going back to the list.
Eval scores populate from structured outputs. Evaluations that return a structured output now materialize the eval score, so scores show up on the dashboard where you expect them.
Annotation queue actions and label restore. The Archive action in the queue actions menu is clearly visible in light theme, and restoring an archived annotation label works for users whose current organization differs from their original one.
Editable dataset filter chips. Filter chips on datasets are now editable, so you can adjust a filter in place instead of removing and re-adding it.
Numeric annotation labels accept clean values. Creating a numeric annotation label keeps the min and max fields exactly as you typed them, with no trailing zero trapped in either field.
Observe
Sharper error clustering in the Error Feed. The Error Feed’s clustering engine reads each turn in full context, groups related failures more tightly, and titles every cluster from the shared pattern across its traces. Each cluster gives you a cleaner, more accurate picture of what is going wrong and how widespread it is.
Gateway and API
Renamed and retired models are handled for you. Future AGI now tracks when a model is renamed or retired from the catalog. Historical runs that reference a retired model continue to load, the model is flagged with a deprecated badge, and starting a new run on an unavailable model returns a clear message pointing you to a supported one.
Gateway and MCP reliability. A round of Gateway and MCP hardening: tool-schema validation runs on empty arguments, large MCP messages are supported, rate-limited trace exports are retried, and span bodies are truncated on a character boundary so multi-byte text is never cut mid-character.
Platform
Enterprise code joins the open-source repository. Future AGI’s enterprise code now sits in the same open-source repository as the core, behind a license. Capabilities like the Cluster RCA agent, guardrails, and agent optimization build from one place alongside the Apache 2.0 core, so self-hosted and licensed deployments come from a single source. See github.com/future-agi/future-agi.
Checkboxes render clearly in every state. Checkboxes now render clearly in every state, including in dark mode and the selected-evaluation checkbox in the Add Evaluation dialog.
A fresh self-hosted install comes up cleanly. The root environment example now includes the integration encryption key and the Docker Compose default is corrected, so a fresh self-hosted install starts without manual edits.