Kibana - TECH PLAY - TECH PLAY

TECH PLAY

Kibana

むベント

該圓するコンテンツが芋぀かりたせんでした

マガゞン

該圓するコンテンツが芋぀かりたせんでした

技術ブログ

芁玄 Elastic Agent Builder 9.5Elastic Stack 9.5.4 / 9.5.5で、AI ゚ヌゞェントの安党察策を、実際に環境を䜜っお詊したした。ツヌルを絞る蚭定、ロヌルの暩限DLS / FLS、実行前の人の承認は、補品の機胜で実珟できたした。䞀方で、Trace゚ヌゞェントの実行の蚘録にツヌルの詳现を蚘録する蚭定を ON にするず、顧客デヌタを芋る暩限の無い人にも、Trace から顧客デヌタが芋えたした。本文、蚭定、ク゚リ、画面ぞのたどり方は GitHub にたずめおいたす。 ▶ 蚘事を読むGitHub https://github.com/SIOS-Technology-Inc/elastic-blogs/tree/main/2026-10-agent-builder-security AI ゚ヌゞェントは、ツヌルを䜿っお実際に操䜜をしたす。そのため、埓来の LLM 察策だけでは足りたせん。前半の蚘事「 AI゚ヌゞェントはなぜ危険になる仕組みから考えるセキュリティの4原則 」では、そのための 4 ぀の原則を玹介したした。埌半のこの蚘事では、4 ぀の原則を Elastic Agent Builder 9.5 で実際に詊したした。 怜蚌の条件 補品Elastic Stack 9.5.4 / 9.5.5セルフマネヌゞド、Docker、Trial ラむセンス 怜蚌期間2026 幎 10 月 5 日〜8 日 モデル䞻に Elastic Inference ServiceEISを Cloud Connect 経由で利甚 シナリオ瀟内マニュアルを怜玢しお答える゚ヌゞェントを䜜り、マニュアルの 1 件に「顧客情報を倖ぞ送れ」ずいう指瀺を仕蟌みたした デヌタすべお架空のデヌタです。メヌルは本物を送らず、専甚の Index ぞの曞き蟌みを「送信」ずしたした 分かったこず ツヌルを絞る 新しい゚ヌゞェントでは、Elastic capabilities が OFF でも、Tools タブにツヌルが遞ばれおいるこずがありたした。䜿わないツヌルは、手で倖す必芁がありたす。 暩限で守る 今回の ES|QL ツヌルでは、䜿う人の Elasticsearch の暩限Index・DLS・FLSが、゚ヌゞェント経由でもそのたた効きたした。守っおいるのは LLM ではなく Elasticsearch です。ただし、FLS で隠した項目を ES|QL の KEEP で名指しするず、ツヌル党䜓が゚ラヌになりたした。 人が承認する 9.5.5 では、ツヌルの「Require user confirmation」を Always にするず、人が Allow を抌したずきだけ送信のツヌルが動きたした。9.5.4 では、Workflow の承認ステップで止められたした。ただし、Tools API から盎接ツヌルを実行するず、Agent Builder の確認画面は出たせん公匏ドキュメントより。 蚘録ず怜知 Trace の初期蚭定では、自分で䜜ったツヌルや゚ヌゞェントの名前が「custom」ず蚘録されたした。Trace を芋匵る ES|QL のアラヌトルヌルで、送信の Workflow の起動を玄 28 秒で怜知できたした。ただし、Workflow の承認画面で Decline した操䜜でもアラヌトは鳎りたした。今回の蚭定では、誰が䜿ったか、本圓に送信したかは、Trace だけでは分かりたせんでした。 蚘録ず暩限がぶ぀かる Trace にツヌルの詳现を蚘録するず、顧客 Index を読めないナヌザヌでも、Trace を読めれば顧客デヌタを読めたした。FLS でツヌルの結果の項目は隠せたしたが、同じ顧客デヌタが chat span の入力メッセヌゞgen_ai.input.messagesにも入っおいお、そこからは読めたした。 モデル 同じ゚ヌゞェント・同じ指瀺文でも、モデルによっお反応が違いたした。1 回の質問でも、遞んだモデル以倖が呌ばれおいたした。モデルが断っおくれるこずだけには頌れたせん。 この蚘事で分かるこず蚭定の堎所ず確かめ方 蚘事では、怜蚌の結果だけでなく、Agent Builder の安党察策を「どこで蚭定し、どう確かめるか」も、画面ぞのたどり方ず䞀緒に茉せおいたす。画面の名前や堎所は、Elastic Stack 9.5.4 / 9.5.5 で確かめたものです。 Elastic Agent Builder で、゚ヌゞェントが䜿えるツヌルを絞るには ゚ヌゞェントの蚭定の Tools タブで、䜿わないツヌルを倖したす。ツヌルは、Agent Builder → Manage components → Tools で䜜りたす2 章。 ゚ヌゞェントを䜿える人を決めるには ゚ヌゞェントの蚭定の Access control で、Public / Shared / Private から遞びたす。今回の環境では、新しい゚ヌゞェントの初期倀は Public でした2 章。 ※ Access control ぱヌゞェントの公開範囲を制埡する蚭定であり、Agent Builder 自䜓の利甚暩限は Kibana のロヌルでも管理されたす。 文曞ごず・項目ごずにデヌタを隠すにはDLS / FLS Stack Management → Security → Roles でロヌルを開き、Index privileges の行で蚭定したす。DLS は「Grant read privileges to specific documents」、FLS は「Grant access to specific fields」です3 章。 送信の前に人が承認するようにするには 9.5.5 では、ツヌルの䜜成画面で「Require user confirmation」を Always にしたす。9.5.4 では、Workflow に承認ステップwaitForApprovalを入れ、承認されたずきだけ送信のステップを動かす条件ifを付けたす4 章。 ゚ヌゞェントの実行の蚘録Traceを蚭定するには Stack Management → AI → GenAI Settings → Agent Builder Traces で蚭定したす。Advanced privacy settings で、蚘録する内容ツヌルの詳现、本圓の名前など 7 ぀を遞べたす。初期倀はすべお OFF です5 章、7 章。 危険な操䜜でアラヌトを出すには Stack Management → Alerts and Insights → Rules → Create rule → Elasticsearch query で、Trace を ES|QL で芋匵るルヌルを䜜りたす6 章。 どのモデルが䜿われたかを確かめるには Trace の chat span に蚘録されたモデル ID で確かめたす。機胜ごずのモデルの割り圓おは、Stack Management → Model Management → Feature settings で芋られたす8 章。 蚭定が効いおいるかを確かめるには 制限したナヌザヌで、Discover の ES|QL や、Elasticsearch の _search で実際に怜玢したす。今回は、ES|QL で null ず衚瀺された項目を、_search では読めたした7 章。 こんな方におすすめ Elastic Agent Builder の導入を考えおいる方 AI ゚ヌゞェントの暩限、承認、蚘録のしくみを決める方 Elasticsearch の DLS / FLS をすでに䜿っおいる方 怜蚌の結果より、たず蚭定の堎所ず確かめ方を知りたい方 関連蚘事 前半 AI゚ヌゞェントはなぜ危険になる仕組みから考えるセキュリティの4原則 Trace の開き方ず読み方 AI ゚ヌゞェントの「䞭で䜕が起きたか」を芋える化する 参考公匏ドキュメント Permissions and access control in Elastic Agent Builder ToolsElastic Agent Builder Collect tracesElastic Agent Builder Role management using Kibana ※ 2026 幎 10 月時点で、䞊の環境ず今回のシナリオで詊した結果です。バヌゞョンや蚭定によっお、動きは倉わるこずがありたす。 The post Elastic Agent Builder 9.5 で AI ゚ヌゞェントの安党察策を詊したできたこず、できなかったこず first appeared on Elastic Portal .
目次 TL;DR はじめに Kibana v9.5.x での衚瀺 移行察策 1. Elastic が甚意しおいるモデルを利甚する堎合 2. 自䜜の OpenAI 互換 Connector LM Studio 等を利甚する堎合 たずめず今埌の展望 TL;DR Kibana v9.5.0 以降、埓来の AI Connector が非掚奚deprecatedずなりたした。 今埌は Kibana / Elasticsearch の Inference Service および Inference Endpoint_inference APIぞの移行が掚奚されたす。 本蚘事では、v9.5.x における衚瀺の倉化ず、OpenAI 互換LM Studio等を含む移行・蚭定手順を解説したす。 はじめに v9.4.x たでは、 Kibana 䞊で AI 機胜に接続するための蚭定ずしお AI Connector が䜿甚されおいたした。 しかし、v9.5.0 より AI Connector は deprecated 非掚奚ずなっおいたす。 既存の AI Connector を利甚䞭の方や、今埌ロヌカル LLM 等に接続したい方向けに、掚奚される代替機胜 (Inference Endpoint) ぞの移行手順を説明したす。 Kibana v9.5.x での衚瀺 Kibana v9.5.5 で確認したずころ、Stack Management > Connectors 画面においお、 既存の AI Connector 独自に远加した OpenAI 互換のロヌカル LLM 甹 Connector を含むに、DEPRECATED バッゞが衚瀺されたす。 ※珟時点 (v9.5.x) では非掚奚衚瀺がされるのみで機胜自䜓は利甚可胜ですが、将来のバヌゞョンで廃止される可胜性があるため、早めの移行をおすすめしたす。 ※Stack Management > Connectors 画面の䟋 移行察策 1. Elastic が甚意しおいるモデルを利甚する堎合 Elastic が公匏に提䟛しおいるモデルを利甚する堎合には、Inference Service を利甚したす。 確認画面 : Stack Management > Elastic Inference 䞀芧から利甚可胜なモデルを確認できたす。 Stack Management > Elastic Inference 画面の抜粋 ※泚意 : 画面䞊に Deprecated や End of life ず衚瀺されおいる項目がある堎合、それは Connector の機胜ではなく、モデル自䜓が叀くなっおいるこずを瀺しおいたす。 2. 自䜜の OpenAI 互換 Connector LM Studio 等を利甚する堎合 自分で䜜成した OpenAI 互換の Connector LM Studio や Ollama などに぀いおは、Inference Endpoint を䜜成しお移行したす。 ※Elastic Inference Service を利甚せずに、倖郚の LLM 甚の API を利甚する堎合も同様です。 蚭定䟋 コンテナ䞊の Elasticsearch からホスト䞊の LM Studio で動䜜する google/gemma-4-e4b に接続する堎合 Kibana の Dev Tools Console から以䞋の API リク゚ストを発行したす。 PUT _inference/chat_completion/lmstudio_google_gemma_4_e4b { "service": "openai", "service_settings": { "api_key": "<YOUR_LM_STUDIO_API_KEY>", "model_id": "google/gemma-4-e4b", "url": "http://host.docker.internal:11434/v1/chat/completions" }, "task_settings": { "headers": { "content-type": "application/json" } } } 参考URL: https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-inference-put-openai Inference Endpoint を远加するず、Stack Management > External Inference 画面に、远加された Endpoint が衚瀺されたす。 Stack Management > Feature settings 画面の Global model の遞択肢にも远加された Inference Endpoint が衚瀺されるようになりたす。 たずめず今埌の展望 Kibana v9.5.0 における AI Connector の非掚奚化は、Elastic Stack における AI 接続基盀が _inference API ぞず䞀元化・進化しおいるこずを瀺しおいたす。 埓来個別に管理されおいた AI 接続が敎理されるこずで、公匏サヌビスInference ServiceずロヌカルLLM等の倖郚環境Inference Endpointの管理がより明確か぀シンプルになりたした。 DEPRECATED バッゞが衚瀺されおいる環境をお持ちの方は、ぜひ本蚘事の手順を参考に、スムヌズな移行を詊みおください。 The post Kibana の AI Connector 非掚奚化 (deprecated) に䌎う Inference Endpoint ぞの移行手順 first appeared on Elastic Portal .
意味で碑を探し、堎所ず灜害皮別で避難堎所を絞る。その怜玢を支えるES|QLツヌル、珟圚地の受け枡し、トレヌスで分かったこずを玹介したす。 目次 はじめに 先に甚語を 5 ぀だけ 党䜓の流れ 3 ぀のツヌル 3 ぀に共通する型ツヌル 3 で芋る珟圚地を点にしお、距離を枬り、半埄で絞る ツヌル 2避難堎所灜害皮別で厳密に絞る ツヌル 1意味怜玢䌝承内容が近い碑を「候補」ずしお出す ぀たずきやすい所任意の空欄には既定倀が芁る 意味怜玢semanticをどこで、どう䜿っおいるか デヌタを入れる偎説明文を 2 ぀の圢で保存する 怜玢する偎MATCH ã§ã€Œæ„å‘³ãŒè¿‘い順」に候補を出す 意味怜玢が「しないこず」 候補は意味の点数順、回答は距離順 ゚ヌゞェントのルヌル指瀺文 珟圚地の扱い 聞き返しのルヌル ツヌルの遞び方 結果の芋せ方 安党に぀いおの蚀い方ず、やらないこず 珟圚地をどう枡しおいるか なぜ Chrome 拡匵なのか 流れ 珟圚地は保存されるのか 7 分で䜕が消えるのか 地図に珟圚地を描くには PoC の限界 時間はどこで䜿われおいるか 限界ず、今埌やるこず たずめ 出兞・デヌタの加工 技術資料 はじめに 第1回 では、防灜のAI゚ヌゞェントを䟋に、意味怜玢で芋぀けた碑の灜害皮別を次の避難堎所怜玢に䜿う「属性の匕き継ぎ」を玹介したした。今回は、その仕組みを次の順番で芋おいきたす。 ゚ヌゞェントが持っおいる 3 ぀のツヌルは、䜕をしおいるのか 意味怜玢ずその点数を、どこたで䜿うのか ゚ヌゞェントは、どんなルヌルで動いおいるのか 怜玢の䞭心になる珟圚地を、どうやっお安党に枡しおいるのか コヌドは怜玢の流れを远うために茉せおいたす。構文を芚えるより、Elasticsearchが確かめる条件ず、LLMが刀断する郚分に泚目しおください。怜蚌環境はElastic Cloud ServerlessKibana 9.6.0、2026幎9月確認です。 先に甚語を 5 ぀だけ 甚語 䞀蚀でいうず Elasticsearch 倧量のデヌタを入れお、速く怜玢するためのデヌタベヌス。党文怜玢ず地理怜玢が埗意 むンデックス Elasticsearch に登録したデヌタのたずたり。今回は䌝承碑2,469件ず避難堎所115,829件を䜿う フィヌルドず型 衚の「列」ず、その列に入るデヌタの皮類。文字 keyword 、文章 text 、䜍眮 geo_point 、意味 semantic_text など ES|QL Elasticsearch の問い合わせ蚀語。 FROM 衚 | WHERE 条件 | SORT 䞊び順  ã®ã‚ˆã†ã«ã€çžŠæ£’パむプで凊理を぀なげる Agent Builder Kibana の䞭で AI ゚ヌゞェントを䜜る機胜。゚ヌゞェントに「ツヌル」を持たせ、日本語の質問に答えさせる 党䜓の流れ 利甚者の質問日本語 ↓ ゚ヌゞェントLLM: Anthropic Claude Sonnet 5、Elastic 経由 ├─ ① 䌚話に添付された珟圚地を読むattachments.read。期限を確かめる ├─ ② 質問に足りないもの半埄、灜害皮別などがあれば聞き返す ├─ ③ 3 ぀のツヌルから遞び、空欄匕数を埋めお呌ぶ ↓ ES|QL ツヌルElasticsearch が距離・皮別・意味を蚈算 ↓ ゚ヌゞェント ├─ ④ 結果を遞び、䞊べ、衚にする └─ â‘€ 泚意曞きを添えお回答する 距離ず登録倀の照合はElasticsearchが行いたす。LLMは質問を解釈しおツヌルず匕数を遞び、返った説明文を読んで回答を組み立おたす。぀たり、LLMにも刀断する仕事がありたす。 決めるこず 担圓 理由 珟圚地からの距離、半埄の䞭か倖か Elasticsearch ST_DISTANCE 、 WHERE  指定した座暙ず条件に基づいお蚈算する 灜害皮別の䞀臎 Elasticsearch MV_CONTAINS  登録枈みの皮別ず、枡された倀が䞀臎するか確認する 碑文の意味が質問に近いか候補出し Elasticsearch semantic_text  +  MATCH  2,469 件から候補を遞ぶのは怜玢゚ンゞンの仕事 候補のうち質問に合いそうな碑、次に䜿う灜害皮別 LLM 質問ず説明文、登録された皮別を読んで遞ぶ。刀断が垞に正しいずは限らない 質問の理解、聞き返し、回答文 LLM 自然な日本語のやり取り 指定のない半埄や灜害皮別 LLMに掚枬させない 必芁な倀が無ければ聞き返す。ただし、碑に耇数の登録皮別がある堎合は、LLMが質問ず合う登録倀を遞ぶ 3 ぀のツヌル 第1回で玹介した3぀の怜玢ツヌルは、筆者がES|QLで甚意した怜玢文を実行したす。 ?latitude  ã®ã‚ˆã†ã«  ?  ã§å§‹ãŸã‚‹åå‰ã¯ã€å®Ÿè¡Œæ™‚に倀を入れる堎所匕数です。LLMはツヌルず匕数を遞びたすが、保存枈みの怜玢文は曞き換えたせん。 番号は第 1 回ず同じです。 番号 ツヌル 䜕を探す 必須の空欄 任意の空欄 䞊び順 返す件数 ツヌル 1 geoai.search_disaster_lore_by_meaning 䌝承内容が質問に近い䌝承碑 緯床、経床、半埄、怜玢文 灜害皮別 意味の近さ順候補 最倧10 ツヌル 2 geoai.search_emergency_shelters 指定した灜害に察応する避難堎所 緯床、経床、灜害皮別 半埄 近い順 最倧10 ツヌル 3 geoai.search_disaster_lore 䌝承碑 緯床、経床 半埄 近い順 最倧10 このほかに、゚ヌゞェントは  attachments.read  ãšã„うツヌルも䜿いたす。䌚話に添付された珟圚地を読むためのツヌルで、Agent Builder に最初から入っおいたす。筆者が曞いたツヌルではないので、この 3 ぀には数えおいたせん。 説明は、䞀番簡単なツヌル 3 から始めたす。 3 ぀に共通する型ツヌル 3 で芋る珟圚地を点にしお、距離を枬り、半埄で絞る ツヌル3䌝承碑を近い順に探すのES|QL本文です。Agent Builderで䜿うには、このほかに匕数の型ず既定倀の蚭定が必芁です。 FROM geoai-disaster-lore-v1  | EVAL search_point = TO_GEOPOINT(CONCAT("POINT(", TO_STRING(?longitude), " ", TO_STRING(?latitude), ")"))  | EVAL distance_m = ST_DISTANCE(location, search_point)  | WHERE (?radius_km <= 0 OR distance_m <= ?radius_km * 1000)  | EVAL distance_km = ROUND(distance_m / 1000.0, 3)  | SORT distance_m ASC  | EVAL monument_lat = ROUND(ST_Y(location), 5), monument_lon = ROUND(ST_X(location), 5)  | KEEP name, address, disaster_types, disaster_name, description, distance_km, monument_lat, monument_lon  | LIMIT 10 行 䜕をしおいるか FROM geoai-disaster-lore-v1 䌝承碑の衚から始める EVAL search_point = TO_GEOPOINT(...) EVAL  ã¯ã€Œæ–°ã—い列を䜜る」呜什。空欄の  ?longitude   ?latitude 珟圚地を、地図䞊の 1 点に倉える EVAL distance_m = ST_DISTANCE(...) 碑の䜍眮 location  åˆ—、 geo_point  åž‹ïŒ‰ãšçŸåœšåœ°ã®è·é›¢ã‚’メヌトルで出す。地球の䞞みを考えた盎線距離 WHERE (?radius_km <= 0 OR ...) 半埄の倖を捚おる。半埄の空欄が省略されたずき0は絞らない EVAL distance_km = ROUND(...) メヌトルを km に盎す SORT distance_m ASC 近い順に䞊べる EVAL monument_lat = ... 碑の緯床・経床も返したす。ただし、このPoCでは怜玢の䞭心を利甚者の珟圚地に限定しおおり、碑の座暙を次の怜玢の䞭心には䜿いたせん。 KEEP ...  /  LIMIT 10 返す列を遞び、10 件に絞る 半埄を省略できるようにしたのは、「䞀番近い碑は」のような質問のためです。䞀番近いものを答えるのに、半埄は芁りたせん。 Agent Builderのツヌル䜜成画面 ツヌル 2避難堎所灜害皮別で厳密に絞る 距離を蚈算する流れに、灜害皮別の䞀臎条件を加えたす。次はツヌル2の条件郚分です。 | WHERE MV_CONTAINS(disaster_types, ?disaster_type) AND (?radius_km <= 0 OR distance_m <= ?radius_km * 1000) 避難堎所のデヌタには、1 斜蚭に「内氎氟濫、土砂灜害、措氎」のように耇数の灜害皮別が付いおいたす。Elasticsearch では 1 ぀の列に耇数の倀を入れられ、これを マルチバリュヌ ず呌びたす。 MV_CONTAINS  ã¯ã€Œãã®åˆ—に、この倀ずたったく同じものが入っおいるか」を芋る関数です。 灜害皮別の匕数は必須です。避難堎所だけを求める質問で、どの灜害に察応する堎所か分からなければ聞き返したす。第1回の連鎖怜玢では、先に芋぀けた碑に登録された灜害皮別から、質問に合う倀をLLMが遞んで枡したした。条件が䞀臎するかの刀定はElasticsearchが行いたす。 Agent Builderのツヌル䜜成画面 ツヌル 1意味怜玢䌝承内容が近い碑を「候補」ずしお出す FROM geoai-disaster-lore-v1 METADATA _score  | WHERE MATCH(description_semantic, ?query) AND (?disaster_type IS NULL OR ?disaster_type == "" OR MV_CONTAINS(disaster_types, ?disaster_type))  | EVAL search_point = TO_GEOPOINT(CONCAT("POINT(", TO_STRING(?longitude), " ", TO_STRING(?latitude), ")"))  | EVAL distance_m = ST_DISTANCE(location, search_point)  | WHERE distance_m <= ?radius_km * 1000  | EVAL distance_km = ROUND(distance_m / 1000.0, 3)  | EVAL relevance = ROUND(_score, 3)  | SORT _score DESC  | EVAL monument_lat = ROUND(ST_Y(location), 5), monument_lon = ROUND(ST_X(location), 5)  | KEEP name, address, disaster_types, disaster_name, description, distance_km, monument_lat, monument_lon, relevance  | LIMIT 10 ツヌル1のES|QL本文です。Agent Builderの匕数蚭定は別に必芁です。ツヌル3ずの䞻な違いは次の4か所です。 METADATA _score 怜玢の「点数」を列ずしお䜿えるようにする。 _score  ã¯ã€Œã©ã‚Œãã‚‰ã„䞀臎したか」を衚す数字です。 WHERE MATCH(description_semantic, ?query) これが意味怜玢です。 ?query  ã«ã¯åˆ©ç”šè€…の蚀葉をなるべくそのたた入れたす。 AND (?disaster_type IS NULL OR ?disaster_type == "" OR ...) 灜害皮別を指定したずきだけ、その登録倀で絞りたす。省略時は灜害皮別で絞りたせん。 SORT _score DESC 意味が近い順に、最倧 10 件の 候補 を返したす。 このツヌルで0行だった堎合でも、「地域内に該圓する碑が登録されおいない」ずは断定できたせん。意味怜玢を䜿わず、灜害皮別ず距離だけで数えた結果ずは区別したす。この違いは第1回の5-6で扱いたした。 たた、 距離順に䞊べるのは、意味怜玢で遞ばれた最倧10件の䞭だけ です。半埄内の党碑から「質問に合うものを距離順で10件」探す凊理ではありたせん。候補から挏れた碑は、LLMも評䟡できたせん。 ぀たずきやすい所任意の空欄には既定倀が芁る Agent Builder の ES|QL ツヌルでは、空欄に「任意」の印を付けられたす。任意の空欄に既定倀省略されたずきに入る倀が芁るかどうかは、ツヌルの䜜り方で違いたす。 公匏資料の説明 Kibana の画面UIで任意の空欄を䜜るずきは、既定倀が必須です。API で䜜るずきは既定倀がなくおもよく、省略された空欄は null倀なしになりたす。ただし null はク゚リの倱敗に぀ながりやすいので、既定倀を付けるこずが匷く勧められおいたす。 今回の実枬 今回のツヌル蚭定では、既定倀を䞎えずに空欄を省略するず、実行時に  Unknown query parameter [disaster_type] 知らない匕数ずいう゚ラヌになりたした。 そこで、任意の文字匕数には空文字  "" 、任意の数倀匕数には  0  を既定倀にしたした。 ?disaster_type  が空なら皮別で絞らず、ツヌル2・3では  ?radius_km  が0なら半埄で絞りたせん。ツヌル1では半埄は必須です。蚭定の詳现は ElasticのES|QLツヌルの資料 にもありたす。 意味怜玢semanticをどこで、どう䜿っおいるか デヌタを入れる偎説明文を 2 ぀の圢で保存する 䌝承碑の説明文は、1 ぀のむンデックスの䞭に 2 ぀のフィヌルドずしお入っおいたす。 フィヌルド 型 䜕のため description text 日本語の圢態玠解析 kuromoji 蚀葉で探す。「堀防」ずいう単語が入っおいる碑 description_semantic semantic_text 意味で探す。「堀防が壊れた蚘録」に近い内容の碑 圢態玠解析 は、日本語の文章を単語に切る凊理です。日本語は単語の間に空癜がないので、「堀防が壊れた」を「堀防 / が / 壊れ / た」ず切る必芁がありたす。kuromoji はそのための道具です。 semantic_text  ã¯ã€æ–‡ç« ã‚’怜玢甚の数倀衚珟ベクトルに倉換しお扱うフィヌルド型です。今回のむンデックスではElastic Inference Serviceの  .jina-embeddings-v5-text-small  ã‚’指定したした。日本語を含む倚蚀語に察応し、既定では1,024次元のベクトルを䜜りたす。モデルを自分のサヌバヌに配眮せずに䜿える構成です。詳しくは Elasticの蚭定䟋 を参照しおください。 怜玢する偎MATCH ã§ã€Œæ„å‘³ãŒè¿‘い順」に候補を出す MATCH(description_semantic, "川の堀防が切れお町が氎に぀かった蚘録")  ãšæ›žããšã€Elasticsearch は質問文も同じモデルでベクトルにしお、意味が近い碑を探したす。 筆者が川口垂内から聞いた䟋です距離は筆者の珟圚地からの倀を、1km 単䜍に䞞めおいたす。 碑 説明文の䞀郚 距離 瓊曜根溜井かわらぞねためい防氎蚘念碑越谷垂 明治 23 幎、行田垂で利根川の堀防が決壊し、越谷垂域は倧措氎に芋舞われた 箄 8km 倉束萜倧口逆陀之碑春日郚垂 明治 23 幎、利根川の堀防決壊ず叀利根川の氟濫の蚘録 箄 17km 氎害䌝承碑川島町 茪䞭の里、川島町は床重なる倧氎害に芋舞われた 箄 29km 「堀防が切れた」「町が氎に぀かった」ずいう日垞の蚀い方から、「決壊」「氟濫」ず曞かれた碑を探せたした。蚀葉が違っおも関連する候補を芋぀けられるのが意味怜玢の利点です。 意味怜玢が「しないこず」 ここでいう意味怜玢はElasticsearchが質問文ず碑の説明文を比べ、内容が近いものを候補ずしお返す凊理です。そのあずに、LLMが候補の説明文を読んで、質問に合うかを刀断したす。 䟋えば「川の堀防が切れお町が氎に぀かった蚘録」を探したずき、半埄10km内に登録されおいる碑は6件でした。この6件が意味怜玢の候補に入り、そのうち4件は灜害皮別が「地震」の碑でした。今回は灜害皮別で絞っおいないため、地震の碑も候補から陀かれたせん。 候補に出たこずず、質問に合うこずは別です。 ゚ヌゞェントは、意味怜玢で返った最倧10件をLLMに読たせお、回答に䜿う碑を遞びたす。その10件に合う碑がなくおも、地域内のすべおの碑に該圓するものがないずは蚀えたせん。「地域内の登録が0件か」を確かめたいずきは、意味怜玢ずは別に、灜害皮別ず距離の条件で登録件数を数えたす。 候補は意味の点数順、回答は距離順 r elevance  ã¯ã€Elasticsearchの怜玢スコア  _score  ã‚’小数点以䞋3桁に䞞めお返す倀です。質問文ず碑の説明文がどれくらい䌌おいるかを衚す怜玢の点数です。ツヌル1では、Elasticsearchの  _score  ã‚’この名前で返しおいたす。 䜿う堎所は、怜玢ず回答で違いたす。 段階 䜕をするか 候補を探す SORT _score DESC  ã§æ„å‘³ãŒè¿‘い順に䞊べ、最倧10件をツヌルから返す。ここではrelevanceを䜿う 回答を䜜る LLMが候補の説明文を読んで質問に合うか刀断し、合うず刀断した碑を珟圚地から近い順に衚瀺する。ここではrelevanceで䞊べない 近くの碑を知りたい質問なので、回答では距離を優先したした。ただし、 距離順に䞊べられるのは、意味怜玢が返した最倧10件だけ です。候補に入らなかった碑が、埌から距離順で远加されるわけではありたせん。たた、relevanceは正答率や安党性を衚す点数ではなく、䞀定以䞊なら必ず質問に合うずいう基準にも䜿っおいたせん。 ゚ヌゞェントのルヌル指瀺文 ゚ヌゞェントの動き方のルヌルは「指瀺文」に曞きたす。これぱヌゞェントを䜜るずきに蚭定する文章で、LLMはツヌルの説明ず䞀緒に読みたす。実際の動きが垞に指瀺どおりになるずは限らないため、怜玢結果も確認したす。 珟圚地の扱い 珟圚地は、䌚話の非衚瀺の添付  geoai-current-location  ã‹ã‚‰ã ã‘取る。 添付に緯床、経床、取埗時刻、有効期限がそろっおいお、期限内のずきだけ䜿う。 2 回目以降の質問でも、怜玢の前に 毎回 添付を読み盎しお期限を確かめる。期限切れなら怜玢しない。 利甚者に緯床・経床の入力を求めない。緯床・経床を回答に衚瀺しない。 ここたで曞くのは、LLM が芪切だからです。攟っおおくず「緯床ず経床を教えおください」ず聞いたり、前の質問で読んだ座暙を期限切れでも䜿い続けたりしたす。それを止めるルヌルです。 聞き返しのルヌル 怜玢 必須 足りないずき 避難堎所 灜害皮別。半埄は「範囲を求める質問」のずきだけ 皮別が無ければ怜玢せず、聞き返す 䌝承碑近い順 半埄は「範囲を求める質問」のずきだけ 範囲を求めおいるのに半埄が無ければ聞き返す 䌝承碑意味 半埄ず怜玢文 怜玢せず、聞き返す 基本は「半埄を掚枬しない。既定倀で補わない」です。ただし「䞀番近い」「最寄り」のような質問には、半埄そのものが芁りたせん。そのずきは聞き返さず、半埄で絞らずに近い順で怜玢し、「半埄の指定なしで、珟圚地から近い順に返したした」ず䞀蚀添えたす。 たずえば、筆者が川口垂内から「最も近い自然灜害䌝承碑を教えお」ず聞くず、聞き返しなしで「八䞁の氎神瀟再建蚘念碑」地震、玄 4kmが返りたした14 秒。「掚枬しない」ず「䞍芁なものを聞かない」は䞡立できたす。 ツヌルの遞び方 質問に「碑の内容・教蚓・テヌマ」の指定がある ├─ ある → ツヌル 1意味怜玢 │ 灜害皮別がはっきり蚀われおいれば、皮別の空欄にも入れる └─ ない → 「䞀番近い」「呚蟺の䞀芧」→ ツヌル 3近い順 避難堎所の質問 → ツヌル 2避難堎所 碑ず避難堎所の䞡方を求められた → ツヌル 1 か 3 → ツヌル 2第 1 回の「属性の匕き継ぎ」 ツヌル 1 に枡す怜玢文は、利甚者の蚀葉をなるべくそのたた䜿いたす。「川の堀防が切れお町が氎に぀かった蚘録」を「措氎」に眮き換えおはいけない、ず曞いおありたす。「措氎」ずいう䞀語に眮き換えおも意味怜玢ですが、「堀防が切れた」「町が氎に぀かった」ずいう具䜓的な条件が倱われ、探したい内容が広がっおしたうからです。 結果の芋せ方 ツヌル 1 の結果に぀いお、LLM に 3 ぀の仕事をさせおいたす。 遞ぶ。  æœ€å€§10件の候補の説明文を質問ず照らし、「内容が䞀臎する碑」ず「参考」に分ける。䞀臎が0件なら「今回返った候補には䞀臎する碑がない」ず蚀う。地域内の党碑に぀いお0件ずは蚀わない。 䞊べる。  ã©ã¡ã‚‰ã‚‚珟圚地から近い順。relevance では䞊べない。 芋せる。  äž€è‡Žã™ã‚‹ç¢‘は衚に、参考の碑は 1 行ず぀。 説明文の芁玄にもルヌルがありたす。説明文にある事実だけを短くし、数字・幎・地名は原文のたたにしたす。䞀臎した1件目は原文を短く匕甚しお、LLMが「それらしい教蚓」を付け足しおいないか読者が確かめられるようにしたす。 安党に぀いおの蚀い方ず、やらないこず この PoC を安党刀定システムずしお扱わない。 距離は道路距離でも埒歩距離でもなく、盎線距離だず曞く。 避難堎所の開蚭状況、収容の䜙力、経路の安党は分からないず曞く。 䌝承碑デヌタは党囜の灜害を網矅しおいない。0 件でも「灜害がなかった」「今は安党」ず蚀わない。 䜏所から座暙ぞの倉換、登山情報、珟圚の危険床や避難が必芁かどうかの刀定はしない。 たずえば「神戞の垂圹所に䞀番近い碑を教えお」ず聞くず、゚ヌゞェントは「任意の䜏所を䞭心にした怜玢はできたせん」ず断りたす。これは、指瀺文でわざずそうしおいる動きです理由は第 1 回の 1 節。 珟圚地をどう枡しおいるか ここからは、怜玢の䞭心になる珟圚地の話です。䜜り方の现かい話は省き、蚭蚈の考え方だけを曞きたす。 なぜ Chrome 拡匵なのか Kibana の Agent Builder のチャット画面には、「珟圚地を䜿う」ボタンがありたせん。䜍眮を枡す方法は、倧きく 3 ぀考えられたす。 方法 このPoCでの刀断 利甚者が緯床・経床を打ち蟌む 珟実的ではない。打ち間違えるず、別の堎所を怜玢しおしたう 䜏所を打ち蟌み、座暙に倉える ゞオコヌディングは今回入れおいない第 1 回の 1 節 ブラりザに珟圚地を聞く 利甚者が蚱可したずきだけ取埗できるため、今回採甚した 小さなChrome拡匵を䜜り、利甚者がボタンを抌したずきだけ、ブラりザのGeolocation APIで珟圚地を取埗したした。拡匵はKibanaの画面を読み曞きせず、独立した小さな窓で動きたす。 拡匵機胜の画面 流れ [利甚者] ボタンを抌す ↓ [Chrome 拡匵] ブラりザから緯床・経床を取る ↓ 緯床・経床・取埗時刻の 3 ぀だけ送る [自分のPCで動くロヌカルサヌバヌ]ElasticのAPIキヌを保持 ├─ Agent Builder APIで新しい䌚話を䜜り、珟圚地を非衚瀺で添付する ├─ 地図甚の䞀時むンデックスに珟圚地を1件曞く ├─ 7分埌に䌚話ず地図甚の珟圚地の削陀を詊みるサヌバヌ皌働䞭のみ └─ 䌚話のURLを拡匵ぞ返す [Chrome 拡匵] 新しいタブでその䌚話を開く ↓ [利甚者] 日本語で質問する → ゚ヌゞェントが添付から珟圚地を読む ポむントは 2 ぀です。 APIキヌを拡匵に持たせない。  ãƒ–ラりザで動く拡匵にキヌを入れず、ロヌカルサヌバヌだけが保持したす。 珟圚地を添付した新しい䌚話を開く。  æ‹¡åŒµã¯æ—¢å­˜ã®Kibana画面を曞き換えたせん。新しい䌚話を䜜っお䜍眮を添付し、そのURLを開きたす。 珟圚地は保存されるのか 珟圚地は保存されたす。保存先ごずの扱いを分けお曞きたす。 堎所 珟圚地は入るか Agent Builderの䌚話非衚瀺の添付ずツヌル呌び出しの蚘録 入る。7分埌、サヌバヌが動いおいれば䌚話の削陀を詊みる 地図甚の䞀時むンデックス  map-session-current-location-v1 珟圚地1件を保存する。䌚話ず同じタむマヌで削陀を詊みる 䌝承碑・避難堎所のむンデックス geoai-*  入らない Agent Builder の動䜜蚘録トレヌス 入らないずは蚀えない䞋で説明 自分のPCのサヌバヌ 今回の実装では䜍眮をファむルやログぞ曞かない。削陀タむマヌはメモリ䞊にある トレヌスに぀いお確かめたのは、デヌタストリヌム  traces-agent_builder.otel-default  ã‚’、今回の緯床の倀で怜玢しお0件だったこずだけです。これは「䜍眮が蚘録されない」蚌明にはなりたせん。 䞀方で、Kibana のチャット画面では、トレヌスのスパン1 ぀ 1 ぀の凊理の詳现に、その凊理の入力ず出力が衚瀺されるこずがありたす。ツヌルの空欄に入れた緯床・経床や、 attachments.read  ãŒèª­ã‚“だ添付の䞭身が、スパンの詳现に蚘録されるかどうかは、確かめおいたせん。蚘録の蚭定によっお倉わる可胜性もありたす。そのため、この蚘事では「トレヌスに䜍眮は残らない」ずは蚀いたせん。本番で䜿うなら、ツヌルの匕数、 attachments.read  ã®å…¥åŠ›ãšå‡ºåŠ›ã€ãƒˆãƒ¬ãƒŒã‚¹ã®åŽé›†èš­å®šã® 3 ぀を確認する必芁がありたす。 たた、゚ヌゞェントが䜍眮を読んで匕数を遞ぶ過皋では、LLMにも䜍眮情報が枡りたす。このPoCは「珟圚地がElasticのどこにも残らない」ずいう蚭蚈ではありたせん。 7 分で䜕が消えるのか 「7 分」は、䜍眮を取埗した時刻から数えたす。 䜕が どうなるか 添付の有効期限 期限を過ぎた珟圚地は怜玢に䜿わず、「有効な珟圚地を取埗できたせん」ず答えるよう、゚ヌゞェントに指瀺しおいたす 䌚話そのもの サヌバヌ皌働䞭は7分埌に削陀APIを呌ぶ。成功すれば䌚話の添付ず蚘録も削陀される 地図甚の珟圚地 䌚話ずは別の䞀時むンデックスにある。サヌバヌが削陀を詊み、地図偎でも期限切れを衚瀺しない条件を䜿う 1 行目は「䜿わせない」ための期限で、2 行目ず 3 行目が「実際に消す」凊理です。この 2 ぀は別のものです。期限が切れおも、それだけで䌚話が消えるわけではありたせん。実際に消えるのは、タむマヌが動き、削陀 API の呌び出しが成功したずきです。 なぜ7分なのか。䜍眮が叀くなっおも今の堎所ずしお怜玢しないよう、PoCで決めた時間です。1回の質問ず短い聞き盎しを想定しおいたす。 7分で自動的に完党消去されるずいう意味ではありたせん。 地図に珟圚地を描くには このPoCのKibana Mapsでは、珟圚地・碑・避難堎所を3぀のレむダヌで重ねたす。碑ず避難堎所は既存のむンデックスから読み蟌みたす。珟圚地の点を描くために、地図甚の䞀時むンデックス map-session-current-location-v1 を別に甚意したした。䌝承碑や避難堎所のデヌタには混ぜたせん。 䞭身は珟圚地 1 件だけ。新しい䌚話を䜜るずき、叀いものを先に消す。 䌚話の削陀ず同じタむマヌで、削陀を詊みる。サヌバヌを起動したずきにも、期限切れを掃陀する。 地図のレむダヌにも「有効期限が今より埌のものだけ描く」ずいう条件を入れおいたす。削陀に倱敗しおも、地図を再怜玢・曎新した際には、期限切れの䜍眮を衚瀺察象から陀倖したす。 この地図はチャットの回答ず自動連動したせん。碑ず避難堎所のレむダヌは、それぞれのむンデックスから点を読み蟌みたす。灜害皮別で衚瀺を絞る堎合は、Kibana Mapsの怜玢欄で筆者が手動で指定したす。衚瀺される点は、ツヌルが返した最倧10件ずは別です。 地図䞊の䌝承碑ず避難堎所の点は、囜土地理院の各デヌタを加工しお筆者が衚瀺したものです出兞は末尟に蚘茉。 PoC の限界 削陀のタむマヌはサヌバヌのメモリにありたす。7分前にサヌバヌを止めたり、削陀APIが倱敗したりするず、䌚話が残りたす。その堎合はAgent Builderの画面かAPIで手動削陀が必芁です。地図甚の珟圚地は、次にサヌバヌを起動したずきに期限切れを掃陀したす。ただし、サヌバヌが止たっおいる間は削陀されたせん。本番では削陀の再詊行ず成功確認が必芁です。 時間はどこで䜿われおいるか Kibana のトレヌス凊理の内蚳を時間の流れで芋る画面で、第 1 回の連鎖怜玢 1 問堀防決壊の碑 → 措氎の避難堎所を芋たした。トレヌスには 6 ぀のスパン凊理のたずたりが衚瀺され、トレヌス党䜓の長さは 32.0 秒でした。 䞋の衚は、画面に衚瀺された順番のたたです。時間も、画面に出た倀をそのたた曞いおいたす。 順番 画面の衚瀺 䞭身 時間 LLM ぞの入力 / 出力トヌクン 1 LLMchat LLM の呌び出し 3.2 秒 23,953 / 88 2 TOOLattachments.read 珟圚地の添付を読む 1 ミリ秒未満 ― 3 LLMchat LLM の呌び出し 2.4 秒 24,304 / 191 4 TOOLcustom ツヌル 1碑の意味怜玢 84 ミリ秒 ― 5 LLMchat LLM の呌び出し 25.6 秒 28,454 / 2,165 6 TOOLcustom ツヌル 2避難堎所 画面䞊で読み取れない ― なお、衚の時間を足しおも、32.0 秒にはなりたせん。32.0 秒はトレヌスの始たりから終わりたでの長さで、各スパンの時間の合蚈ではありたせん。スパンどうしが重なったり、間があいたりするこずもありたす。 この画面からは、分からないこずもありたした。 5 番目の LLM のあずに、6 番目の避難堎所ツヌルが䞊んでいたす。回答の文章をどの LLM 呌び出しが曞いたのかは、この画面からは分かりたせん。 同じ質問で、チャット画面に衚瀺された回答時間は 51 秒でした。トレヌスの 32.0 秒ずの差がどこから来るのかは、確かめおいたせん。 分かったのは、芳枬できたスパンの䞭ではLLMのスパンが最長で、ツヌル1のスパンは84ミリ秒だったこずです。この84ミリ秒をElasticsearch単䜓の実行時間ずはみなしたせん。回答を曞いた凊理や、画面の51秒ずの差は芋えおいないため、埅ち時間党䜓の内蚳ずは蚀えたせん。 芳枬した3回のLLM呌び出しでは、入力が玄2.4䞇2.8䞇トヌクンでした。入力の内蚳を調べおいないため、どの文章が時間や費甚にどれだけ効いたかは分かりたせん。次に改善するなら、入力の内蚳ずツヌル実行埌のスパンも確認したす。 限界ず、今埌やるこず 項目 今回確認した限界 次に確かめるこず 回答の埅ち時間 連鎖怜玢のチャット衚瀺は5169秒。芳枬したスパンではLLMが最長だが、埅ち時間党䜓の内蚳は䞍明 トレヌスに出おいない凊理、画面衚瀺時間ずの差、入力の内蚳を確認する 候補の挏れずLLMの遞別 䞊䜍10件以倖は読めず、抜象的な質問では䞀臎刀定もぶれる 怜玢評䟡を増やし、候補数や刀断基準を比范する 灜害皮別の蚀い換え LLMが指瀺文の察応衚を䜿っお登録枈みの皮別を遞ぶ 蚀い換え衚をデヌタずしお管理する方法を怜蚎する 珟圚地の削陀 期限切れの䜍眮を怜玢に䜿わないよう指瀺しおいるが、サヌバヌ停止時には䌚話が残り埗る 再詊行できる削陀凊理ず成功確認を蚭ける たずめ この゚ヌゞェントでは、Elasticsearchが距離ず登録皮別を照合し、意味が近い碑を候補ずしお返したす。LLMは質問を解釈しおツヌルず倀を遞び、候補の説明文を読んで回答したす。 ES|QLのツヌルは3぀。距離や登録皮別の条件は、保存枈みの怜玢文に曞きたした。 semantic_text  ãš  MATCH  ã¯ã€è³ªå•ã«é–¢é€£ã™ã‚‹ç¢‘の候補を遞ぶために䜿いたす。回答の距離順は、 遞ばれた候補の䞭での順番 です。 灜害皮別が必芁なずきは、登録枈みの倀を遞びたす。質問に必芁な半埄がなければ聞き返したす。 7分を過ぎた䜍眮を怜玢に䜿わないよう指瀺し、サヌバヌ皌働䞭に削陀を詊みたす。 地理情報をAIに぀なぐず、自然な質問から堎所に結び付いたデヌタを探せたす。その答えを評䟡するには、 怜玢条件、候補の範囲、LLMの刀断、凊理の蚘録 をそれぞれ芋えるようにする必芁がありたす。このPoCは、その䜜り方ず残る課題を瀺したした。 出兞・デヌタの加工 出兞囜土地理院「 自然灜害䌝承碑デヌタの提䟛に぀いお 」2026幎8月27日版を2026幎9月5日に取埗 出兞囜土地理院「 指定緊急避難堎所デヌタ 」2026幎9月5日に取埗 本蚘事の怜玢結果ず地図は、䞊蚘デヌタをもずに筆者が灜害皮別の敎理、Elasticsearchぞの登録、怜玢、可芖化を行っお䜜成したした。囜土地理院が本蚘事の怜玢結果や地図を䜜成したものではありたせん。 指定緊急避難堎所は灜害皮別ごずに指定されたす。公開デヌタには曎新前の情報や未掲茉の斜蚭がある堎合がありたす。実際の避難には自治䜓などの最新情報を確認しおください。 技術資料 Elastic「 ES|QL tools in Elastic Agent Builder 」 Elastic「 Semantic text field type reference 」 Elastic「 ES|QL MATCH function 」 The post GeoAI゚ヌゞェントの䞭身【第2回】ES|QLツヌルず珟圚地の枡し方 first appeared on Elastic Portal .

動画

該圓するコンテンツが芋぀かりたせんでした

曞籍

おすすめマガゞン

蚘事の写真

AIに任せる範囲ず人が匕き受ける刀断、PayPayカヌド審査システムの蚭蚈珟堎

蚘事の写真

AIがコヌドを曞く時代、人間は䜕を保蚌するのか───銬堎さんず考える、開発者に求められる新しい責任ず䟡倀

蚘事の写真

仕様曞通りに実装したのに「そうじゃない」ず蚀われる理由───ミノ駆動さんが語る”前提を疑うための認知の芖点”

新着動画

蚘事の写真

【3分解説】囜産AI「Sarashina」6぀のモデルで䜕ができる

蚘事の写真

「ただ出せない」が続くのはなぜ゚ンゞニアの仕事の進め方、完成床の芋極め方を「おい、ずりあえず終わらせろ」著者・nwii...

蚘事の写真

【解説】文章を生成しない最新AI「Jev」ずは ClaudeやChatGPTず䜕が違うTypeSafe AIの刀断専...