カスタムツールの作成

GitBookアシスタントにカスタムツールを追加して、製品やウェブサイトなどと連携させる

Docs埋め込み内のカスタムツールを使うと、アシスタントが製品やウェブ上でアクションをインテリジェントに振り分けることができます。例えば、GitBook AssistantにAPIを呼び出したり、製品内の操作を実行したり、他のツールを開いたりするよう指示するカスタムツールを作成できます。

circle-info

Docs埋め込みの設定で定義するカスタムツールに加えて、アシスタントは常に以下へのアクセスを持ちます: サイトのAI設定で定義するMCPサーバー

ツールは次を介して定義できます: configure メソッド(スクリプト実装を使用する場合)や、NPMパッケージ/Reactコンポーネントを使用する場合はpropsとして。

例を見てみましょう:

window.GitBook("configure", {
  tools: [
    {
      // ツールを名前と説明で登録します。
      name: "create_ticket",
      description:
        "ユーザーのためにチケットを作成します。ticket_issueフィールドを必ず入力してください。",

      // input schemaはexecute関数で参照できるデータです。
      inputSchema: {
        type: "object",
        properties: {
          ticket_issue: {
            type: "string",
            description:
              "チケットを作成する問題。わからない場合は先にユーザーに尋ねてください。",
          },
        },
        required: ["ticket_issue"],
      },

      // execute関数が実行される前に表示されるオプションの確認ボタンです。
      confirmation: { icon: "circle-question", label: "サポートチケットを作成しますか?" },

      // execute関数はツールが使用されたときに呼び出される関数です。
      execute: async (input) => {
        const { ticket_issue } = input;

        // ユーザーの問題でチケットを作成します
        const ticket = await fetch("/api/tickets", {
          method: "POST",
          body: JSON.stringify({ issue: ticket_issue }),
        }).then((r) => r.json());

        return {
          // 出力はAIに返されます。
          output: {
            ticketId: ticket.id,
            status: "success",
          },
          // サマリーはユーザーに表示されます。
          summary: {
            icon: 'check',
            text: `チケット #${ticket.id}${ticket_issue} で作成しました`
          },
        };
      },
    },
  ],
});

仕組み

GitBook Assistantに設定時に提供されたツールはAIを通じて利用可能になります — つまり、アシスタントは文脈に合うと判断したときにあなたのツールをインテリジェントに実行できます。

上の例では、アシスタントがユーザーにサポートチケットの作成が必要だと判断した場合、ユーザーに問題を尋ね、それからチケットを記録する関数を実行します。

キー
説明

name

ユニークなツール識別子。

description

GitBook Assistantが定義中のツールをいつ使用すべきかの文脈を理解できるようにします。

inputSchema

ツールの入力パラメータを定義するJSONスキーマ。次で参照できます: input 引数で execute 呼び出し。

confirmation

execute関数を実行する前にユーザーの操作を指定できるオプションの確認ボタン。形式: { icon?: string, label: string }.

execute

ツールが呼び出されたときに実行される非同期関数。次を返す必要があります: { output: any, summary: string }output はAIに提供され、AIがそれを元に処理を続けます(ユーザーには表示されません)。 summary はユーザーのチャットウィンドウに表示される視覚的な要約です。

最終更新

役に立ちましたか?