ハンドブックのベスト プラクティス

以下のベスト プラクティスは、堅牢なエージェントの構築に役立ちます。

自然言語のハンドブック名

ハンドブック名は、明確で説明的であり、自然な英語で記述する必要があります。これにより、AI Generator の実行時のパフォーマンスが向上します。たとえば、「カスタマー ヘルプセンター プレイブック」は「company_specialist」よりも適しています。

名前はすべて、英語のアルファベットとスペースを含めて 64 文字以内にしてください。

簡潔な目標

目標は、ハンドブックの目的の簡潔な説明にする必要があります。

品質の指示を行う

指示は以下のようにする必要があります。

  • エンドユーザーの問題を解決するための段階的なアプローチを反映する
  • 大まかな指示で簡潔な自然言語の文
  • 率直に、ツールの使用シナリオを指定する

ハンドブックごとに 1 つ以上のサンプル

サンプルはハンドブックごとに 1 つ以上必要ですが、4 つ以上用意することをおすすめします。 サンプルにはハッピーパスのシナリオを含む必要があります。

十分なサンプルがないと、ハンドブックで予期しない動作が発生する可能性があります。 ハンドブックが応答しない、または予期したとおりに動作しない場合は、欠落しているか、明確に定義されていないサンプルが原因である可能性があります。サンプルを改善するか、新しいサンプルを追加してみてください。

指示とサンプルの正確性

明確で説明的な指示を書くことも有用ですが、プレイブックの動作の精度を決めるのはサンプルの質と量です。言い換えると、完全に正確な指示を与えるよりも、徹底的なサンプルを書くことに多くの時間をかけてください。

サンプルでツールを参照する

プレイブックがツールを使用してレスポンスを提供するように設計されている場合は、このタイプのリクエストに対応する例でツールを参照してください。

ツールスキーマの operationId フィールド

ツールのスキーマを定義する場合、operationId 値は重要です。ハンドブックの指示では、この値が参照されます。このフィールドの名前付けの推奨事項は次のとおりです。

  • 英数字とアンダースコアのみ。
  • スキーマで説明されているすべての operationId の中で一意である必要があります。
  • 提供される機能を反映した意味のある名前でなければなりません。

ツールスキーマ検証

ツールスキーマは、検証する必要があります。Swagger Editor を使用して、openAPI 3.0 のスキーマ構文を確認できます。

空のツール結果を処理する

ハンドブックがレスポンスを通知するためにツールに依存している場合、空のツールの結果により、ハンドブックの予期しない動作が発生する可能性があります。場合によっては、Playbook AI 生成ツールがツールの結果を使用せずに回答をでっち上げる場合があります。これを防ぐには、Playbook AI 生成ツールが独自の回答を試みないようにするための特定の指示を追加します。

一部のユースケースでは、ハンドブックの応答がツールの結果や提供されたデータに基づいた十分に根拠のあるものである必要があります。そのため、ハンドブック AI 生成ツールの知識のみに基づいて応答させないようにする必要があります。

ハルシネーションを軽減するための指示の例:

  • 「すべてのユーザーの質問に回答するには、このツールを使用する必要があります」
  • 「ツールからデータが返ってこない場合は、ユーザーの質問に対する回答がわからないと答えてください」
  • 「ツールからデータが返されなかった場合に、答えをでっち上げないでください」

Gemini でスキーマを生成する

Gemini では、スキーマを生成できます。たとえば、「Google カレンダー用にサンプルの openAPI 3.0 スキーマを作成できますか」を試してください。

焦点を絞ったハンドブック

非常に大規模で複雑なハンドブックは作成しないでください。各ハンドブックでは、具体的で明確なタスクを達成する必要があります。複雑なハンドブックがある場合は、小さなサブハンドブックに分割することを検討してください。

ループと再帰を回避する

手順でエージェントをリンクする際にループや再帰を作成するような指示はしないでください。ループは、現在のプレイブックを直接または間接的に呼び出した祖先のプレイブックに転送しようとした場合に発生する可能性があります。

例にルーティング情報を提供する

ハンドブックを別のハンドブックに転送する必要がある場合は、サンプルにこの情報を提供します。この情報は、入力と出力サンプル セクションの出力情報を持つエンドサンプル フィールドから、サンプルへ提供されます。

たとえば、このフィールドの最後の文は、「以後のクエリをデフォルトの Playbook に再ルーティングする」などです。

パーソナライズに会話エージェント(Dialogflow CX)Messenger の JavaScript 関数を使用する

会話エージェント(Dialogflow CX)Messenger を使用する場合、次の関数を使用して、ユーザーのパーソナライズ情報をウェブ インターフェースからハンドブックに送信することができます。

パフォーマンスの計画

生成機能では、通常、レスポンスの生成に数秒から数十秒かかることがあります。ハンドブックは会話の自然さを高めますが、エンドユーザーの良好なエクスペリエンスを維持するために、応答時間を管理することが重要です。パフォーマンスを最適化するための戦略は次のとおりです。

  • 生成機能の使用をバランスよくする

    複数の生成特徴の実行に必要な時間と、会話に与える価値のトレードオフを慎重に検討してください。これらの機能がユーザーの目標達成に大きく貢献しない場合は、過度に使用しないでください。

  • 生成特徴入力を最小限に抑える

    AI 生成ツールが有用な回答を生成するために必要な最小限の情報を収集して処理するようにします。これにより、処理時間が大幅に短縮されます。

  • コンテキスト キャッシュ保存を使用する

    ツールで Gemini を使用していて、初期コンテキストが大きい場合は、Vertex AI コンテキスト キャッシュを使用してキャッシュ情報を確認することで、同じデータに対するリクエストの繰り返しを回避できます。速度を重視した固定の回答を実装する:

    アプリケーションで一意の動的コンテンツが不要な場合は、Firebase などの従来のデータベースによく使用されるレスポンスを保存することを検討してください。事前定義され、すぐに利用できる固定レスポンスを使用することで、回答をその場で計算する生成機能よりもはるかに短い応答時間を実現できます。

  • AI 生成ツールに簡潔なプレイブック レスポンスを生成するよう指示する

    テキストの入力と出力の場合、AI 生成ツールのレスポンス時間は、使用しているモデルと出力の長さに大きく依存します。短い回答にすると、パフォーマンスが大幅に向上します。入力長も考慮されますが、出力長の方が影響が大きくなります。