35c6b880f7
* Fix Mistral cached token usage Map prompt cache hits from Mistral chat usage into the standard usage details. Add regression coverage for regular and streaming responses. * Validate Mistral cached token usage * fix(mistral): satisfy strict cached token typing Narrow prompt token details before reading cached_tokens so the Mistral package passes strict Pyright without changing runtime validation.\n\nAddresses https://github.com/microsoft/agent-framework/pull/7597#discussion_r3750712320
Get Started with Microsoft Agent Framework Mistral AI
Please install this package:
pip install agent-framework-mistral --pre
and see the README for more information.
See the Mistral agent sample and the Mistral embedding sample for runnable examples.
Chat Client
The MistralChatClient provides chat completions using Mistral AI models, with support for
streaming, function tools, and structured output.
Quick Start
from agent_framework import Agent
from agent_framework.mistral import MistralChatClient
# Using environment variables (MISTRAL_API_KEY, MISTRAL_CHAT_MODEL)
# Parameters can also be passed directly:
# MistralChatClient(model="mistral-large-latest", api_key="your-api-key")
client = MistralChatClient()
try:
agent = Agent(client=client, instructions="You are a helpful assistant.")
response = await agent.run("Hello!")
print(response.text)
finally:
await client.close()
Configuration
| Environment Variable | Description |
|---|---|
MISTRAL_API_KEY |
Your Mistral AI API key |
MISTRAL_CHAT_MODEL |
Chat model name (e.g., mistral-large-latest) |
MISTRAL_SERVER_URL |
Optional server URL override |
Embedding Client
The MistralEmbeddingClient provides embedding generation using Mistral AI models.
Quick Start
from agent_framework.mistral import MistralEmbeddingClient
# Using environment variables (MISTRAL_API_KEY, MISTRAL_EMBEDDING_MODEL)
client = MistralEmbeddingClient()
try:
# Parameters can also be passed directly:
# MistralEmbeddingClient(model="mistral-embed", api_key="your-api-key")
result = await client.get_embeddings(["Hello, world!", "How are you?"])
for embedding in result:
print(f"Dimensions: {embedding.dimensions}")
print(f"Vector: {embedding.vector[:5]}...")
finally:
await client.close()
Configuration
| Environment Variable | Description |
|---|---|
MISTRAL_API_KEY |
Your Mistral AI API key |
MISTRAL_EMBEDDING_MODEL |
Embedding model name (e.g., mistral-embed) |
MISTRAL_SERVER_URL |
Optional server URL override |