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

ナビゲーション

▸ ここから始める 役割別

カテゴリー

ツール 54
用語集 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.0062という数百〜数千分の一のコストで型付きエージェントが動作します。

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

まずはキーを取得しましょう:gate.joingonka.ai/register で登録すると無料トークン 3M がもらえます。登録後、Dashboard → API Keys で jg-xxx キーを作成してください。

インストール:

pip install pydantic-ai
# or the slim variant with only the OpenAI dependencies:
# pip install "pydantic-ai-slim[openai]"

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

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("Explain in two sentences what PoUW is")
print(result.output)

これだけ。あなたの PydanticAI エージェントは分散型ネットワーク Gonka を通じて、わずかなコストで動作します。スクリプトには run_sync メソッドが便利で、async コードには await agent.run(...) があります。

モデルパラメータ:MiniMax M2.7 のコンテキストウィンドウは 180K トークン(180000)、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.7、deepseek-ai/DeepSeek-V4-Flash-0731、zai-org/GLM-5.3-Flash が利用可能で、OpenAIChatModel の最初の引数のモデル名を変えるだけです。

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(
    "Extract the data: Anna is a backend developer who knows Python, Go and Postgres"
)
print(result.output)
# name='Anna' role='backend developer' skills=['Python', 'Go', 'Postgres']
print(result.output.skills)  # ['Python', 'Go', 'Postgres'] — already a list[str], not text

これは 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.tool(RunContext と 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-your-key",
    ),
)

agent = Agent(
    model,
    instructions="You are an assistant. Use the tools when needed.",
)


@agent.tool_plain
def roll_dice() -> str:
    """Rolls a six-sided die and returns the result."""
    return str(random.randint(1, 6))


@agent.tool_plain
def calculator(expression: str) -> str:
    """Evaluates a math expression."""
    return str(eval(expression))


result = agent.run_sync("Roll the die and multiply the result by 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つすべてが1つのキーで今すぐ利用可能 — 変えるのはモデル文字列だけです。関連ツール:チェーンと RAG には LangChain、データインデックスには LlamaIndex。

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

もっと知りたいですか?

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

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