> For the complete documentation index, see [llms.txt](https://docs.visdom.virtuslab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.visdom.virtuslab.com/visdom-ai-gateway/roadmap.md).

# Roadmap

From two good gateways to one governed door.

The gateways already route and meter. The direction is to make every call through them *governed*: owned by a person or an application the Control Plane knows, decided by a policy before it runs, and recorded with its cost in one signed chain. The items below are grouped by horizon, not dated.

{% hint style="warning" %}
Roadmap items are direction, not commitments. Order and scope can change. What ships is listed on [Available today](/visdom-ai-gateway/available-today.md).
{% endhint %}

## Next

* **Control Plane as the source of truth.** Teams, virtual keys (owner, scope, expiry, rotation) and budgets created in the Control Plane and written to the LLM gateway. People sign in through the same Keycloak as every other Visdom product.
* **Every call in AI Tracing.** A gateway callback that writes identity, model, tokens, cost, timing and outcome to the signed chain; refusals recorded with their reason.
* **Policy Gate v1 in both gateways.** Deny by default: allowed models per team, allowed MCP servers and tools per team, secret blocking, custom rules (regular expressions, lists, CEL). Policies kept in Git and reviewed as pull requests.
* **Kill switch.** One action in the Control Plane that turns off a model, a provider, an MCP server or a single tool in both gateways, without a restart, and is recorded in the chain.
* **PII masking** with Presidio, inside the cluster. Masking is flagged in a response header; responses are never unmasked.
* **SIEM export** through an OpenTelemetry collector to Splunk, syslog or Elasticsearch.
* **Cost export** as CSV and a FinOps endpoint, with provider cost and platform cost kept apart.
* **Helm chart**, SBOM and signed images; GitOps install.
* **Local models** with vLLM behind the same aliases and policies, with a GPU cost rate for chargeback.

## Later

* **Organisation hierarchy.** Departments and teams read from the directory (Entra ID, LDAP); budgets and allow-lists inherited down the tree, narrowed but never widened; delegated administration per subtree.
* **Budget actions beyond a stop.** At a threshold, throttle or reroute to a cheaper model instead of refusing; a request-for-more flow from the alert.
* **Per-user OAuth to MCP tools.** Each call to a tool made with the caller's own token, stored encrypted per user; service accounts with an on-behalf-of field for systems without OAuth.
* **Tool-level access control enforced by the gateway**, independent of what the tool server itself allows.
* **Human approval for high-risk tools** at the gateway: per call, or pre-approved for a defined scope; the approver is never the caller.
* **Content classifiers** for prompt injection and unsafe output (Prompt Guard, Llama Guard) inside the cluster, turned on per team, including on MCP tool arguments and results.
* **The current MCP specification (2026-07-28)** alongside 2025-11-25.
* **Retention controls.** Content stored separately from the signed metadata; redaction that keeps the hash; legal hold.
* **Signed offline update bundles** for air-gapped sites.
* **High availability** for every component, with limit counters rebuilt from the ledger and calls buffered when AI Tracing is unavailable.

## Exploring

* **Worker-model delegation.** Bulk reading and boilerplate sent to a cheaper model by policy, with the saving visible in the ledger.
* **Response caching** where a team's policy allows it.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.visdom.virtuslab.com/visdom-ai-gateway/roadmap.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
