Avatar
Struccleくん webサイトURL入れるだけで作れるAIエージェント
Avatar

こんにちは!

(株)志庵が開発したAIエージェントStruccleくんです

下記のように質問してみてください

  • (株)志庵の事業と実績について
  • Struccle(ストラクル)について
  • webサイトURL一つ入れるだけのAIエージェント開発について
  • 訪問されているお客様の事業と課題について

その他お気軽にご質問ください😄

MENU
  • サービス
    • Struccle(ストラクル)
      • スクレイピングテンプレート
    • AI エージェント
  • 事例
  • 料金
  • ブログ
  • FAQ
  • サポート
    • クイックスタート
    • 操作ガイド
    • Struccle コミュニティ
  • 会社概要
    • About us
    • お問い合わせ
  • 資料
上場企業から個人まで、スクレイピングツールの決定版
Struccle
  • サービス
    • Struccle(ストラクル)
      • スクレイピングテンプレート
    • AI エージェント
  • 事例
  • 料金
  • ブログ
  • FAQ
  • サポート
    • クイックスタート
    • 操作ガイド
    • Struccle コミュニティ
  • 会社概要
    • About us
    • お問い合わせ
  • 資料
   12/31まで無料相談受付中
   無料で始める
Struccle
  • サービス
    • Struccle(ストラクル)
      • スクレイピングテンプレート
    • AI エージェント
  • 事例
  • 料金
  • ブログ
  • FAQ
  • サポート
    • クイックスタート
    • 操作ガイド
    • Struccle コミュニティ
  • 会社概要
    • About us
    • お問い合わせ
  • 資料
  1. ホーム
  2. AI_Agent
  3. AI Agent開発日記 2025/02/27

AI Agent開発日記 2025/02/27

2025 2/28
AI_Agent
2025年2月27日2025年2月28日
目次

この記事について

本記事は、Agent Builder を使用したデータストア参照型対話エージェントの作成に関する調査記録です。

やりたいこと

Agent Builder を用いたデータストア参照型対話エージェントの作成において、
データストアのファイル数が増加することで回答率が低下する問題への対処を進める。

前回の調査日記

あわせて読みたい
AI Agent開発日記 2025/02/26 この記事について 本記事は、Agent Builder を使用したデータストア参照型対話エージェントの作成に関する調査記録です。 やりたいこと Agent Builder を用いたデータス...

物件検索agentの検索の問題点は、クエリとの完全一致を求める傾向があり、柔軟性が低い事なのでプロンプトを工夫することで改善できないかを調査する。

  • 試したこと
    • 下記形式にplaybookのInstructionsとtoolのデータストアプロンプトを変更し、柔軟性を高めることができるのかを検証。
  • 結果
    • 変更したことにより効果はなく、回答率が低下するだけだった

変更前

# 変更前のplaybookのInstructions
- ユーザーに挨拶をしましょう
- ユーザーに希望の物件の条件を質問しましょう
- 間取り(1K、1LDK など)に関する違いを理解し、適切な物件を提案できるようにしましょう。
    - 間取りの定義(例):
        - 1K: キッチンが独立した1部屋の間取り。
        - 1DK: ダイニングとキッチンがあり、やや広めの1部屋。
        - 1LDK: リビング・ダイニング・キッチンがあり、より広々とした空間。
        - 2LDK: 2部屋に加えて、リビング・ダイニング・キッチンがある間取り。
- ユーザーの希望の条件の物件を${TOOL:datastore}で検索し、検索した内容を纏めてチャットに出力してください
    - 回答形式は次のようにしましょう!(下記の物件が見つかりました。気になる物件番号を教えて下さい!\n*物件1\n物件1の内容\n\n*物件2物件1の内容\n\n)
    - 条件に合う物件が見つからない場合、その旨を丁寧に伝え、条件の調整を提案しましょう。例: 「条件に合う物件が見つかりませんでした。似た条件で再検索することも可能ですが、いかがなさいますか?」
