Function Callingビルダー - OpenAI&Anthropicツール定義作成
Function Calling(ツール利用)は、LLMに外部APIやデータベース、計算ロジックを呼び出させるための必須機能です。モデルは自ら実行せず、開発者が定義したJSONスキーマに沿って正確な引数JSONを出力します。複雑な引数定義を手作業で記述する手間を解消し、TypeScriptやPython用の完全なツール定義コードを出力します。
このような場面で活用できます
- 外部REST APIとの連携: 天気予報取得、株価検索、注文処理など外部APIを呼び出すための関数定義を作成します。
- データベースの安全な照会: 厳密にバリデーションされた引数を受け取る関数スキーマを定義し、DBアクセスを制御します。
- 確実な構造化データの抽出: 自由文の会話ではなく、定義した引数スキーマに完全合致するJSONをAIに強制出力させます。
- 自律型AIエージェントの構築: Web検索、計算機、メール送信など複数のツールを状況に応じて自律選択する環境を整えます。
使い方と実務ガイド
- 関数名と説明の入力: 関数の役割をAIが正確に理解できるよう、明確な名前(例: get_weather)と詳細な説明を記述します。
- 引数(パラメータ)の追加: 引数名、データ型(string, number, boolean, array等)、各引数の説明文を定義します。
- 必須項目の指定とEnum設定: 必須引数(required)のチェックや、許容する値の選択肢(Enum)を設定します。
- SDK用コードのコピー: OpenAIやAnthropicの公式SDK(Python/TypeScript)で即座に使える形式で出力・コピーします。
入出力の実務例
Input:
Function: get_current_weather(location: string, unit: enum["celsius", "fahrenheit"])
Output:
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather for a given location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "City and country"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["location"]
}
}
}
よくある質問(FAQ)
Q. 関数の説明文(Description)が重要な理由は何ですか?
A. AIは説明文を読んで、そのツールを呼び出すべきかどうかを判断します。説明が不十分だと、ツールが必要な場面でも呼び出しを行わない原因になります。
Q. OpenAIとAnthropicのツール定義の違いは?
A. OpenAIは「type: function」でラップし、Claudeは「input_schema」としてトップレベルに引数を定義します。本ツールは双方の形式を相互変換可能です。
Q. AIがサーバー上のコードを直接勝手に実行するのですか?
A. いいえ。AIは呼び出し要請(引数JSON)を返すだけであり、実際のコード実行は開発者側のバックエンドで完全に制御されます。
技術・セキュリティ上の注意事項
- OpenAI、Anthropic、Google GenAIの各公式SDK仕様に完全準拠しています。
- ブラウザ完結の処理により、社内非公開APIの仕様情報も安全に設計できます。
あわせて使える関連ツール