iT邦幫忙

2026 iThome 鐵人賽

DAY 14
0
AI Engineering

30 天從資料處理、分析到生成式 AI 的整合應用與實作學習系列 第 14 篇

讓 Gemini 判斷該用哪個分析-認識Agent 與 Tool

  • 分享至 

  • xImage
  •  

如果讓 Java 繼續負責計算,那 AI 可不可以自行判斷使用者現在需要哪一種分析?於是我從這個想法開始了解 AI Agent 和 Tool 的概念。

什麼是 Agent?

雖然我還沒做過自己的 Agent,就以我目前的理解,Agent 可以讓生成式 AI 不只是根據問題產生回答,還能先理解使用者想做什麼,再判斷下一步需要使用什麼功能來完成。而以目前的睡眠分析來看,我還是希望 Java 負責資料的計算,AI 則可以先判斷使用者現在想知道哪一方面的睡眠資料,再給出適合的分析和建議。

Agent 和一般生成式 AI 有什麼不同?

目前 Gemini API 的方式是依據先設定好 Prompt 和要分析的內容,再讓 Gemini 根據這些產生解釋和建議。
而 Agent 除了可以利用 LLM 理解使用者的需求之外,還可以進一步判斷下一步應該做什麼,並選擇適合的工具。
所以套到我的專案裡,就是希望之後使用者不需要自己選擇要看哪一種分析,而是直接提出問題,再由 AI 先判斷他現在需要的是哪一種資料。

Tool 是什麼?

目前我的理解是,Tool 就是可以提供給 AI 使用的功能。有點像一個提前寫好,會告訴 AI 這個功能叫什麼、可以做什麼,以及使用時需要哪些資料的函式。但它不一定只能是 Java 裡面的函式,也可能是 API、系統功能或其他外部服務。AI 本身不需要完成這些功能,而是根據使用者的需求,判斷什麼時候需要使用哪一個 Tool。

以目前的睡眠分析來說,就是把之前寫好的四個分析當成可以使用的 Tool:
sleep_hours→ 睡眠時數分析
sleep_quality→ 睡眠品質分析
tasks_bedtime→ 任務量與入睡時間分析
difficulty_quality→ 任務難度與睡眠品質分析

在學習 Tool Calling 之前,我想先用這四個分析概念測試一下,gemini能不能根據使用者的問題選出適合的功能
,我在 GeminiService 新增了 routeQuery(),讓它接收使用者輸入的問題,再透過新的 Prompt 告訴 Gemini 目前有哪些分析功能,請它判斷這個問題比較適合哪一個分析。接著我用 String[] 放入五個預先設定好的問題來進行測試。

這是先設定好的問題:
https://ithelp.ithome.com.tw/upload/images/20260927/20184235R69ByA9s77.png
這是最後成功的畫面:
https://ithelp.ithome.com.tw/upload/images/20260927/201842356uJt0mR5rA.png


上一篇
怎麼將回傳的 JSON 轉成文字?
下一篇
如何讓篩選過的分析結果繼續被使用?
系列文
30 天從資料處理、分析到生成式 AI 的整合應用與實作學習 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言