MENU
  • HOME
  • 取引実績
  • お問い合わせ
  • 資料DL
  • 会社概要
  • FAQ
  • Struccle記事
  • BigQuery記事
データ流通、検索エンジン開発のプロフェッショナル
DataStructor
  • HOME
  • 取引実績
  • お問い合わせ
  • 資料DL
  • 会社概要
  • FAQ
  • Struccle記事
  • BigQuery記事
DataStructor
  • HOME
  • 取引実績
  • お問い合わせ
  • 資料DL
  • 会社概要
  • FAQ
  • Struccle記事
  • BigQuery記事
  1. ホーム
  2. AI_Agent
  3. Agent開発
  4. AI Agent開発日記 2025/04/05

AI Agent開発日記 2025/04/05

2025 4/05
AI_Agent Agent開発
2025年4月5日
目次

この記事について

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

やりたいこと

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

前回の調査日記

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

Agent BuilderのツールであるOpenAPIのスキーマを適切に設定し、Cloud RunにデプロイしたElasticsearchで検索できるか調べる。

  • やりたいこと
    • スキーマを編集してエージェントが「most」機能を使えるようにする
  • 試したこと
    • スキーマとplaybookを下記のように編集
  • 結果
    • most機能を使って複数の条件で絞っての検索ができるようになった
    • 次はElasticsearchにデータをさらに追加して動作に問題がないかチェックする。

新スキーマ

openapi: 3.0.0
info:
  title: Elasticsearch Property Search API
  version: v1
servers:
  - url: 'https://app-elasticsearch-appyouta-837157351927.us-west1.run.app'
paths:
  /_search:
    post:
      summary: Search properties in Elasticsearch
      description: Executes a search query against an Elasticsearch index for properties.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: object
                  description: Query in Elasticsearch Query DSL format.
      responses:
        '200':
          description: Successful response with search results.
          content:
            application/json:
              schema:
                type: object
                properties:
                  took:
                    type: integer
                    description: Time taken for the query in milliseconds.
                  timed_out:
                    type: boolean
                    description: Indicates if the query timed out.
                  _shards:
                    type: object
                    properties:
                      total:
                        type: integer
                      successful:
                        type: integer
                      skipped:
                        type: integer
                      failed:
                        type: integer
                  hits:
                    type: object
                    properties:
                      total:
                        type: object
                        properties:
                          value:
                            type: integer
                          relation:
                            type: string
                      max_score:
                        type: number
                      hits:
                        type: array
                        items:
                          type: object
                          properties:
                            _index:
                              type: string
                            _type:
                              type: string
                            _id:
                              type: string
                            _score:
                              type: number
                            _source:
                              type: object
                              properties:
                                property_id:
                                  type: integer # レスポンス例より integer に修正
                                location:
                                  type: string # レスポンス例より string に修正
                                type:
                                  type: string
                                status:
                                  type: string
                                nearest_station:
                                  type: string
                                price:
                                  type: integer # レスポンス例より integer に修正
                                area_sqm:
                                  type: number # レスポンス例より number に修正

新playbook

- **フィールド指定検索(インデックス名 + フィールド名:キーワード)**
    - 形式: 「[インデックス名] インデックスで [フィールド名]:[検索キーワード] を検索して」
    - 処理:
        - 指定フィールドを `${TOOL:Elasticsearch指定クエリ検索}` で検索し、結果を物件情報として整形して表示する。
    - 出力フォーマット:
        - 「[インデックス名] インデックスで [検索条件] を検索した結果、[件数] 件の物件が見つかりました。
            - 物件ID: [_id]  **← `property_id` ではなく `_id` に修正**
            - 物件タイプ: [type]
            - 所在地: [location]
            - 賃料: [price] 円  **← `rent` ではなく `price` に修正**
        - 他に条件があれば教えてください。」
- **インデックス全体の検索**
    - 形式: 「[インデックス名] インデックス全体を検索して」
    - 処理:
        - インデックス内のすべての物件データを `${TOOL:Elasticsearch指定クエリ検索}` で検索し、上位物件を抜粋して表示する。
    - 出力フォーマット:
        - 「[インデックス名] インデックス全体を検索した結果、[件数] 件の物件が見つかりました。
        - 上位3件を表示:
            - 物件ID: [_id]  **← `property_id` ではなく `_id` に修正**
            - 物件タイプ: [type]
            - 所在地: [location]
            - 賃料: [price] 円  **← `rent` ではなく `price` に修正**
        - 全件表示が必要な場合は、お知らせください。」
- **検索エラーが発生した場合**
    - 形式: 「Elasticsearch でエラーが発生した場合」
    - 処理:
        - エラー内容を解析し、ユーザーにとってわかりやすい形で解決策を提示する。
    - 出力フォーマット:
        - 「検索中にエラーが発生しました。[エラー内容]」
        - 「もう一度検索するか、内容をご確認ください。それでも解決しない場合は、管理者にご連絡ください。」
- **Elasticsearchツールの指定が必要な場合**
    - 形式: 「明確な検索指示がない、または検索フォーマットが不適切な場合」
    - 処理:
        - 適切な検索例を提示して、ユーザーに再入力を促す。
    - 出力フォーマット:
        - 「検索の指定方法が不明確です。次のように入力してください:
            - `property-index` インデックスで `location:仙台` を検索して
            - `property-index` インデックスで `price:20万円以下` を検索して  **← `rent-index` を `property-index` に修正、`price` フィールドの例を追加**
        - もう一度ご入力をお願いします。」

人気記事

  • BigQueryの無料枠を活用しよう!制限と注意点、活用方法を解説
  • BigQueryでエラー解決!よくあるエラーと対処法
  • BigQueryのレベル別学習リソースまとめ!初心者から上級者まで役立つ情報源
  • 【SUUMOスクレイピング】Struccleで物件データを全件収集
  • BigQuery入門!無料データでSQLの基本文字列関数をマスター
AI_Agent Agent開発
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次
カテゴリー
  • AI_Agent (153)
    • Agent開発 (153)
  • BigQuery (100)
    • BigQueryTips (11)
    • BigQueryでデータ分析 (49)
    • BigQueryのFAQ (1)
    • BigQuery入門 (8)
    • BigQuery学習教材 (22)
    • BigQuery導入ガイド (3)
    • BigQuery最新情報 (3)
    • BigQuery活用事例 (4)
  • Struccle (184)
    • Struccleでスクレイピング (10)
      • suumoの物件データを収集&分析 (1)
      • アニマルジョブの電話番号、メールアドレスを全件収集 (1)
      • データ集計 (6)
      • ホットペッパービューティーのヘアサロンデータを収集&分析 (1)
      • 食べログの飲食店データを収集&分析 (1)
    • Struccleデータ料金事例 (173)
      • 商品分析 (15)
      • 営業リスト (119)
      • 競合分析&市場調査 (58)
      • 自動車 (11)
      • 自社活用 (7)
    • Struccle活用企業様の紹介 (1)
  • 当ブログのコーディング実行環境設定 (4)
目次