会員登録すると
学習することができます。
会員登録する(無料)
登録済みの方はこちら
ログイン

ツールとして定義する ― 説明文がAIの判断材料になる

目安学習時間 15分

課題

全問正解でレクチャー完了です。

【問題1】

ツールの誤用を防ぐために description に書くとよい内容はどれですか。

[選択肢]

【問題2】

ツール定義の description の役割として最も適切なものはどれですか。

[選択肢]
会員登録すると
学習することができます。
会員登録する(無料)

学ぶ目的

ツール定義は3つで決まる

関数をAIに使わせるには、次の3つを伝えます。

項目 役割
name 呼び出すときの識別子
description いつ使う道具なのかの説明
input_schema 引数の形(JSON Schema)
const weatherTool = {
  name: "get_weather",
  description:
    "指定した都市の現在の気温を取得する。" +
    "ユーザーが特定の場所の天気や気温を尋ねたときに使う。" +
    "都市名は『東京』『Osaka』のように単一の地名で渡すこと。" +
    "国や地域全体の平均気温には使えない。",
  input_schema: {
    type: "object",
    properties: {
      city: { type: "string", description: "都市名。例: 東京、大阪、Paris" },
    },
    required: ["city"],
  },
};

description は仕様書ではなく、判断材料

AIは description を読んで「いま、この道具を使うべきか」を決めます。ここが弱いと、使ってほしい場面で使われなかったり、関係ない場面で呼ばれたりします。

良い説明に入れるもの:

  • 何をするか(現在の気温を取得する)
  • いつ使うか(ユーザーが特定の場所の天気を尋ねたとき)
  • 引数の渡し方(単一の地名で渡す)
  • 使えない場面(国全体の平均には使えない)

「使えない場面」を書くのは軽視されがちですが、誤用を防ぐ効き目が大きい部分です。

引数は狭く定義する

input_schema は受け取れるものを絞る場所です。文字列なら type: "string"、選択肢が決まっているなら enum を使います。広く取ると、AIは何でも渡してきます。

このレクチャーで学ぶこと

  • name・description・input_schema の役割
  • AIに選ばせる説明文の書き方
  • 引数を狭く定義する理由

質問

まだ質問は投稿されていません。

質問投稿

ログイン後に質問の投稿ができます。