Botpress Autonomous Nodeを使えば、機能的なAIエージェント(チャットボットではなく、利用可能なコンテキストに基づいて意思決定を行う自律エージェント)を作成することができる。
明確な指示を提供し、ツールを統合することで、ボットビルダーは自律ノードを使用してチャットボットの動作を概説することができます。
ノードは、ユーザーの入力を理解し、適切なデータで応答し、ツールを活用することで、意思決定と実行の両方を処理するように設計されている。
Autonomous Nodeを使うことに興味があるのなら、あなたは正しい場所にいる。この記事では、私たちのプラットフォームのエージェント機能を使うための基礎を説明します。
自律型ノードの主な特徴
1.LLM 意思決定主導
自律型ノードは、LLM の機能を使用してインテリジェントな意思決定を行う。
2.自律的行動
自律ノードは、指示やユーザー入力に基づいて、手動による介入なしにアクションを実行することができる。
3.工具
自律型ノードは特定のツールを理解し利用する。例えば、知識ベースへのクエリ、ウェブ検索、ワークフロー遷移の実行が可能だ。
4.カスタマイズ
適切なペルソナと詳細な指示で自律ノードを設定することで、会話中に自律ノードがオンブランドで範囲内に収まるように振る舞えるようになります。
5.コードを書いて実行する
自律ノードは、タスクを達成するためにカスタムコードを生成し、実行することができる。
6.自己修正
もし自律ノードが間違った道を進んでいることに気づいたら、自己修正してエラーから回復する能力がある。
コンフィギュレーション設定
各自律ノードは、その動作をビジネス・ニーズに合わせるために慎重なコンフィギュレーションを必要とする。
自律ノードのセットアップで最も重要なのは、正しいプロンプトと指示を書くことだ。プロンプトはエージェントがそのペルソナを理解し、意思決定を導くのに役立つ。
インストラクション・ボックス
指示欄には、明確なガイドラインを記入してください。指示が具体的であればあるほど、エージェントの意思決定はより良いものになります。
例"あなたは、'knowledgeAgent.knowledgequery'ツールを使っていつも質問に答える親切なアシスタントです。もしユーザーが'search'と言ったら、'browser.webSearch'ツールを使ってください。"
会話を許可する
Allow ConversationトグルはAutonomous Nodeがユーザーと直接通信できるようにします。オフにすると、Nodeはユーザにメッセージを送信することなく、コマンドの処理と内部ロジックの実行のみを行います。
ツールを理解する
自律ノードには、あなたが与える指示に基づいて、呼び出すことができるいくつかのツールが装備されている。
それぞれのツールは特定のアクションを実行する。これらのツールをいつ、どのように使うかを理解することは、ノードの意思決定を推進する上で非常に重要である。
最も一般的な7つのツール
- global.think:LLMzエンジンが処理を進める前に反映することを許可する。
- ブラウザ.ウェブ検索:エージェントが答えを探すためにウェブを検索できるようにします。
- knowledgeAgent.knowledgequery:内部知識ベースに関連情報を問い合わせる。
- clock.setReminder:将来のタスクや応答に対するリマインダーを設定します。
- ワークフロー.トランジションワークフローのトランジションを実行し、ユーザー入力に基づいて会話のある部分から別の部分に移動する。
- chat.sendText:応答としてユーザーにテキストメッセージを送信します。
- chat.waitForUserInput:実行を一時停止し、ユーザーからの入力を待ちます。
ユーザーのアクションに応じて使用するツールを指定することで、会話の流れと結果をコントロールすることができる。
例えば、LLM 、特定の条件が満たされたときに、常に特定のアクションを実行するように指示することができます:"ユーザーが'1'と言ったら、'workflow.transition'ツールを使って次のステップに移る。"
あるいは、 「ユーザーが質問したら、まず'knowledgeAgent.knowledgequery'ツールを使ってその質問に答えてみる。
ワークフロー例
以下は、自律ノードがどのように設定され、会話中に機能するかのステップバイステップの例である:
1.ユーザー入力
ユーザーはその会社の製品に関する質問を入力する。
2.命令実行
自律ノードはプロンプトに従い、knowledgeAgent.knowledgequeryツールを使って内部の知識ベースを検索する。
3.LLM 決定
ナレッジベースに満足のいく答えがない場合、ノードはブラウザ.webSearchツールを使って追加情報をウェブで検索することができる。
4.メッセージを送る
レスポンスの準備ができたら、ノードはchat.sendTextを使って関連情報をユーザーに返信します。
5.入力を待つ
応答後、ノードはchat.waitForUserInputを 使用して、ユーザーからのさらなる問い合わせやインタラクションを待ちます。
指示書の書き方
例に示したように、自律ノードが正しく動作するためには、明確な指示が不可欠である。
LLMの判断能力は、指示の構成方法に大きく影響される。
自律ノードに指示を書くための3つのベストプラクティスを紹介しよう:
1.具体的に
曖昧な命令ではなく、エージェントを明確に導く明確な言葉を使う。
例"ユーザーが'help'と言ったら、'chat.sendText'を使ってサポートオプションの定義済みリストを送る"
2.ツールの使い方を定義する
どのような状況でどのツールを使用すべきかを明示する。
例"製品に関する質問には、常に「knowledgeAgent.knowledgequery」を使用してください。"
3.流れを導く
会話が正しい方向に流れるように、明確なトランジションとステップを使いましょう。
例"ナレッジベースが答えられない場合、'browser.webSearch'を使った検索クエリに移行する。"
詳細は以下のリンクから:
マークダウン構文を使う
始める前に、Markdown構文を使うことの重要性について話しておくことが重要である。
構造化され、視覚的に明確なプロンプトを作成するには、ヘッダー、箇条書き、太字などのマークダウン構文を使用することが不可欠です。
この構文は、LLM が命令の階層構造を認識し尊重するのを助け、主要なセクション、サブ命令、および例を区別するように導く。
もしMarkdownの構文を使うのが難しいのであれば、あなたにとって使いやすい構造を使えばいい。
便利なプロンプト
このセクションには、Autonomous Nodeの動作を制御するために使用できる、最も一般的な例とパターンのリストが含まれています。
これらの例は実際の経験から引き出されたもので、具体的な指示やツールを使ってさまざまなシナリオに対処する方法を示している。
内部知識の重視
ノードがサポートに関する質問と他のタイプの問い合わせ(価格や機能など)を確実に区別できるようにするには、次のように誘導します:
**重要な一般プロセス
-knowledgeAgent.knowledgequeryツールは、サポート関連の質問にのみ使用し、一般的な機能や価格関連の質問には使用しないでください。
-browser.websearchツールはサポート関連の質問にのみ使用し、一般的な機能や価格関連の質問には使用しないでください。
このプロンプトにより、LLM 、特定のツールをサポート関連のクエリでのみ使用するようになり、取得する情報の種類をコントロールできるようになる。
サブフローへのノード遷移
ボットを自律ノードからサブフローに移動させたい場合もある。
例えば、ボットにユーザーのEメールを収集させ、そのEメールに関する詳細情報を他のシステムから探し、連絡先情報を充実させたいとします。
その場合、ボットが自律ノードループを抜け出し、コンタクトを充実させるために多くのステップ/システムを含むサブフローに入る必要があるかもしれない:
ユーザーがEメールに関する詳細情報を知りたいときは、トランジション・ツールにアクセスする。
この命令は、ユーザがEメールの詳細を尋ねるたびにworkflow.transitionツールを起動し、それに応じて会話の流れを指示するようにノードに指示する。
変数を埋めてアクションを実行する
ノードの入力キャプチャとアクションのトリガを同時に行いたいシナリオでは、そのようにプロンプトを出すことができる:
ユーザーが電子メールに関する詳細な情報を求めている場合、トランジションツールに行き、"email "変数にユーザーが尋ねている電子メールを記入する。
ここでは、トランジションをトリガーするだけでなく、ユーザーのEメールを抽出して変数に保存し、会話の後の動的な動作を可能にするようにNodeを導きます。
条件に基づいてレスポンスを操作する
条件に基づいてノードに追加のロジックを実行させたい場合もあります。ここでは、ビデオリンクの提供に関連するプロンプトの例を示します:
もしユーザーが「1」を選択したら、「ありがとうございます」などと言い、トランジションツールを使う。
このプロンプトは、ノードがビデオリンクの期待される構造を理解し、ユーザーがビデオの特定のポイントを参照するように要求したときに、それをどのように変更するかを支援します。
動画リンク用テンプレートの使用例
ビデオリンクに対するユーザーのリクエストに応答するときにシステムがどのように動作すべきかの実際の例を示すことによって、プロンプトをさらに明確にすることができます:
**Video Link Example:**
If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
これにより、特定のタイムスタンプを持つビデオリンクを動的に生成する方法についてノードに明確なガイダンスが与えられ、一貫性のあるユーザーフレンドリーな応答が保証される。
トラブルシューティングと診断
エミュレータで自律ノード(Autonomous Node)の動作をテストする場合、フードの下で何が起きているかを診断することが重要だ。ノードはどのように意思決定をしているのか?
ここでは、ノードの思考プロセスやパフォーマンスをトラブルシューティングし、検査する方法を説明します。
トラブルシューティングの3つの方法
1.ノードの心を調べる
Inspectをクリックすると、Autonomous Nodeの内部状態を覗き見ることができ、LLM の処理内容を理解することができる。インスペクトすることで、以下のことがわかる:
- ノードが優先する指示
- プロンプトの解釈
- あなたが与えた制約や指示を守っているかどうか
ノードが正しく応答しなかったり、特定の命令を無視しているように見える場合は、プロンプトを誤解しているのか、特定のツールの実行に失敗しているのかを検査することで明らかにすることができる。
2.ツールタブをチェックする
Toolsセクションには、自律ノードが利用できるすべてのツールが表示されます。新しいカードを追加したり、ノードのコンフィギュレーションを変更したりするたびに、ツールのリストが更新されます。
- リストアップされたツールが、ノードの意思決定プロセスで利用できると予想されるものと一致していることを確認する。
- ノードが指定されたアクションを正しく実行できるように、プロンプトでツール名のスペルが正しいことを確認してください。
3.イテレーション・タブをチェックする。
自律ノードは通常、1~2回の繰り返しですべての命令を実行しようとする。反復の回数はプロンプトの複雑さとノードの解析方法に依存する。
より複雑なタスクの場合、ノードはデータ収集、意思決定、外部情報の取得のために複数回の反復を行うかもしれない。
イテレーション」タブ(または「すべて」タブ)を見直すことで、あなたは理解することができる:
- ノードが最終的な決定に達するまでに何回の反復が必要であったか。
- ノードが複数のステップ(例えば、knowledgeAgent.knowledgequeryや browser.webSearchのようなツールから追加データをフェッチする)を取る原因となったもの。
- 特定の結果が達成された理由。
よくあるトラブルシューティングの問題
モデルサイズ
自律ノードがプロンプトに従わず、プロンプトのすべてを実行せずに一部を実行したり、"workflowExecuteAll "ツールを呼び出さずに "workflowQueue "を呼び出したりしている可能性がある。
自律ノードLLM のサイズを常に小さいモデルに変更することは理にかなっている-なぜなら安いからだが、それにはコストがかかる。
LLM 特に、LLM がカードの機能や必要なパラメーターなどを理解できるように、Botpress が追加する定義ラッパーがあります。これがないと、ボットはどのように行動すればよいのかわからなくなる。
LLMzバージョン
LLMzの最新の安定バージョンを使用していることを常に確認してください。 これは自律ノードに作業を指示する自律エンジンです。
また、バグフィックスも含まれており、プロンプトがよりLLMs に依存しないようになっている。
例コード作成の診断
自律ノードがコードを生成しているが、プロンプトに正しく従っていないとしよう。トラブルシューティングの方法を説明しよう:
- 検査する:ノードがどのような指示に従っているかをチェックする。コード生成の要求を正しく理解しているか。
- ツール:ノードが必要なツール(コード生成ツールやナレッジベース照会ツールなど)にアクセスできることを確認する。プロンプトがこれらのツールを明示的に参照していることを確認する。
- 反復:反復タブを見て、ノードがコードを生成するポイントにどのように到達したかを確認する。1つのステップを踏んだのか、複数のステップを踏んだのか。最初にナレッジベースに問い合わせたのか、それともすぐにコードを生成しようとしたのか。
解決方法ボットが適切にコードを生成できない場合:
- コード生成に使用するツールがプロンプトで正しく参照されていることを確認する。
- コード生成を試みる前にまず関連知識を検索するなど、特定のステップを使用するようノードが誘導されるように指示を調整する。
完全なプロンプトの例
**IMPORTANT: Query Knowledge Base is to be used only for support questions related explicitly to student courses, and NOT for general features or pricing inquiries.
**Role Description:
You are an AI-powered troubleshooting chatbot named XYZ Assistant’, focused on providing support related to professional courses offered by XYZ LMS. Your primary goal is to handle student inquiries efficiently by retrieving accurate information from the knowledge base and answering questions clearly.
**Tone and Language:
• Maintain a courteous, professional, and helpful demeanor at all times.
• Use language that is clear, concise, and appropriate for students and professionals in finance and investment.
• Ensure user data is handled securely and confidentially, adhering to all relevant data protection policies.
• Utilize information solely from **LMS Knowledge Base**.
• Personalize interactions to enhance user engagement and satisfaction.
• Reflect **XYZ branding** throughout the conversation, ensuring clarity and professionalism.
• Avoid providing answers outside the knowledge base or surfing the internet for information.
• If the user expresses frustration, acknowledge their concern and reassure them that you are here to help.
**Interaction Flow and Instructions
1. Greeting and Initial Query
• Start with a friendly and professional greeting.
• Encourage users to ask questions about course content, support materials, or other course-related concerns.
2. Information Retrieval and Issue Resolution
• Utilize the ‘Query Knowledge Base’ tool to find accurate answers to student inquiries.
• Provide clear, concise, and helpful responses to resolve the user's question.
• If the inquiry involves linking to a video, use the provided video link structure. To link to a specific moment in the video, append the "t" parameter for the desired time (e.g., for the 15-second mark, use "t=15").
3. Conclusion
Once the issue is resolved, politely conclude the interaction and ask if there's anything else you can assist with.
**Extra Instructions
*Video Link Example
-If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
*Handling Edge Cases
If the user asks a general or unclear question, prompt them to provide more details so that you can offer a better solution.
プロンプトの内訳
上のプロンプトの全文では、ユーザーは教育コースに関する学生からの質問に答えるAIアシスタントを作成した。
上記の例はガイドラインであり、ニーズに合わせて修正することができるが、このレイアウトは、私がこれまでに最も効果的な構造であると発見したものである。
プロンプトがなぜこのようなレイアウトになっているのかを説明しよう:
1.重要なお知らせ
**重要: Query Knowledge Baseは、学生コースに関連するサポートに関する質問のみに使用し、一般的な機能や価格に関する質問には使用しないでください。
目的:Query Knowledge Baseツールをいつ、どのように使用すべきかの境界線を設定する。ナレッジベースはコース関連のサポートに限定し、機能や価格に関する一般的な問い合わせには使用しないことを強調する。
意義ボットのスコープを絞り込み、回答を集中させ、ユーザーとの関連性を高める。
2.役割
あなたは、XYZ LMSが提供する専門コースに関連するサポートを提供することに焦点を当てた、「XYZアシスタント」という名前のAIを搭載したトラブルシューティング用チャットボットです。あなたの主な目標は、ナレッジベースから正確な情報を取得し、質問に明確に回答することで、学生の問い合わせを効率的に処理することです。
目的:サポート指向のアシスタントとしてのAIの役割を定義し、コース関連の問い合わせを解決することを主な目的として明確に説明する。
意義アシスタントの応答が意図された目的に沿うようにし、ユーザーの期待を管理し、そのドメイン(この場合、XYZ LMSである)に適切であるようにする。
3.トーンと言語
- 常に礼儀正しく、プロフェッショナルで親切な態度を保つ。
- 明確かつ簡潔で、金融・投資の学生や専門家にとって適切な言葉を使用すること。
- 関連するすべてのデータ保護ポリシーを遵守し、ユーザーデータが安全かつ機密に取り扱われるようにすること。
- LMSナレッジベース**からの情報のみを利用すること 。ユーザーのエンゲージメントと満足度を高めるために、インタラクションをパーソナライズすること。
- 会話を通して**XYZブランディング**を反映さ せ、明確さとプロフェッショナリズムを確保すること。
- ナレッジベースの外に答えを提供したり、情報のためにインターネットをサーフィンすることは避けてください。
- ユーザーが不満を表明した場合は、その懸念を認め、あなたが助けるためにここにいることを安心させましょう。
目的:安全でデータ保護されたやり取りを維持しながら、アシスタントの態度、口調、プロフェッショナリズムについて指導を行う。
意義親しみやすく安心感のあるトーンを設定し、ブランディングとユーザーの期待に沿う、サポート力のあるプロフェッショナルなアシスタントを目指す。
4.対話の流れと指示
挨拶と最初の問い合わせ
- フレンドリーでプロフェッショナルな挨拶から始める。
- コースの内容、サポート資料、その他コースに関連する質問などをユーザーに促す。
目的: この指示は、暖かくプロフェッショナルな挨拶から始め、コースに関する具体的な質問を利用者に促すようアシスタントに指示します。
意義ユーザーのエンゲージメントを高め、ボットがより良いレスポンスのために詳細を収集するのに役立つ、魅力的なエントリーポイントを確立します。
情報検索と問題解決
- クエリ・ナレッジ・ベース」ツールを活用し、学生の問い合わせに対する正確な回答を見つける。
- ユーザーの質問を解決するために、明確かつ簡潔で、役に立つ回答を提供する。
- 問い合わせにビデオへのリンクが含まれている場合は、提供されているビデオリンク構造を使用してください。ビデオの特定の瞬間にリンクするには、希望する時間の「t」パラメータを追加します(例えば、15秒のマークには「t=15」を使用します)。
目的:適切でわかりやすい回答のために、知識ベースを活用するようアシスタントに指示する。さらに、時間ベースのリンクでビデオリソースを共有するための構造化されたアプローチを含む。
意義効率的で的確な回答と、ビデオのようなコンテンツ固有のクエリに対応する構造化された方法を可能にし、シームレスなユーザー体験を育む。
結論
問題が解決したら、丁重にやりとりを終了し、他にお手伝いできることがないか尋ねる。
目的:ボットがどのように丁寧にやりとりを終わらせ、さらに手助けが必要かを尋ねるかをガイドする。
意義対話を通じてプロフェッショナルで協力的な口調を維持し、必要に応じてユーザーが対話を続けられるようにする。
5.補足説明
If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
目的:生徒が正確な情報を見つけられるように、ビデオの特定の部分にリンクする形式を示す。
意義ビデオリソースの共有、特に時間指定の教育コンテンツについて明確にする。
*エッジケースへの対応
ユーザーが一般的な質問や不明確な質問をした場合、より良い解決策を提供できるよう、詳細を提供するように促します。
目的:曖昧な問い合わせや一般的な問い合わせに対応できるよう、アシスタントに詳細の入力を促します。
意義混乱を避け、アシスタントがユーザーの質問にできるだけ具体的に対応できるようにする。
AIエージェントの構築
Botpress は、完全に拡張可能な企業向けAIエージェント・プラットフォームである。
当社のオールインワン会話AI Platform-as-a-Service(PaaS)により、企業はLLM を活用したソリューションを構築、展開、監視することができます。
業界、ユースケース、ビジネスプロセスを横断して適用されるBotpress プロジェクトは、常に拡張性があり、安全で、オンブランドである。
世界中で50万人以上のユーザーと数百万台のボットが導入されているBotpress は、企業や開発者に選ばれているプラットフォームです。当社のハイレベルなセキュリティと専任のカスタマーサクセスサービスにより、企業はエンタープライズグレードのAIエージェントを導入するための万全の体制を整えています。
適切なプロンプトとツール定義で自律ノードを効果的に構成することで、組織はユーザーとのやりとりを自律的に処理するインテリジェント・エージェントを作成することができる。
今日から始めよう。無料です。