Mistral

A integração com o Mistral fornece MistralChatClient para agentes de chat e MistralEmbeddingClient para representações vetoriais de texto no Agent Framework Python.

Instale o pacote

pip install agent-framework-mistral --pre

Configuration

MISTRAL_API_KEY="<api-key>"
MISTRAL_CHAT_MODEL="mistral-small-latest"
MISTRAL_EMBEDDING_MODEL="mistral-embed"
# Optional compatible endpoint:
MISTRAL_SERVER_URL="<server-url>"

Também pode passar api_key, model, e server_url diretamente para qualquer um dos clientes.

Configura as definições de transporte no cliente. O Agent Framework rejeita server_url, http_headers, retries e timeout_ms quando os passa em cada chamada através de options ou de argumentos nomeados adicionais. As opções de geração continuam disponíveis para cada chamada.

Crie um agente de chat

Crie um Agent com MistralChatClient. O cliente lê a chave API e o modelo de chat a partir das variáveis de ambiente apresentadas na secção anterior.

import asyncio

from agent_framework import Agent
from agent_framework.mistral import MistralChatClient


async def main() -> None:
    client = MistralChatClient()
    try:
        agent = Agent(
            client=client,
            instructions="You are a helpful assistant.",
        )
        response = await agent.run("How many days are in a week?")
        print(response.text)
    finally:
        await client.close()


asyncio.run(main())

O modelo Mistral selecionado determina quais as capacidades ao nível do modelo disponíveis.

Capacidades de chat

MistralChatClient suporta as seguintes funcionalidades do Agent Framework:

Capacidade Usage
Streaming Ligue agent.run(..., stream=True) para iterar sobre atualizações de resposta.
Ferramentas funcionais Adicionar ferramentas de funções do Agent Framework a Agent(tools=...).
Produção estruturada Passe um modelo Pydantic, um mapeamento de esquema JSON ou um objeto JSON em modo de objeto por response_format.
Entrada multimodal Envie dados de imagem ou URLs e URLs de documentos PDF nas mensagens dos utilizadores.
Raciocínio Defina reasoning_effort para modelos suportados e leia o raciocínio devolvido como conteúdo text_reasoning.

Para uma ferramenta funcional executável e um exemplo de streaming, veja a amostra do agente Mistral.

Gerar incorporações

Crie o cliente e chame get_embeddings().

async def basic_embedding_example() -> None:
    """Generate embeddings for a list of texts."""
    print("=== Basic Embedding Generation ===")

    # 1. Create the embedding client using environment-based configuration.
    client = MistralEmbeddingClient()

    # 2. Generate embeddings for multiple texts.
    texts = ["Hello, world!", "How are you?", "Agent Framework with Mistral AI"]
    try:
        result = await client.get_embeddings(texts)

        # 3. Print the generated vectors and usage metadata.
        print(f"Generated {len(result)} embeddings")
        for i, embedding in enumerate(result):
            print(f"  Text {i + 1}: dimensions={embedding.dimensions}, vector={embedding.vector[:5]}...")

        if result.usage:
            print(
                f"  Usage: {result.usage['input_token_count']} input tokens, "
                f"{result.usage['total_token_count']} total tokens"
            )
    finally:
        await client.close()


async def embedding_with_options_example() -> None:
    """Generate embeddings with custom dimensions."""
    print("\n=== Embedding with Custom Dimensions ===")

    from agent_framework.mistral import MistralEmbeddingOptions

    # Only some models support a custom output dimension (e.g. codestral-embed; mistral-embed does not).
    client = MistralEmbeddingClient(model="codestral-embed")

    options: MistralEmbeddingOptions = {"dimensions": 256}

Use MistralEmbeddingOptions para solicitar uma dimensão de saída suportada. Também podes definir MISTRAL_SERVER_URL quando a aplicação usa um endpoint compatível personalizado.

Importante

Mistral AI é um sistema de terceiros. Revise os seus termos de serviço, o tratamento dos dados, os limites regionais, o licenciamento de modelos e os custos de utilização antes de enviar os dados da aplicação.

Tools

MistralChatClient suporta ferramentas de função invocadas localmente e o ciclo de invocação de funções do Agent Framework. O modelo selecionado deve suportar a chamada de funções.

Passos seguintes

RAG