AI Agents · レッスン

コストを意識する:トークン数のカウントと予算

tiktokenでトークン数を数え、送信前にコストを見積もり、リクエスト単位および日単位の予算を適用します。

レッスン 4/413 ステップ

「コストを意識する:トークン数のカウントと予算」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。

トークン数を数えることが重要な理由

料金はトークン単位で発生します。トークン予算のないエージェントループが暴走すると、数分で数百ドルを費やす可能性があります。

トークン数のカウントは、コストを管理するうえで最も重要な習慣です。

トークンとは何か

トークンとは、モデルが処理するテキストの一部分です。英語についての大まかな目安は次のとおりです。

  • 1トークン ≈ 4文字
  • 1トークン ≈ 0.75語
  • 100トークン ≈ 75語

コード、絵文字、英語以外のテキストでは、1文字あたりのトークン数が多くなります。

tiktoken(OpenAI)でトークン数を数える

OpenAIは正確なトークナイザーを提供しています。

# pip install tiktoken
import tiktoken

enc = tiktoken.encoding_for_model('gpt-4o-mini')
tokens = enc.encode('Hello, world!')
print(len(tokens))   # 4
print(tokens)        # [9906, 11, 1917, 0]

メッセージのトークン数を数える

完全な数には、メッセージ構造のオーバーヘッドも含まれます。

def count_message_tokens(messages, model='gpt-4o-mini'):
    enc = tiktoken.encoding_for_model(model)
    total = 0
    for m in messages:
        total += 4  # role + structural
        total += len(enc.encode(m['content']))
    return total + 2  # priming

Anthropicでトークン数を数える

Anthropicは、サーバー側でカウントするエンドポイントを提供しています。

count = client.messages.count_tokens(
    model='claude-sonnet-4-5',
    system='You are helpful.',
    messages=[{'role': 'user', 'content': 'Hello'}],
)
print(count.input_tokens)

送信前にコストを見積もる

トークン数にトークン単価(プロバイダーの料金ページに記載)を掛けます。

INPUT_PRICE = 0.150 / 1_000_000   # gpt-4o-mini: $0.15 / 1M input tokens
OUTPUT_PRICE = 0.600 / 1_000_000

input_tokens = count_message_tokens(messages)
est_input_cost = input_tokens * INPUT_PRICE
print(f'Estimated input cost: ${est_input_cost:.6f}')

実際のコストを追跡する

各呼び出しの後に、使用量を合計します。

total_cost = 0

response = client.chat.completions.create(...)
cost = (
    response.usage.prompt_tokens * INPUT_PRICE +
    response.usage.completion_tokens * OUTPUT_PRICE
)
total_cost += cost

実行単位の予算

エージェントの1回の実行に上限を設定します。

MAX_COST_PER_RUN = 0.50  # USD

if total_cost > MAX_COST_PER_RUN:
    raise BudgetExceeded(f'Cost {total_cost} exceeds limit')

ユーザー単位の日次予算

Redisでユーザーごとのコストを追跡し、毎日リセットします。

key = f'cost:{user_id}:{today_date}'
current = float(redis.get(key) or 0)
if current + cost > 5.0:
    raise QuotaExceeded()
redis.incrbyfloat(key, cost)
redis.expireat(key, midnight_tomorrow_ts)

呼び出しごとのmax_tokens上限

意図せずコストが膨らむ最大の原因は、50,000トークンの応答を生成してしまうことです。上限を設定してください。

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    max_tokens=2048,  # never more than 2k output
)

エージェントのステップ上限

トークン上限に加えて、ステップ上限(最大反復回数)も設定します。

MAX_STEPS = 20
for step in range(MAX_STEPS):
    response = run_step(...)
    if response.is_final():
        break
else:
    raise StepLimitExceeded()

出力トークン上限

max_tokensを明示的に設定するのはなぜでしょうか。

まとめ

トークン数のカウント、呼び出しごとのmax_tokens、実行単位の予算、ユーザー単位のクォータ、ステップ上限です。安全な本番運用のために、この5つをすべて組み合わせてください。

無料で開始

AI チューターと学ぶ AI Agents — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
60
レッスン
239

よくある質問

「コストを意識する:トークン数のカウントと予算」レッスンは無料ですか?

はい。「コストを意識する:トークン数のカウントと予算」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。

「コストを意識する:トークン数のカウントと予算」で何を学びますか?

tiktokenでトークン数を数え、送信前にコストを見積もり、リクエスト単位および日単位の予算を適用します。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AI Agentsを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「コストを意識する:トークン数のカウントと予算」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAI Agentsレッスンでコードを書いて実行できますか?

はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. OpenAI APIの呼び出し:chat.completions
  2. Anthropic APIの呼び出し:messages
  3. レスポンスのストリーミング(SSE)
  4. コストを意識する:トークン数のカウントと予算
← AI Agentsに戻る