<!-- Models and model choice per customer -->
<!-- canonical: https://plainwater.ai/en/wiki/modellen/modelkeuze -->
# Models and model choice per customer

Plainwater AI is not tied to one model vendor. Each model has an explicit route to a provider, and per customer you decide
which models may be used. You can work with Claude for one customer and only with a European model for another.

## Which models

| Family | Via | Note |
| --- | --- | --- |
| **Claude** (Opus, Sonnet, Haiku) | Azure AI Foundry | Claude via Foundry has no EU data zone yet |
| **GPT** | Azure OpenAI | EU data residency available |
| **Gemini** | Google, via the OpenAI-compatible layer | The newest models lag behind on EU residency |
| **Mistral** | Mistral | European vendor |
| **Any other model with an OpenAI-compatible API** | Configuration | No code needed |

Adding a new model with an OpenAI-compatible API is a matter of configuration: an address, a way of authenticating and a
name for the audit. There is no translation layer that silently converts another protocol.

## How routing works

Every model request goes through the [AI gateway](https://plainwater.ai/en/wiki/concepten/ai-poort). There, a table says per model which provider
answers. Nothing is guessed from a prefix in the model name. A model that is not in the table is refused.

The gateway takes exactly one policy decision per request: may this customer use this model, does it fit the budget, do
other rules apply? A refused request does not reach the provider.

## Model choice per customer

A customer's ground rules state which models are allowed. That is a list within the models the platform offers.
Examples:

- A customer without special requirements allows Claude, GPT and Mistral.
- A customer that wants European processing only allows only Mistral and Azure OpenAI with EU residency.
- A customer on a tight budget allows only the smaller models.

See [ground rules per customer](https://plainwater.ai/en/wiki/beheer/spelregels).

## Model choice in a conversation

In a conversation you choose the model, or leave it on **Auto**. On Auto the platform chooses. A first responder answers
simple questions straight away, and heavier work goes to an agent. You can only choose from models allowed for the
customer.

## Agents and harnesses

An agent runs in a harness: the software that lets the model work with tools. For Claude models that is the Claude Code
harness. For other models the platform uses a harness that works with any OpenAI-compatible model. In both cases the
platform checks every tool call before it is executed.

## Your own AI tool

If you would rather work in your own AI tool, connect it via MCP. That works with any MCP-compatible AI tool, such as
Claude Code, Codex, GitHub Copilot and Cursor. See [connecting your own AI tool](https://plainwater.ai/en/wiki/eigen-ai/mcp-koppelen). The model
then runs outside the platform; the data access rules still apply on the tool layer.

:::note What we do not promise
We only name models and tools whose route we have set up ourselves. An AI tool that speaks MCP can in principle connect.
Whether it works well in practice depends on how that tool supports MCP and OAuth.
:::

## Example

A consultancy works for three customers. Customer A allows Claude Opus and Sonnet. Customer B is a municipality and allows
only Mistral. Customer C wants to limit costs and allows only Claude Haiku and a small GPT model. A consultant switching
from customer A to customer B sees only Mistral in the model menu. If an agent tries another model anyway, the gateway
refuses the request and it never reaches the provider.

:::tip Read on
- [The AI gateway](https://plainwater.ai/en/wiki/concepten/ai-poort)
- [European processing and hosting](https://plainwater.ai/en/wiki/veiligheid/europa)
:::
