如何為 LlamaIndex 代理加入即時網頁搜尋
LlamaIndex 代理適合用來建立能推理、使用工具、檢索上下文,並回答使用者問題的 AI 應用。 但它常遇到一個問題。 很多問題需要最新的網頁資訊。 使用者可能會詢問今天的商品價格、最新公司新聞、競爭對手排名、搜尋結果、政策更新、新產品發布,或公開網頁上的最新變化。如果代理只能依賴靜態知識庫,就可能漏掉近期資訊。 這就是即時網頁搜尋的價值。 把網頁搜尋工具加入 LlamaIndex 代理後,代理就可以在需要最新資訊時搜尋網頁、提取結構化結果、選擇相關來源,並把這些結果用在最終回答中。 實際流程如下: 這篇文章會說明如何為 LlamaIndex 代理加入即時網頁搜尋、應該返回哪些資料、如何設計搜尋工具,以及 TalorData 如何支援這類工作流程。 為什麼要為 LlamaIndex 代理加入即時網頁搜尋? 一般 LlamaIndex 代理可以很好地使用內部文件、知識庫和預先定義的工具。 但很多真實業務問題都依賴即時或近期更新的網頁資料。 範例: 使用者問題 為什麼需要即時搜尋 這個市場最近有哪些價格變化? 價格可能頻繁變動 哪些競爭對手本月發布了新產品? 產品發布具有時效性 今天哪些來源在這個關鍵字下排名靠前? 搜尋結果會隨時間變化 最近大家如何討論這個品牌? 公開網頁內容會快速變化 這個研究任務應該使用哪些來源? 來源發現需要最新搜尋 這項政策或文件發生了什麼變化? 靜態知識可能已經過期 沒有即時搜尋時,代理只能根據既有上下文回答。 有了即時搜尋後,代理可以在回答前判斷是否需要檢索最新網頁資料。 目標不是讓代理每個問題都搜尋。 目標是在問題依賴外部最新資訊時,提供一個可靠的搜尋工具。 網頁搜尋工具應該做什麼? 給 LlamaIndex 代理使用的網頁搜尋工具,不應該只是返回一大段原始 HTML。 那會給模型太多雜訊,卻缺少清晰結構。 更好的網頁搜尋工具應該返回乾淨、結構化的搜尋結果。 有用欄位包括: 欄位 為什麼重要 標題 幫助代理理解結果主題 […]
LlamaIndex 代理適合用來建立能推理、使用工具、檢索上下文,並回答使用者問題的 AI 應用。
但它常遇到一個問題。
很多問題需要最新的網頁資訊。
使用者可能會詢問今天的商品價格、最新公司新聞、競爭對手排名、搜尋結果、政策更新、新產品發布,或公開網頁上的最新變化。如果代理只能依賴靜態知識庫,就可能漏掉近期資訊。
這就是即時網頁搜尋的價值。
把網頁搜尋工具加入 LlamaIndex 代理後,代理就可以在需要最新資訊時搜尋網頁、提取結構化結果、選擇相關來源,並把這些結果用在最終回答中。
實際流程如下:
使用者問題
↓
LlamaIndex 代理
↓
即時網頁搜尋工具
↓
結構化搜尋結果
↓
來源篩選
↓
基於最新網頁情境回答
這篇文章會說明如何為 LlamaIndex 代理加入即時網頁搜尋、應該返回哪些資料、如何設計搜尋工具,以及 TalorData 如何支援這類工作流程。
為什麼要為 LlamaIndex 代理加入即時網頁搜尋?
一般 LlamaIndex 代理可以很好地使用內部文件、知識庫和預先定義的工具。
但很多真實業務問題都依賴即時或近期更新的網頁資料。
範例:
| 使用者問題 | 為什麼需要即時搜尋 |
| 這個市場最近有哪些價格變化? | 價格可能頻繁變動 |
| 哪些競爭對手本月發布了新產品? | 產品發布具有時效性 |
| 今天哪些來源在這個關鍵字下排名靠前? | 搜尋結果會隨時間變化 |
| 最近大家如何討論這個品牌? | 公開網頁內容會快速變化 |
| 這個研究任務應該使用哪些來源? | 來源發現需要最新搜尋 |
| 這項政策或文件發生了什麼變化? | 靜態知識可能已經過期 |
沒有即時搜尋時,代理只能根據既有上下文回答。
有了即時搜尋後,代理可以在回答前判斷是否需要檢索最新網頁資料。
目標不是讓代理每個問題都搜尋。
目標是在問題依賴外部最新資訊時,提供一個可靠的搜尋工具。
網頁搜尋工具應該做什麼?
給 LlamaIndex 代理使用的網頁搜尋工具,不應該只是返回一大段原始 HTML。
那會給模型太多雜訊,卻缺少清晰結構。
更好的網頁搜尋工具應該返回乾淨、結構化的搜尋結果。
有用欄位包括:
| 欄位 | 為什麼重要 |
| 標題 | 幫助代理理解結果主題 |
| 網址 | 顯示來源頁面 |
| 網域 | 幫助識別來源 |
| 摘要 | 提供內容簡短預覽 |
| 排名位置 | 顯示結果順序 |
| 搜尋引擎 | 適合多搜尋引擎工作流程 |
| 國家 | 適合特定市場搜尋 |
| 語言 | 適合本地化回答 |
| 裝置 | 適合 SEO 或搜尋結果比較 |
| 收集時間 | 顯示資料檢索時間 |
簡單結果可以是:
{
"position": 1,
"title": "2026 Market Report for Smart Home Devices",
"url": "https://www.example.com/smart-home-market-report",
"domain": "example.com",
"snippet": "A recent report covering market trends, major brands, product categories, and pricing changes.",
"collected_at": "2026-07-15T09:00:00Z"
}
這種格式更方便代理閱讀、篩選、引用、摘要,並傳入 RAG 工作流程。
代理什麼時候應該使用網頁搜尋?
不是每個問題都需要網頁搜尋。
當答案依賴最新、公開或外部資訊時,代理才應使用即時搜尋。
適合觸發搜尋的情況包括:
| 觸發條件 | 範例 |
| 時效性 | latest、recent、today、this week、2026 |
| 市場研究 | 競爭對手、定價、市場趨勢 |
| 搜尋可見度 | 排名、搜尋結果、排名靠前頁面 |
| 來源發現 | 尋找來源、收集網址、比較頁面 |
| 公開網頁更新 | 政策變更、公告、產品發布 |
| 本地或區域資料 | 國家特定結果、語言特定結果 |
| 商品研究 | Shopping 結果、賣家頁面、商品比較 |
代理不一定需要搜尋的問題包括:
| 問題類型 | 更合適的來源 |
| 內部政策問題 | 內部知識庫 |
| 使用者帳戶問題 | 內部資料庫或 API |
| 歷史概念解釋 | 已建立索引的文件 |
| 私有公司資料 | 已授權內部來源 |
| 已索引的靜態文件 | 既有 RAG 索引 |
這種區分很重要。
搜尋工具應該改善回答,而不是把每個任務都變成緩慢的網路尋寶。
簡單的 LlamaIndex 網頁搜尋架構
清晰架構通常包含四層:
| 層級 | 作用 |
| 代理 | 判斷是否要呼叫搜尋工具 |
| 搜尋工具 | 收集結構化網頁搜尋結果 |
| 篩選層 | 選出相關結果並移除雜訊 |
| 回答層 | 使用選中的結果回答使用者 |
實際流程:
使用者提出問題
↓
代理判斷是否需要最新網頁資料
↓
代理呼叫 web_search(query, country, language, device)
↓
搜尋工具返回結構化結果
↓
代理篩選相關標題、摘要和網址
↓
代理基於最新來源情境回答
這可以讓系統保持聚焦。
搜尋工具負責檢索資料。
代理負責理解資料。
最終回答只使用和使用者問題相關的結果。
步驟 1:定義搜尋工具
先定義搜尋工具應該接收什麼,並返回什麼。
簡單搜尋工具可以接收:
| 參數 | 用途 |
| query | 搜尋查詢 |
| country | 目標國家或市場 |
| language | 搜尋結果語言 |
| device | 桌面或行動裝置 |
| num_results | 返回結果數量 |
工具輸入範例:
{
"query": "latest smart home device market trends",
"country": "us",
"language": "en",
"device": "desktop",
"num_results": 10
}
工具輸出範例:
{
"query": "latest smart home device market trends",
"country": "us",
"language": "en",
"results": [
{
"position": 1,
"title": "Smart Home Device Market Trends 2026",
"url": "https://www.example.com/smart-home-trends",
"domain": "example.com",
"snippet": "Recent trends in smart home devices, including security, energy management, and connected appliances."
}
]
}
這會讓工具更可預期。
可預期的工具更容易被代理呼叫,也更容易讓開發者除錯。
步驟 2:把網頁搜尋包裝成代理工具
在 LlamaIndex 中,代理可以使用工具執行外部動作。
網頁搜尋函式可以被包裝成可呼叫工具,然後提供給代理使用。
概念型 Python 範例:
def web_search(query: str, country: str = "us", language: str = "en") -> dict:
"""
Search the public web and return structured results.
Use this tool when the user needs fresh public information,
recent market data, search result pages, or source discovery.
"""
results = search_api.search(
query=query,
country=country,
language=language,
device="desktop"
)
return {
"query": query,
"country": country,
"language": language,
"results": results
}
真正重要的是工具描述。
代理需要理解什麼時候應該使用這個工具。
不好的描述:
Search the web.
更好的描述:
Search the public web for fresh or recently updated information. Use this tool for current events, market research, competitor research, product pricing, search result analysis, source discovery, and questions that require up-to-date public web context.
工具描述不是裝飾。
它會影響代理如何做決策。
步驟 3:保持搜尋結果結構化
除非任務真的需要完整頁面內容,否則不要直接把巨大原始頁面丟給代理。
第一步通常只需要結構化搜尋結果。
好的搜尋結果物件包含:
{
"position": 1,
"title": "Example Market Report",
"url": "https://www.example.com/report",
"domain": "example.com",
"snippet": "A short summary of the page content.",
"type": "organic",
"collected_at": "2026-07-15T09:00:00Z"
}
這可以幫助代理:
- 比較來源
- 選擇相關網址
- 理解搜尋意圖
- 識別來源網域
- 避免閱讀不相關頁面
- 判斷是否需要進一步抓取頁面
一條有用規則是:
先搜尋,再按需抓取完整頁面。
這能讓流程更快、成本更低,也更容易控制。
步驟 4:加入來源篩選
原始搜尋結果不一定直接有用。
代理應該在使用結果前先篩選。
有用篩選規則包括:
| 規則 | 作用 |
| 移除不相關結果 | 降低雜訊 |
| 優先保留權威網域 | 提高來源品質 |
| 移除重複網址 | 避免重複上下文 |
| 按網域分組 | 避免單一網站佔據全部結果 |
| 保留最相關的前幾個結果 | 控制 token 使用量 |
| 保存收集時間 | 保留新鮮度情境 |
篩選邏輯範例:
從 10 條搜尋結果開始。
移除不相關結果。
移除重複網址。
按網域分組。
保留 3 到 5 個最相關來源。
在回答或 RAG 工作流程中使用這些來源。
這很重要,因為搜尋結果是來源發現資料。
它們不是自動成立的最終證據。
代理應該先選擇來源,再摘要或回答。
步驟 5:判斷何時抓取來源頁面
有時標題和摘要已經足夠。
有時代理需要完整頁面內容。
以下情況適合抓取完整頁面:
| 情況 | 為什麼需要抓取 |
| 使用者要求詳細比較 | 摘要太短 |
| 回答需要精確主張 | 需要完整頁面上下文 |
| 代理需要摘要某個來源 | 需要頁面內容 |
| 來源網址要進入 RAG | 頁面應被索引 |
| 摘要含糊不清 | 完整內容可以降低不確定性 |
安全流程:
搜尋網頁
↓
選擇相關來源網址
↓
抓取選中頁面
↓
提取乾淨內容
↓
作為上下文使用
↓
生成回答
這比盲目抓取所有結果更好。
重點是收集足夠上下文,而不是把整個網際網路當成自助餐塞給模型。
步驟 6:加入國家和語言設定
如果代理可以按國家和語言搜尋,即時搜尋會更有用。
例如,市場研究代理可能需要分別搜尋美國、德國和日本的結果。
有用設定包括:
| 設定 | 範例 |
| 國家 | us、gb、de、jp |
| 語言 | en、de、ja |
| 裝置 | desktop、mobile |
| 結果數量 | 10、20、50 |
| 時間範圍 | 支援時可使用近期結果 |
範例:
{
"query": "electric scooter price comparison",
"country": "de",
"language": "de",
"device": "desktop"
}
這讓代理可以回答特定市場問題。
使用者問題範例:
比較德國和美國可見的 electric scooter 來源。
代理可以執行兩次搜尋:
搜尋 1:electric scooter price comparison,country = de,language = de
搜尋 2:electric scooter price comparison,country = us,language = en
然後比較來源網域、標題、摘要和排名模式。
步驟 7:在 RAG 工作流程中使用搜尋結果
即時網頁搜尋也可以支援 RAG 流程。
常見模式:
使用者問題
↓
代理搜尋網頁
↓
代理選擇相關來源網址
↓
系統抓取或提取選中頁面
↓
頁面加入臨時上下文或向量索引
↓
代理使用網頁上下文回答
這適合:
| 工作流程 | 範例 |
| 研究助手 | 根據最新網頁來源建立簡報 |
| 競爭對手研究 | 比較可見競爭對手頁面 |
| 市場監控 | 追蹤新的公開更新 |
| SEO 助手 | 分析搜尋結果標題和摘要 |
| 商品研究 | 收集商品頁和賣家來源 |
| 新聞監控 | 摘要近期公開更新 |
搜尋結果適合做來源發現。
當系統需要選中來源的深層內容時,RAG 才更有用。
不要混淆兩者。
搜尋負責找到候選來源。
RAG 負責使用被選中的內容。
步驟 8:保存搜尋日誌和快照
如果代理在生產環境中使用網頁搜尋,應保存搜尋日誌。
有用欄位包括:
| 欄位 | 用途 |
| user_query | 原始使用者問題 |
| search_query | 傳給搜尋工具的查詢 |
| country | 目標國家 |
| language | 搜尋語言 |
| results | 結構化搜尋結果 |
| selected_urls | 最終回答使用的網址 |
| collected_at | 搜尋時間 |
| agent_decision | 代理為什麼搜尋 |
| final_answer_id | 對應的最終回答 |
這有助於:
- 除錯
- 評估
- 品質控制
- 來源審核
- 成本追蹤
- 可重複性
- 合規審核
一個能搜尋網頁的代理不應該是黑箱。
如果它搜尋了,你應該知道它搜了什麼、找到什麼,以及用了哪些來源。
TalorData 如何幫助為 LlamaIndex 代理加入即時網頁搜尋?
TalorData 可以作為 LlamaIndex 代理的結構化網頁資料層。
團隊不需要自行建立和維護搜尋收集、網頁抓取、解析、清洗和結構化提取流程,而是可以使用 TalorData 為代理工作流程提供即時搜尋和網頁資料工具。
TalorData 支援兩種實用整合方式:
| 整合方式 | 適合場景 |
| Python SDK | 快速原型、概念驗證、單代理應用、本地開發 |
| MCP Server | 生產環境、多代理系統、共享工具能力、團隊工作流程 |
實際 TalorData 和 LlamaIndex 工作流程如下:
使用者問題
↓
LlamaIndex 代理
↓
TalorData 網頁搜尋工具
↓
結構化搜尋結果
↓
可選的來源抓取或提取
↓
提供給代理的最新上下文
↓
最終回答、報告或 RAG 工作流程
TalorData 可以支援這些工作流程:
| 工作流程 | 即時搜尋如何幫助 |
| 研究助手 | 檢索最新公開網頁結果 |
| 競爭對手研究 | 比較可見來源和頁面 |
| SEO 助手 | 分析搜尋結果標題、摘要和網址 |
| 市場監控 | 追蹤公開來源中的近期更新 |
| 商品研究 | 收集最新商品和賣家頁面 |
| RAG 問答 | 為靜態索引之外的問題補充最新來源 |
| 內容助手 | 基於近期搜尋結果生成簡報和草稿 |
核心價值不只是取得網頁資料。
真正的價值是讓代理獲得結構化、可重複使用、可配置、可篩選、可記錄,並能安全接入工作流程的網頁資料。
結語
為 LlamaIndex 代理加入即時網頁搜尋,可以讓代理更好地回答依賴最新公開資訊的問題。
基本流程是:
定義代理何時應該搜尋。
建立結構化網頁搜尋工具。
返回標題、網址、網域、摘要和時間戳。
篩選相關結果。
只在需要時抓取來源頁面。
在回答或 RAG 工作流程中使用選中結果。
保存搜尋行為,用於審核和評估。
對研究助手、SEO 工具、競爭對手監控、市場研究、商品分析和 RAG 應用來說,即時網頁搜尋可以讓 LlamaIndex 代理獲得最新網頁情境。
靜態知識庫告訴代理它已經知道什麼。
即時網頁搜尋幫助代理找到外部世界發生了什麼變化。
FAQ
LlamaIndex 代理可以使用即時網頁搜尋嗎?
可以。LlamaIndex 代理可以把網頁搜尋函式作為可呼叫工具使用。工具可以返回標題、網址、網域、摘要和時間戳等結構化搜尋結果。
LlamaIndex 代理什麼時候應該使用網頁搜尋?
當問題依賴最新公開資訊、近期市場資料、競爭對手研究、搜尋結果分析、商品價格或來源發現時,應使用網頁搜尋。
搜尋工具應該返回原始 HTML 嗎?
通常不需要。更好的做法是先返回結構化搜尋結果。只有當代理需要更深來源內容時,才抓取完整頁面。
網頁搜尋結果可以用於 RAG 嗎?
可以。搜尋結果可以幫助發現相關來源網址。選中的頁面可以再被抓取、清洗,並作為 RAG 工作流程中的上下文。
SDK 整合和 MCP 整合有什麼不同?
SDK 整合通常更適合快速原型和單代理應用。MCP Server 整合更適合生產系統、多代理工作流程,以及跨團隊共享工具能力。