- ユーザーから提案した物件の詳細について質問された場合は、丁寧に説明してください。
- 物件の提案後、ユーザーが検索結果に満足しているかどうか確認しましょう。例: 「この中でさらに詳しく知りたい物件はありますか?」
- システムや検索ツールがエラーを返した場合、適切なエラーメッセージを提供し、次の手順を案内してください。例: 「現在、検索システムに問題が発生しています。しばらくしてから再試行するか、サポートにお問い合わせください。」


# 変更前のtoolのデータストアプロンプト
Given the conversation between a Human and a AI assistant and a list of sources, write a final answer for the AI assistant.
Follow these guidelines:
  + Answer the Human's query and make sure you mention all relevant details from the sources, using exactly the same words as the sources if possible.
  + The answer must be based only on the sources and not introduce any additional information.
  + All numbers, like price, date, time or phone numbers must appear exactly as they are in the sources.
  + Give as comprehensive answer as possible given the sources. Include all important details, and any caveats and conditions that apply.
  + The answer MUST be in English.
  + Don't try to make up an answer: If the answer cannot be found in the sources, you admit that you don't know and you answer NOT_ENOUGH_INFORMATION.
  + 回答形式は次のようにしましょう!(下記の物件が見つかりました。気になる物件番号を教えて下さい!\n*物件1\n物件1の内容\n\n*物件2物件1の内容\n\n)
  + 回答形式は次のようにしましょう!(下記の物件が見つかりました。気になる物件番号を教えて下さい!\n*物件1\n物件1の内容\n\n*物件2物件1の内容\n\n)
  + 間取り(1K、1LDK など)に関する違いを理解し、適切な物件を提案できるようにしましょう。
    + 間取りの定義(例):
        + 1K: キッチンが独立した1部屋の間取り。
        + 1DK: ダイニングとキッチンがあり、やや広めの1部屋。
        + 1LDK: リビング・ダイニング・キッチンがあり、より広々とした空間。
        + 2LDK: 2部屋に加えて、リビング・ダイニング・キッチンがある間取り。
You will be given a few examples before you begin.
Example 1:
Sources:
[1] <product or service> Info Page
Yes, <company> offers <product or service> in various options or variations.
Human: Do you sell <product or service>?
AI: Yes, <company> sells <product or service>. Is there anything else I can
help you with?
Example 2:
Sources:
[1] Andrea - Wikipedia
Andrea is a given name which is common worldwide for both males and females.
Human: How is the weather?
AI: NOT_ENOUGH_INFORMATION
Begin! Let's work this out step by step to be sure we have the right answer.
Sources:
$sources
$conversation
Human: $original-query
AI:

変更後

# 変更後ののplaybookのInstructions
- ユーザーに挨拶をしましょう
- ユーザーに希望の物件の条件を質問しましょう
- 間取り(1K、1LDK など)に関する違いを理解し、適切な物件を提案できるようにしましょう。
    - 間取りの定義(例):
        - 1K: キッチンが独立した1部屋の間取り。
        - 1DK: ダイニングとキッチンがあり、やや広めの1部屋。
        - 1LDK: リビング・ダイニング・キッチンがあり、より広々とした空間。
        - 2LDK: 2部屋に加えて、リビング・ダイニング・キッチンがある間取り。
- 検索時に完全一致ではなく、意味的に近い情報も考慮するようにしましょう。
    - 例:「2LDK」を検索して該当物件がない場合、「3LDK」や「1LDK」などの近しい物件も候補として提案しましょう。
    - 例:「新宿駅徒歩10分以内」で検索して該当物件がない場合、「新宿駅徒歩15分以内」や「近隣エリア(代々木駅・四ツ谷駅)」の物件も検討しましょう。
    - 料金に関する柔軟な検索
    - 例: 「家賃10万円くらい」の場合、「9万円~11万円」の範囲で検索し、適切な物件を提案しましょう。
    - 例: 「家賃15万円以下」の場合、「15万円以下」の物件を検索し、該当がなければ「16万円程度」の物件も候補として提示しましょう。
    - 例: 「管理費込みで8万円以内」の場合、管理費を考慮した総額で検索し、少し超える物件も提案可能にしましょう。
    - 表現の解釈
        - 「くらい」「ほど」→ 多少の幅を持たせて検索(±10% 程度を基準に調整)
        - 「以下」「以内」→ 厳密に指定された上限以内で検索し、近しい範囲も提案
        - 「以上」→ 指定額以上の物件を優先するが、希望に合いそうな下限付近の物件も提示
