Agent Stream

LLM safety and cost control, on every call your agents make.

Agent Stream inspects and governs every LLM call your apps and agents make: blocking prompt injection and data leaks, capping what each team can spend, and routing to the right model, without changing a line of agent code.

OWASP Prompt injection is the #1 risk on the OWASP Top 10 for LLM apps, in both the 2023–24 and 2025 editions. Agent Stream is built to shut it down.

Why it's different

Most LLM gateways route requests. Agent Stream governs them.

Safety, not a checkbox

Real guardrails, in depth

Most gateways bolt on “PII sanitisation and toxicity filtering”. Agent Stream runs a layered, fail-closed safety pipeline: Prompt Guard plus a Judge, Jury and expert-witness council, on every call.

No code to change

Drop-in, not a rebuild

Point your existing OpenAI SDK at Agent Stream instead of the provider. No SDK swap, no agent rewrite. It behaves exactly as before, just governed.

One integration, not a stack

Replace the stack, don’t add to it

Guardrails, budgets, routing and audit live in one layer, so there’s no separate safety tool wired to a separate cost tool wired to a separate proxy.

The Stream console

One console. Every call safe and accounted for.

Watch every model call ride the governed pipeline, track spend across the estate, follow calls live, and see exactly why each one was blocked. The whole story, in one place.

Use cases

How teams put it to work.

From shutting down the OWASP top risks and capping team spend to reliability, editor-native models and document-grounded chat.

Shut down the OWASP top risks

Apply one auditable guardrail across every model and team, fail-closed by default.

  • Block prompt injection and jailbreaks
  • Mask PII before it reaches a provider
  • A rejection taxonomy for every block

A defensible, provable AI safety posture.

Stop teams eating the budget

Cap and allocate AI spend across every team, member and provider.

  • Monthly ceilings and quotas per team
  • Per-team chargeback, exported to CSV
  • Dynamic model assignment to right-size cost

Predictable spend, no bill surprises.

Reliability without effort

Let model calls degrade gracefully with no per-service work.

  • Cross-provider failover
  • Latency- or cost-optimised load balancing
  • Retries, circuit breakers, response cache

Graceful degradation, on your terms.

Governed models in every editor

Roll AI coding assistants out to the whole org through corporate SSO.

  • Native VS Code extension, not just a URL
  • One Access Point URL per team
  • Only company-approved, entitled models
  • Per-user spend attribution

A paved road to AI in the editor.

Answer from corporate docs, safely

Ground answers on sensitive knowledge without handing it to a model.

  • Grounded under the user’s own Entra ACLs
  • Documents never leave the M365 boundary
  • Fully metered and policy-gated

Expose the chat, not the corpus.

Prove what every model did

Give security and finance one audit trail for every AI call across the org.

  • Full log of who called what, and why it passed or blocked
  • Per-call cost, latency and tokens, exportable
  • Evidence ready for audits and incident review

Answers when compliance comes asking.

Where it fits

Where Agent Stream sits in your stack.

Agent Stream sits between your apps, agents and editors and the models they call, so every request is inspected, governed and recorded on the way through.

Apps, agents & editors
Chat featuresWeb & mobile
New Coding assistantsAgent Stream for VS Code · Copilot
Agent frameworksOpenAI-compatible
Batch & pipelinesEmbeddings · audio
All model calls
Governed LLM pipeline Agent Stream
  • Guardrails & safety
  • Budgets & quotas
  • Routing & resilience
  • Observability & attribution
Governed & metered
Model & service providers
Any OpenAI-compatible APIOpenAI · Anthropic · Gemini · Bedrock + any OpenAI-schema endpoint
Local & OSSOllama · vLLM · Together · Groq · Mistral
Enterprise M365 CopilotEntra-ready · tied to user identity

Drop-in, no code change

Point your OpenAI SDK at a surface route instead of the provider. Safety, cost and resilience apply centrally, and your app and agents stay exactly as they are.

Runs where you need it

Affinidi hosted by default, with the same governance for every call. Self-hosted? Talk to us

Hot-reloadable config

Change a policy, budget or provider and it takes effect with no restart and no dropped requests. Governance you can tune live.

Detect AI behaviour changes before they become business problems

Keep production AI behaviour measurable, reviewable and under control.

Built for safety

Everything you need to make an LLM safe.

Defence in depth, fail-closed by default, aligned to the OWASP LLM Top 10. A deterministic guard on both seams, wrapped around a review council that gates every call.

Prompt Guard

Catch PII and secrets before they leave

Deterministic regex and PII inspection on both the request and response seams, with an optional model-backed PII pass. Redact-and-continue or block outright, so sensitive data never reaches a provider.

OWASP LLM02 · Sensitive Information Disclosure
The review council

Judge, Jury and Expert Witness, together

An Expert Witness gates both seams, a Judge pre-checks each request before the model runs, and a Jury votes on every response. Fail-closed by default, so a guardrail outage blocks rather than leaks.

  • Expert Witnesses Purpose-built external classifiers: EnkryptAI, Lakera, Azure Prompt Shields and Azure Content Safety, that detect-and-block on both the request and response seams.
  • Judge An LLM pre-check that blocks an unsafe request before the main model is ever called.
  • Jury A multi-model vote that reviews the response and can approve, block, or regenerate it.
OWASP LLM01 · Prompt Injection · #1, two editions running

Prove what you stopped

Every block is classified (prompt injection, PII, toxicity, policy violation) and charted per team, member and surface. Show exactly what was caught, and why.

