Skip to content

Docs: add a Mistral AI model provider page for kagent 1.x #517

Description

@Rachael-Graham

Warning

Blocked: the Mistral provider does not run. Do not write this page yet.

Verified on a kind cluster on 2026-09-23, built from kagent 1e5533b2. A Mistral ModelConfig is rejected on every runtime, and the AgentTemplate reports Compatible=False with the reason UnsupportedConfiguration:

ModelConfig "mc-mistral": unsupported model provider: Mistral

kagent-dev/kagent#2406 added Mistral to the API enum, the ADK model builder, the Helm values and the UI, but not to the provider switch in resolveModelConfig (go/core/internal/translator/modelconfig.go), so every Mistral ModelConfig falls through to the default arm. This needs a fix in kagent before there is anything to document. help wanted is removed until then — everything below stays accurate as scoping, and the page is worth writing the moment the provider resolves.

Mistral AI is meant to be a first-class provider in kagent, and the 1.x doc set has no page for it. kagent#2406 landed the CRD field, both ADK runtimes, the Helm values, and the UI. It did not land the controller translator, which is what blocks the page.

This is one new page plus two edits to existing pages.

What the page covers

Creating a ModelConfig that names a Mistral model, and the settings the mistral block takes.

The spine of the page is that Mistral speaks the OpenAI-compatible wire protocol. Both runtimes reuse the OpenAI client internally and post to {baseUrl}/chat/completions with a bearer token, so the page reads much like OpenAI rather than introducing a new transport. Follow the structure of the existing provider pages instead of inventing one.

The configuration surface

ModelConfig.spec.mistral, defined in go/api/v1alpha3/modelconfig_types.go. Every field is optional, and an empty block is valid.

Field Meaning
baseUrl The Mistral API endpoint. Defaults to https://api.mistral.ai/v1. Set it to reach a self-hosted or regional endpoint.
temperature The sampling temperature, written as a string.
topP The top-p sampling parameter, written as a string.
maxTokens The maximum number of tokens to generate. Minimum 1.
timeout The timeout in seconds for the underlying HTTP client. Minimum 1.

Admission rules. Mistral joins the provider enum alongside OpenAI, Anthropic, AzureOpenAI, Ollama, Gemini, GeminiVertexAI, AnthropicVertexAI, Bedrock, SAPAICore and Foundry. A CEL rule rejects a mistral block on any other provider with the message provider.mistral must be nil if the provider is not Mistral.

Credentials. The runtime reads MISTRAL_API_KEY, which the controller injects from the Secret that apiKeySecret names. MISTRAL_API_BASE overrides the endpoint at the environment level.

Helm. The chart carries a providers.mistral block at helm/kagent/values.yaml with apiKeySecretRef: kagent-mistral and apiKeySecretKey: MISTRAL_API_KEY. The default provider is unchanged, so Mistral is opt-in at install time.

Models. The UI model catalog offers ten Mistral models, all with function calling: mistral-large-latest, mistral-medium-latest, mistral-small-latest, magistral-medium-latest, magistral-small-latest, codestral-latest, ministral-8b-latest, ministral-3b-latest, pixtral-large-latest and open-mistral-nemo.

Behavior the API does not announce

  • The pull request description says the CRD lives in v1alpha2. It does not. The type is in v1alpha3, and every example on the page must use apiVersion: kagent.dev/v1alpha3, matching the other provider pages. Do not copy the YAML out of the pull request body.
  • Today no runtime can run a Mistral ModelConfig, for the resolver reason in the warning at the top. Once that is fixed, the intended limit is kagent and byo only: the codex compiler accepts OpenAI and Bedrock alone, and the claude compiler accepts Anthropic and Bedrock alone. Re-confirm on a cluster when the fix lands rather than inferring it from the compiler.
  • Mistral embeddings are not supported. mistral-embed is out of scope in the pull request, because the Python EmbeddingConfig type does not discriminate on provider the way Model does. Do not document Mistral as an embedding provider.

Where the file goes

docs-site/content/kagent/1.x/setup/model-providers/mistral.md, weighted among the existing provider pages.

Two edits go with it:

  • Add Mistral to the provider enum row in the field table on about-model-providers.md.
  • Check whether the runtime-availability bullets on that same page need a Mistral mention, given that codex and claude cannot run it.

What to check before starting

  1. Read an existing provider page end to end, such as gemini.md or xai.md, and match its shape.
  2. Confirm the field table against the CRD on the version you are documenting, not against the pull request body.
  3. Get a Mistral API key and run the guide on a cluster. A provider page that has never been run is not finished.

Done when

  • Blocker cleared: Mistral is handled in resolveModelConfig, and a Mistral agent completes a turn on a cluster.
  • mistral.md exists, follows the structure of the other provider pages, and was run against a real Mistral key.
  • The field table matches MistralConfig in v1alpha3, including the defaults and the minimums.
  • Every YAML example uses apiVersion: kagent.dev/v1alpha3.
  • The provider enum row on about-model-providers.md lists Mistral.
  • The runtime restriction is stated, and was verified on a cluster rather than read off the compiler. Note that #529 corrects the claude runtime list on about-model-providers.md, so check that page's current state before repeating its wording.
  • The page is reachable from the model providers navigation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationkagent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions