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

ナビゲーション

▸ ここから始める 役割別

カテゴリー

ツール 32
用語集 12

ツール

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

PydanticAIは、Pydanticチーム(Pythonエコシステムの半分を支えるあの検証ライブラリの開発元)による、AIエージェント構築のためのPythonフレームワークです。PydanticAIの最大の特長は型指定された出力です。出力を通常のPydanticモデルとして記述すれば、フレームワークが検証済みの適切な構造でモデルが応答することを保証します。さらに、直感的な @agent.tool によるtool calling、依存関係の注入(dependency injection)、あらゆるプロバイダーへのサポートも備えています。

他のエージェントフレームワークと同様の課題がトークンコストです。ツールを使用するエージェントは、クエリ → ツール呼び出し → 結果 → 再クエリというサイクルでコンテキストを循環させます。1つのタスクで簡単に数百万トークンを消費します。OpenAI ($2.50–15/1M) や Anthropic ($3–15/1M) の料金設定では、プロトタイプでさえ高コストになり、1日に数千件のリクエストを処理する本番環境は維持不可能になります。

PydanticAIは、OpenAIChatModelOpenAIProvider クラスを通じて、あらゆるOpenAI互換エンドポイントとネイティブに連携します。つまり、JoinGonka Gatewayは数行のコードで接続可能であり、個別のパッケージやアダプターは不要です。その結果、型安全なエージェントが、OpenAI/Anthropicの $2.50–15 に対して $0.003/1Mトークンという、数百〜数千倍の低コストで動作します。

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

まずはキーを取得してください:gate.joingonka.ai/register に登録すると、**10Mの無料トークン**が付与されます。その後、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-あなたのキー",
    ),
)

agent = Agent(model)

result = agent.run_sync("PoUWとは何か、2つの文章で説明してください")
print(result.output)

これだけです。あなたのPydanticAIエージェントが、分散型ネットワークGonkaを通じて低コストで動作します。run_syncメソッドはスクリプトに適しており、非同期コードには await agent.run(...) を使用します。

モデルパラメータ:ネットワークモデルのコンテキストウィンドウは200Kトークン(200000)で、Gateway経由の最大応答長は最大8192トークンです。出力の制限はモデル設定(OpenAIChatModelSettings(max_tokens=8192))を通じて行えます。また、moonshotai/Kimi-K2.6 および MiniMaxAI/MiniMax-M2.7(それぞれ出力最大8192トークン)も利用可能です。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-あなたのキー",
    ),
)


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モデル(Kimi K2.6およびMiniMax M2.7)がネイティブなtool callingをサポートしているために機能します。PydanticAIはそれを利用して有効なJSON構造を返します。出力時には、手動で解析が必要な文字列ではなく、型付けされたPythonオブジェクトが得られます。データ抽出、分類、フォーム入力、および結果が厳密なフォーマットでコードに渡される必要があるRAGパイプラインに最適です。

コスト比較

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

シナリオトークン量OpenAI / AnthropicJoinGonka Gonka
ドキュメントからの構造抽出~3K$0.008 — $0.045~$0.000014
tool callingエージェント (1サイクル)~15K$0.04 — $0.22~$0.00007
RAGパイプライン (1日1000リクエスト)~5M/日$12 — $75/日~$0.024/日
本番エージェント (1日100Kリクエスト)~500M/日$1,250 — $7,500/日~$2.40/日

その差は数百倍から数千倍に達します。プロトタイプ段階では、無料の10Mトークンで数百回のエージェント実行が可能です。1日に数十万件のリクエストを処理する本番環境では、PydanticAIのコードを変更することなく、base_urlを切り替えるだけで、月額数万ドルのコストを削減できます。

1つの jg-xxx APIキーと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-あなたのキー",
    ),
)

agent = Agent(
    model,
    instructions="あなたはアシスタントです。必要に応じてツールを使ってください。",
)


@agent.tool_plain
def roll_dice() -> str:
    """6面ダイスを振り、結果を返します。"""
    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呼び出し → 最終応答)のコストは、OpenAI/Anthropicの$0.04〜$0.22に対し、Gonka経由では約$0.00007です。

モデルの選び方: moonshotai/Kimi-K2.6 — コーディングと複雑な推論に強く、出力は最大8192。 MiniMaxAI/MiniMax-M2.7 — 長い対話やバランスの取れたタスク向け、出力は最大8192。どちらも1つのキーで今すぐ利用可能で、モデル文字列を変更するだけです。関連性の高いツール: チェーンとRAGのための LangChain、データインデックス作成のための LlamaIndex

PydanticAI + Gonka = Pythonを使用した、低コストで型安全なAIエージェント。PydanticモデルでのStructured output、ネイティブなtool calling、dependency injection — すべて1つの base_url を持つ OpenAIChatModel + OpenAIProvider で実現します。コストはOpenAIやAnthropicの$2.50〜$15に対し、1Mトークンあたり$0.003からです。

もっと知りたいですか?

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

10M の無料トークンを取得 →