Cost you control

Don't let one team burn the budget.

Every call is metered per stage and attributed to a team and a member, so AI spend is capped, allocated and predictable.

Budgets & quotas

Monthly USD and token ceilings per team, member or surface. Hit the cap, and requests stop.

Per-team cost allocation

See who spent what, on which model, and export a chargeback CSV straight to finance.

Dynamic model assignment

A router sends cheap requests to a small model and hard ones to a frontier model, automatically. Right-size every call.

Cost- & latency-aware routing

Balance across a pool of providers by lowest cost or lowest latency. No code changes.

Anomaly alerts

Cost-spike, token and error-rate alerts fire before the monthly bill can surprise you.

Everything else it does

The rest of the control plane.

Beyond safety and cost, every model call carries identity, resilience and full visibility.

Bind every call to a real user

Tie each request to a person in Microsoft Entra or Okta: per-user budgets, group policy and entitlement-filtered model menus. Identity, not just an API key.

  • Entra
  • Okta
  • Per-user policy

Resilience

Cross-provider failover, weighted / lowest-latency / lowest-cost load balancing, retries and circuit breakers. Model calls degrade gracefully, per surface.

  • Failover
  • Load balancing
  • Circuit breakers

Teams & attribution

Members and teams are full virtual keys: model allow-lists, per-minute rate limits and monthly caps. Spend and blocks roll up across every surface for chargeback.

  • Virtual keys
  • Chargeback
  • Per-team quotas

Observability

Live spend, token, latency and throughput dashboards, rejection analytics, and native export to Langfuse, OpenTelemetry and Prometheus.

  • Dashboards
  • Rejection analytics
  • OTel · Langfuse

IDE Surfaces

The Agent Stream for VS Code extension brings a governed, SSO-backed model menu right into the editor, alongside GitHub Copilot Chat and any OpenAI-compatible agent. Only the models a developer is entitled to, no key in the editor.

  • Agent Stream for VS Code
  • Entra SSO
  • Entitlement-filtered

Document-grounded chat*

Front Microsoft 365 Copilot from inside the Agent Stream for VS Code extension: pull in your own emails and documents mid-conversation, grounded under your Entra ACLs. Only the answer crosses back, the agent never sees the corpus.

  • M365 Copilot
  • ACL-preserving
  • Expose the chat, not the corpus

One gateway, every model

OpenAI, Anthropic, Gemini, Bedrock, and Ollama through a single endpoint. Switch providers or split traffic from the dashboard, no redeployment needed.

  • Multi-provider
  • One endpoint
  • No redeployment

Policy enforcement (OPA)

Fine-grained, context-aware allow/deny through an embedded Rego engine, evaluated in-process at the global and per-surface level. No sidecar.

  • OPA / Rego
  • In-process
  • Global + surface

Every endpoint governed

Chat, embeddings, images, audio and batch all ride the same pipeline, so safety, cost and attribution apply to your whole model footprint, not just chat.

  • Chat & embeddings
  • Audio & images
  • Batch

Voice & audio, governed

Gate audio input, transcription and realtime voice by model capability and policy — the same enforcement that covers chat now reaches every voice interaction.

  • Realtime voice
  • Transcription
  • Capability-aware

Document-grounded chat requires a per-user Microsoft 365 Copilot licence and Entra admin setup, is text-only in this release, and is built on Microsoft’s beta Copilot API.

Explore the suite

The rest of the Trust Fabric.

Agent Stream pairs with two companion products that extend the same identity, policy and audit model end to end.

Agent Gateway

A unified control layer that governs AI usage across every agent interaction.

  • Verifiable identity for every agent
  • Policy enforcement and full observability
  • Native MCP, A2A and AP2 support
Explore Agent Gateway
Agent Pay Coming soon

Where AI transactions are governed, verified and settled in real time.

  • Enforce payment conditions before execution
  • Verify payment proofs and settle under policy
  • Support x402 and MPP payment protocols
Get started

Make every model call safe, today.

Bring safety, cost control and full attribution to every LLM call. Deploy on the Affinidi Portal.

Cookie Preferences

We use cookies to enhance your experience. You can manage your preferences below. For more information, read our Cookie Policy.

Strictly Necessary Always Active

These cookies are essential for core website functions such as security, session integrity, and cookie preference storage. They cannot be disabled.

  • _cf_bm: Distinguishes humans from bots (Cloudflare) · 30m
  • _cfuvid: Ensures secure browsing (Cloudflare) · Session
  • __hs_initial_opt_in: Prevents HubSpot's banner · 7 days
  • _gtm_debug: GTM debug mode (testing only) · Session
Analytics

These cookies help us understand how visitors interact with the site so we can improve content and performance. All data is aggregated and anonymous.

  • _ga, _gid, _gat: Google Analytics · Session – 2 years
  • __hstc, hubspotutk, __hssrc: HubSpot visitor tracking · 13 months
  • __hs_opt_out: HubSpot opt-out preference · 6 months
Marketing & Targeting

These cookies allow us and our partners to serve personalised ads and measure campaign performance.

  • _gcl_au, _gcl_dc: Google Ads conversion tracking · 90 days
  • IDE: Google Display Network personalisation · 1 year
  • _fbp: Meta / Facebook remarketing · 90 days
  • li_gc, _li_fat_id, bcookie: LinkedIn tracking · 1–24 months
  • guest_id, personalization_id: Twitter/X analytics · 2 years