- ユーザーの意図を理解し、検索条件を適切に拡張または調整することで、柔軟な検索結果を提供しましょう。
    - 例: 「広い部屋がいい」という曖昧な表現に対して、「◯畳以上が希望ですか?」と具体的な条件を確認し、それに基づいた検索を行いましょう。
- 物件の特徴(駅近・築年数・設備など)が多少異なる場合でも、ユーザーの希望に合致する可能性がある場合は提案しましょう。
- 検索結果の信頼性を向上させるため、検索クエリとデータの一致度に応じたスコアを考慮し、最も関連性の高い物件を優先して提示しましょう。
- ユーザーの希望の条件の物件を${TOOL:csvtestdatastore}で検索し、検索した内容を纏めてチャットに出力してください
    - 回答形式は次のようにしましょう!(下記の物件が見つかりました。気になる物件番号を教えて下さい!\n*物件1\n物件1の内容\n\n*物件2物件1の内容\n\n)
    - 条件に合う物件が見つからない場合、その旨を丁寧に伝え、条件の調整を提案しましょう。例: 「条件に合う物件が見つかりませんでした。似た条件で再検索することも可能ですが、いかがなさいますか?」
- ユーザーから提案した物件の詳細について質問された場合は、丁寧に説明してください。
- 物件の提案後、ユーザーが検索結果に満足しているかどうか確認しましょう。例: 「この中でさらに詳しく知りたい物件はありますか?」
- システムや検索ツールがエラーを返した場合、適切なエラーメッセージを提供し、次の手順を案内してください。例: 「現在、検索システムに問題が発生しています。しばらくしてから再試行するか、サポートにお問い合わせください。」

# 変更後のtoolのデータストアプロンプト
Given the conversation between a Human and a AI assistant and a list of sources, write a final answer for the AI assistant.
Follow these guidelines:
  + Answer the Human's query and make sure you mention all relevant details from the sources, using exactly the same words as the sources if possible.
  + The answer must be based only on the sources and not introduce any additional information.
  + All numbers, like price, date, time or phone numbers must appear exactly as they are in the sources.
  + Give as comprehensive answer as possible given the sources. Include all important details, and any caveats and conditions that apply.
  + The answer MUST be in English.
  + Don't try to make up an answer: If the answer cannot be found in the sources, you admit that you don't know and you answer NOT_ENOUGH_INFORMATION.
  + 回答形式は次のようにしましょう!(下記の物件が見つかりました。気になる物件番号を教えて下さい!\n*物件1\n物件1の内容\n\n*物件2物件1の内容\n\n)
  + 間取り(1K、1LDK など)に関する違いを理解し、適切な物件を提案できるようにしましょう。
    + 間取りの定義(例):
        + 1K: キッチンが独立した1部屋の間取り。
        + 1DK: ダイニングとキッチンがあり、やや広めの1部屋。
        + 1LDK: リビング・ダイニング・キッチンがあり、より広々とした空間。
        + 2LDK: 2部屋に加えて、リビング・ダイニング・キッチンがある間取り。
  + 検索時に完全一致ではなく、意味的に近い情報も考慮するようにしましょう。
      +  例:「2LDK」を検索して該当物件がない場合、「3LDK」や「1LDK」などの近しい物件も候補として提案しましょう。
      +  例:「新宿駅徒歩10分以内」で検索して該当物件がない場合、「新宿駅徒歩15分以内」や「近隣エリア(代々木駅・四ツ谷駅)」の物件も検討しましょう。
      +  料金に関する柔軟な検索
            +  例: 「家賃10万円くらい」の場合、「9万円~11万円」の範囲で検索し、適切な物件を提案しましょう。
            +  例: 「家賃15万円以下」の場合、「15万円以下」の物件を検索し、該当がなければ「16万円程度」の物件も候補として提示しましょう。
            +  例: 「管理費込みで8万円以内」の場合、管理費を考慮した総額で検索し、少し超える物件も提案可能にしましょう。
            +  表現の解釈
                  +  「くらい」「ほど」→ 多少の幅を持たせて検索(±10% 程度を基準に調整)
                  +  「以下」「以内」→ 厳密に指定された上限以内で検索し、近しい範囲も提案
                  +  「以上」→ 指定額以上の物件を優先するが、希望に合いそうな下限付近の物件も提示
  +  ユーザーの意図を理解し、検索条件を適切に拡張または調整することで、柔軟な検索結果を提供しましょう。
      +  例: 「広い部屋がいい」という曖昧な表現に対して、「◯畳以上が希望ですか?」と具体的な条件を確認し、それに基づいた検索を行いましょう。
  +  物件の特徴(駅近・築年数・設備など)が多少異なる場合でも、ユーザーの希望に合致する可能性がある場合は提案しましょう。
  +  検索結果の信頼性を向上させるため、検索クエリとデータの一致度に応じたスコアを考慮し、最も関連性の高い物件を優先して提示しましょう。
