知識ベースのセクション ▾

ナビゲーション

▸ ここから始める 役割別

カテゴリー

ツール 37
用語集 12

ツール

PydanticAI + Gonka — 超低コストのタイプ付き AI エージェント

PydanticAIは、Pythonエコシステムの半分を支える検証ライブラリPydanticチームによる、AIエージェント作成のためのPythonフレームワークです。PydanticAIの最大の特長は型付き出力です。結果を通常のPydanticモデルとして定義すると、フレームワークがその構造を保証し、検証済みですぐに使える形式でモデルから返されます。さらに、直感的な @agent.tool による tool calling、dependency injection、あらゆるプロバイダーへのサポートを備えています。

すべてのエージェントフレームワークと同様の課題がトークンコストです。ツールを使うエージェントは、クエリ → ツール呼び出し → 結果 → 再クエリというコンテキストのループを繰り返します。1つのタスクで簡単に数百万トークンを消費します。OpenAI(100万トークンあたり2.50〜15ドル)やAnthropic(100万トークンあたり3〜15ドル)の料金体系では、プロトタイプでさえ高額になり、1日数千リクエストを処理する本番環境はコスト的に維持困難です。

PydanticAIは OpenAIChatModel および OpenAIProvider クラスを通じて、あらゆるOpenAI互換エンドポイントとネイティブに連携します。つまり、JoinGonka Gatewayを数行で接続でき、個別のパッケージやアダプターは不要です。その結果、OpenAI/Anthropicの2.50〜15ドルに対し、入力100万トークンあたり$0.0069という数百〜数千分の一のコストで型付きエージェントが動作します。

クイックスタート: コードでの接続

まずキーを取得しましょう:gate.joingonka.ai/register に登録してください(登録時に3Mトークンを無料プレゼント)。その後、Dashboard → API Keys で jg-xxx キーを作成します。

インストール

pip install pydantic-ai
# またはOpenAI依存関係のみの軽量版:
# pip install "pydantic-ai-slim[openai]"

最小構成の例 — Gonka経由のエージェントです。PydanticAIは OpenAIChatModel に渡される OpenAIProvider(base_url=..., api_key=...) を通じてカスタムエンドポイントを設定します:

from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIChatModel
from pydantic_ai.providers.openai import OpenAIProvider

model = OpenAIChatModel(
    "MiniMaxAI/MiniMax-M2.7",
    provider=OpenAIProvider(
        base_url="https://gate.joingonka.ai/v1",
        api_key="jg-your-key",
    ),
)

agent = Agent(model)

result = agent.run_sync("PoUWとは何か、2文で説明して")
print(result.output)

以上で完了です。PydanticAIエージェントが Gonka分散ネットワーク を通じて低コストで動作します。run_sync メソッドはスクリプトに便利ですが、非同期コードには await agent.run(...) が使用できます。

モデルパラメータ:MiniMax M2.7のコンテキストウィンドウは200Kトークン(200000)、DeepSeek V4 Flashは380K、GLM-5.3 Flashは390Kです。Gateway経由の最大出力長は、MiniMaxおよびGLM-5.3 Flashで最大8192トークン、DeepSeekで最大32768トークンです。出力制限はモデル設定(OpenAIChatModelSettings(max_tokens=8192))で行えます。MiniMaxAI/MiniMax-M2.7deepseek-ai/DeepSeek-V4-Flash-0731zai-org/GLM-5.3-Flash が利用可能で、OpenAIChatModel の第1引数でモデル名を変更するだけです。

PydanticAI の特徴: 型付けされた出力

PydanticAIを選択する主な理由は structured output です。応答テキストを正規表現で解析する代わりに、結果をPydanticモデルとして定義し、output_type パラメータに渡します。フレームワークはモデルのtool callingを使用して、厳密にスキーマに従ったデータを返させ、検証を行い、result.output を通じて完成されたオブジェクトを提供します。

from pydantic import BaseModel
from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIChatModel
from pydantic_ai.providers.openai import OpenAIProvider

model = OpenAIChatModel(
    "MiniMaxAI/MiniMax-M2.7",
    provider=OpenAIProvider(
        base_url="https://gate.joingonka.ai/v1",
        api_key="jg-your-key",
    ),
)


class Profile(BaseModel):
    name: str
    role: str
    skills: list[str]


agent = Agent(model, output_type=Profile)

result = agent.run_sync(
    "データを抽出して: アンナはバックエンド開発者で、Python、Go、Postgresを知っています"
)
print(result.output)
# name='アンナ' role='バックエンド開発者' skills=['Python', 'Go', 'Postgres']
print(result.output.skills)  # ['Python', 'Go', 'Postgres'] — list[str]形式で取得

