ステップごとのトークン予算
各ノードの入力・出力トークン数に上限を設け、暴走したループで予算を使い果たさないようにします。
「ステップごとのトークン予算」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。
トークンはお金です
送受信するすべてのトークンには、コストと時間がかかります。本番環境のエージェントでは、各ステップでトークン使用量を追跡し、上限を適用します。
すべての箇所でmax_tokensを設定する
すべての呼び出しで必ずmax_tokensを設定してください。設定しないと、バグのあるプロンプトによって10,000トークンの応答が生成される可能性があります。
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
max_tokens=1024, # cap per response
)エージェントループでステップごとに上限を設定する
ステップごとに必要な予算は異なります。
STEP_BUDGETS = {
'planner': 512,
'classifier': 64,
'final_synthesis': 2048,
'tool_call': 256
}
response = client.chat.completions.create(
model=model,
messages=messages,
max_tokens=STEP_BUDGETS[step_name]
)入力トークンを削減する
入力トークンにもコストがかかります。積極的に削減してください。
import tiktoken
enc = tiktoken.encoding_for_model('gpt-4o-mini')
def trim_to_budget(text, max_tokens=4000):
toks = enc.encode(text)
if len(toks) > max_tokens:
return enc.decode(toks[:max_tokens])
return text実行ごとの総予算
すべてのステップの入力と出力を合計し、上限を超えたら中止します。
MAX_TOKENS_PER_RUN = 50_000
total = 0
for step in agent_steps:
r = call_step(step)
total += r.usage.total_tokens
if total > MAX_TOKENS_PER_RUN:
return 'Budget exhausted; partial result'ドルでコスト上限を設定する
ドル単位で予算を設定したほうが、意味を捉えやすい場合もあります。
PRICES = {'gpt-4o-mini': {'in': 0.15e-6, 'out': 0.60e-6}}
for step in agent_steps:
r = call_step(step)
cost = r.usage.prompt_tokens * PRICES[model]['in'] + r.usage.completion_tokens * PRICES[model]['out']
total_cost += cost
if total_cost > MAX_COST_PER_RUN:
break適応型の予算
最も難しいステップに、より多くのトークンを使います。
if step_difficulty == 'easy':
max_tokens = 256
elif step_difficulty == 'hard':
max_tokens = 2048出力長の見積もり
回答の長さをモデルに尋ねることが有効な場合もあります。
preview = llm.invoke(f'How many tokens (approx) does {question} need to answer?').content
budget = parse_int(preview, default=512)
final = llm.invoke(question, max_tokens=budget)ツール出力を切り詰める
大きなツール出力(HTMLやログ)はコンテキストを圧迫します。モデルに送る前に切り詰めてください。
tool_result = run_tool(...)
text = json.dumps(tool_result)
if len(text) > 4000:
text = text[:4000] + '\n...[truncated]'履歴を圧縮する
長い会話では、トークンを節約するために古いターンを要約します。
if total_message_tokens(messages) > 8000:
messages = compact(messages)出力形式がトークン数に与える影響
JSONは冗長です。短い構造化レスポンスでは、次の形式を検討してください。
- 単一のツール呼び出し引数
- カンマ区切りのリスト
- 簡潔なカスタム形式
トークンの分布を追跡する
ステップごとのヒストグラムから、どのステップを最適化すべきかがわかります。
metrics.observe('step.planner.tokens', r.usage.total_tokens, tags={'agent': 'qa'})なぜmax_tokensなのか
すべてのLLM呼び出しでmax_tokensを設定するのはなぜでしょうか?
まとめ
すべての呼び出しでmax_tokensに上限を設定します。入力を削減します。ステップごとに予算を設定します。実行ごとの総量に上限を設けます。分布を追跡します。履歴を圧縮します。
よくある質問
「ステップごとのトークン予算」レッスンは無料ですか?
はい。「ステップごとのトークン予算」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。
「ステップごとのトークン予算」で何を学びますか?
各ノードの入力・出力トークン数に上限を設け、暴走したループで予算を使い果たさないようにします。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Agentsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「ステップごとのトークン予算」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Agentsレッスンでコードを書いて実行できますか?
はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。