Mistral

Mistral 統合では、チャット エージェントのMistralChatClientと、Agent Framework Pythonのテキスト埋め込みのMistralEmbeddingClientが提供されます。

パッケージをインストールする

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>"

api_key、model、server_urlをどちらのクライアントにも直接渡すこともできます。

クライアントでトランスポート設定を構成します。 エージェント フレームワークは、optionsまたは追加のキーワード引数を介して呼び出しごとに渡すときに、server_url、http_headers、retries、およびtimeout_msを拒否します。 生成オプションは、呼び出しごとに引き続き使用できます。

チャット エージェントを作成する

MistralChatClientを使用してAgentを作成します。 クライアントは、前のセクションで示した環境変数から API キーとチャット モデルを読み取ります。

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())

選択したミストラル モデルによって、使用できるモデル レベルの機能が決まります。

チャット機能

MistralChatClient では、次の Agent Framework 機能がサポートされています。

Capability Usage
ストリーミング agent.run(..., stream=True)を呼び出して、応答の更新を反復処理します。
関数ツール Agent Framework 関数ツールを Agent(tools=...)に追加します。
構造化された出力 response_formatを使用して、Pydantic モデル、JSON スキーマ マッピング、または JSON オブジェクト モードを渡します。
マルチモーダル入力 ユーザー メッセージで画像データまたは URL と PDF ドキュメント URL を送信します。
推論 サポートされているモデルの reasoning_effort を設定し、返された思考を text_reasoning コンテンツとして読み取ります。

実行可能な関数ツールとストリーミングの例については、 Mistral エージェントのサンプルを参照してください。

埋め込みの生成

クライアントを作成し、 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}

MistralEmbeddingOptionsを使用して、サポートされている出力ディメンションを要求します。 アプリケーションでカスタム互換性のあるエンドポイントを使用する場合は、 MISTRAL_SERVER_URL を設定することもできます。

Important

Mistral AI はサード パーティのシステムです。 アプリケーション データを送信する前に、サービス条件、データ処理、地域境界、モデル ライセンス、および使用コストを確認します。

Tools

MistralChatClient では、ローカルに呼び出された関数ツールと Agent Framework 関数呼び出しループがサポートされます。 選択したモデルは、関数呼び出しをサポートする必要があります。

次のステップ

RAG