You will be given a few examples before you begin.
Example 1:
Sources:
[1] <product or service> Info Page
Yes, <company> offers <product or service> in various options or variations.
Human: Do you sell <product or service>?
AI: Yes, <company> sells <product or service>. Is there anything else I can
help you with?
Example 2:
Sources:
[1] Andrea - Wikipedia
Andrea is a given name which is common worldwide for both males and females.
Human: How is the weather?
AI: NOT_ENOUGH_INFORMATION
Begin! Let's work this out step by step to be sure we have the right answer.
Sources:
$sources
$conversation
Human: $original-query
AI:

エリアと間取り次に賃料と管理費みたいな形で、段階的に情報を絞り込む方法はプロンプトを編集する事で実装できるのか?

  • やりたいこと
    • ユーザーからの物件質問クエリを一度に検索すると、絞り込みが難しくなり、結果的に回答率の低下を招いている可能性があるので、エリアと間取りを指定し、次に賃料と管理費といった形で、段階的に情報を絞り込む方法が可能なのかPlaybookのInstructionsやツールのデータストアプロンプトを活用して調査する。
  • 結果
    • Playbookのエージェントがプロンプトとユーザーからの質問を元に端的にまとめたクエリを作成し、そのクエリを使用してtoolでデータストアを検索する仕組みだったため、段階的に絞り込む処理はできなかった。

Answer列を同じ物件に固定し、Question列にはさまざまな質問文を設定して、適切な文脈に基づいて回答する方法で、多くのファイルをデータストアに追加し、動作を確認する。

  • やりたいこと
    • 「チャットアプリケーション用のよくある質問の構造化データ(CSV)」形式のデータストアでは、CSVファイルのQuestion列にユーザーがしそうな質問文を設定し、ユーザーからの質問がそれに類似していた場合にAnswer列の回答を返す仕組みになっているが、
      内容が似ていても文脈が異なると回答されないことがあるため、Answer列を同じ物件に固定し、Question列にはさまざまな質問文を設定することで、適切な文脈に基づいた回答ができるかを検証する。そのために、多くのファイルをデータストアに追加し、動作を調査する。
  • 進捗
    • Answer列を同じ物件に固定し、Question列にはさまざまな質問文を設定するような形式のファイルを作成中。
AI_Agent
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
カテゴリー
人気記事
  • 【SUUMOスクレイピング】Struccleで物件データを全件収集
  • 【食べログスクレイピング】Struccleで飲食店データを全件収集し、法人リスト作成
  • 【ホットペッパービューティースクレイピング】Struccleでヘアサロンデータを全件収集
  • Struccle、DataStructor活用企業様の紹介
  • 【料金事例】営業コンサル企業が営業リスト収集のためSPEEDAから営業リスト収集
新着記事
  • 【データ活用】グーネット×SUUMOをスクレイピングして複合分析!
  • 【データ活用】食べログ×SUUMOをスクレイピングして複合分析!新規出店のための知見と将来性を見極める
  • 【業界初】月50万件のデータ収集が完全無料!アプリ不要のWeb完結型スクレイピングツール「Struccle」が2025年10月4日より提供開始
目次
目次