Gonkaの全3モデル(MiniMax M2.7、DeepSeek V4 Flash、GLM-5.3 Flash)がネイティブのtool callingをサポートしているため、これが実現可能です。PydanticAIはこれを利用して有効なJSON構造を返します。出力には、手動で解析が必要な文字列ではなく、型付けされたPythonオブジェクトが得られます。データ抽出、分類、フォーム入力、およびコード内で厳密な形式での結果が求められる RAG パイプラインに最適です。

コスト比較

PydanticAIは、データの抽出、ツールの呼び出し、リクエストストリームの処理など、継続的に稼働するエージェントやパイプラインのためのフレームワークです。ここでトークンコストは、プロジェクトがプロトタイプのまま終わるか、本番環境に進めるかを左右します。典型的な負荷を比較してみましょう:

シナリオトークン数OpenAI / AnthropicJoinGonka Gonka
ドキュメントからの構造抽出~3K$0.008 — $0.045~$0.000028
ツール呼び出しを行うエージェント(1サイクル)~15K$0.04 — $0.22~$0.00014
RAGパイプライン(1日1000リクエスト)~5M/日$12 — $75/日~$0.048/日
本番用エージェント(1日100Kリクエスト)~500M/日$1,250 — $7,500/日~$4.80/日

差は数百倍から数千倍にも及びます。プロトタイプにおいては、3Mの無料トークンでエージェントの初期実行を十分に賄えます。1日数十万リクエストを処理する本番環境では、PydanticAIのコードはそのままで base_url を変更するだけで、月額数万ドルの節約になります。

1つの jg-xxx キーと1つの残高で、OpenAI形式(/v1)とAnthropic形式(/v1/messages)の両方に対応しています。ただし、PydanticAIには上記で示したOpenAI互換エンドポイントで十分です。

ツール呼び出しとモデル選択

PydanticAIの2つ目の重要な機能はツールです。関数はデコレータ @agent.tool_plain (コンテキストなし)または @agent.toolRunContextおよびdependency injectionへのアクセスあり)を使用して登録できます。モデルはいつツールを呼び出すかを自律的に判断し、結果を受け取って推論を継続します:

import random
from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIChatModel
from pydantic_ai.providers.openai import OpenAIProvider

model = OpenAIChatModel(
    "MiniMaxAI/MiniMax-M2.7",
    provider=OpenAIProvider(
        base_url="https://gate.joingonka.ai/v1",
        api_key="jg-ваш-ключ",
    ),
)

agent = Agent(
    model,
    instructions="Ты помощник. Используй инструменты, когда нужно.",
)


@agent.tool_plain
def roll_dice() -> str:
    """Бросает шестигранный кубик и возвращает результат."""
    return str(random.randint(1, 6))


@agent.tool_plain
def calculator(expression: str) -> str:
    """Вычисляет математическое выражение."""
    return str(eval(expression))


result = agent.run_sync("Брось кубик и умножь результат на 7")
print(result.output)

Gonkaでのtool callingはネイティブであるため、脆弱なテキスト解析を必要とせず、ツールは確実に呼び出されます。全体のサイクル(リクエスト → tool呼び出し → 最終回答)のコストはGonka経由で約$0.00007であり、OpenAI/Anthropicの$0.04~0.22と比較して非常に低コストです。

推奨モデル: MiniMaxAI/MiniMax-M2.7 — 長文の対話やバランスの取れたタスク向け、出力は最大8192。 deepseek-ai/DeepSeek-V4-Flash-0731 — ネットワーク上で最も長いコンテキスト(380K)を持ち、大きなプロンプトも安価、出力は最大32768。 zai-org/GLM-5.3-Flash — 複雑な推論を行うreasoningモデルで、ネットワーク上で最長のコンテキスト(390K)を持ち、出力は最大8192。推論には max_tokens の一部が消費されるため、余裕を持って設定(600以上)してください。これら3つのモデルはすべて同じキーで今すぐ利用可能で、モデル名を変更するだけです。関連するツール: チェーンおよびRAGのための LangChain、データインデックス作成のための LlamaIndex

PydanticAI + Gonka = わずかなコストで実現するPython型付きAIエージェント。Pydanticモデルでの構造化出力、ネイティブな tool calling、dependency injectionを OpenAIChatModel + OpenAIProvider (単一の base_url) で利用可能です。コストはOpenAIやAnthropicの2.50〜15ドルに対し、入力100万トークンあたり$0.0069からです。

もっと知りたいですか?

他のセクションを探索するか、Gonkaを今すぐ獲得し始めましょう。

無料トークンを受け取る →