# OpenAI Agent SDKの便利だけど知られていない機能
🌍 モデルが一度に大量のツール呼び出しを発行して、レート制限やリソース枯渇に悩んでいませんか?
ローカルツールの同時実行数を制限することで、SDK側でのツール実行を安全にコントロールできます。
📌 タイトル:ローカルツールの同時実行数制限
🔗 URL:
🧩 概要
`RunConfig` の `tool_execution` に `ToolExecutionConfig(max_function_tool_concurrency=N)` を指定すると、SDK側でのローカルファンクションツールの同時実行数を制限できます。デフォルトは `None`(無制限)で、モデルが発行したツール呼び出しをすべて同時に実行します。これは `ModelSettings.parallel_tool_calls` とは別のレイヤーで機能します。`parallel_tool_calls` はモデルが複数ツールを同時に「発行するかどうか」を制御し、`max_function_tool_concurrency` は発行済みツールをSDKが「何個同時に実行するか」を制御します。
🛠 使い方
```python
from agents import Agent, RunConfig, Runner, ToolExecutionConfig
agent = Agent(
name="Worker",
instructions="Use tools as needed.",
tools=[fetch_data, process_item, save_result],
)
result = await
agent,
"Run the required tool calls.",
run_config=RunConfig(
tool_execution=ToolExecutionConfig(
max_function_tool_concurrency=2,
),
),
)
```
🏗 本番システムへの組み込み方
・外部APIのレート制限に合わせて同時実行数を制限し、429エラーを回避する
・DB接続プールのサイズに合わせて同時実行数を調整する
・`parallel_tool_calls=True`(モデル側)と `max_function_tool_concurrency`(SDK側)を組み合わせて、並列発行は許可しつつ実行スループットを制御する
・リソース集約的なツール(画像生成やファイル処理など)の同時実行を制限してメモリ使用量を抑える
💡 ユースケース
🔧 レート制限のある外部APIとの安全な連携
🗄 データベースコネクション数の保護
🖥 CPU/メモリ集約的なツールのリソース管理
⚡ モデルの並列発行とSDKの実行制限の独立制御
⚠️ 注意点
`max_function_tool_concurrency` はSDK側のローカル実行にのみ影響し、hosted toolやAPIレベルの並列性には関与しません。値を小さくしすぎると、多数のツール呼び出しがキューに溜まり、全体のレスポンスが遅くなる可能性があります。`parallel_tool_calls` との役割の違いを理解したうえで、両方を適切に設定してください。
✨ ツール同時実行数の制限で、外部リソースに優しいエージェントを構築しましょう。
#
OpenAIAgentSDK# #
AIAgent#