📄

Request My Resume

Thank you for your interest! To receive my resume, please reach out to me through any of the following channels:

跟着Google Gemini CLI 学Agent 开发(四):Gemini CLI如何爬取数据?

跟着Google Gemini CLI 学Agent 开发(四):Gemini CLI如何爬取数据?

在前三篇中,我的搭档 Tam 带我们领略了 Gemini CLI 的“安全护城河”(沙箱)、“感知手术刀”(文件系统)和“分层记忆大脑”(记忆系统)。我们的 AI Agent 已经安全、精准、且富有记忆力。但这还不够。

它仍像一个与世隔绝的博学学者,知识停留在过去,无法感知“现在”。一个无法联网的AI,无法追踪最新的技术框架,无法从Stack Overflow上查找最新的解决方案,也无法阅读最新的API文档。

为了打破这堵“信息墙”,今天,Tam 将为我们揭示 AI 的“千里眼”——google_web_search 和 web_fetch 这两大支柱,是如何赋予 Gemini 模型感知和处理实时网络数据的能力的。

下面,舞台交给他。


  • by Tam -

第一章:网络访问的两大支柱:发现与提取

Gemini CLI 将复杂的网络交互任务,解构为了两个基本且互补的原语:

  • 1.发现 (Discovery): 由 google_web_search 扮演“AI研究分析师”,负责从整个互联网中寻找答案,返回的不是链接列表,而是附带引用来源的摘要报告。

  • 2.提取 (Extraction): 由 web_fetch 扮演“内容处理助手”,负责对用户指定的URL进行深度处理,如总结、比较、提取特定信息。

它们的协同威力巨大。例如,你可以先用 google_web_search 寻找关于“Rust所有权模型与C++ RAII对比”的资料,在AI返回几篇高质量的文章链接后,再用 web_fetch 指令,让AI深入阅读这些链接并为你生成一份详细的对比报告。

第二章:google_web_search深度剖析:从搜索到答案的智能飞跃

这个工具的背后,是现代LLM应用最核心的技术之一:检索增强生成(Retrieval-Augmented Generation, RAG)。其关键在于,检索任务完全由Gemini API后端完成,而非CLI本地执行。

其内部流程大致如下:

  1. 模型接收到需要实时信息的查询,决定调用 google_web_search 工具。

  2. CLI将带有“启用搜索”标志的请求发送给Gemini API。

  3. API后端触发RAG流程:优化查询、并行搜索、爬取并筛选网页内容、内容分块、相关性排序,最终构建一个临时的、专为本次查询服务的“知识库”。

  4. 模型以用户问题为指令,以这个“知识库”为上下文,生成一份综合性的、带有引用来源的回答。

这种基于API的RAG设计,保证了检索信息的高质量、高效率,并能有效规避反爬虫限制和保护用户隐私。

第三章:web_fetch深度剖析:双模执行下的灵活与稳健 ⚖️

google_web_search 不同,web_fetch 赋予了用户指定信源的权力,其核心设计是“API优先,本地回退”的双模执行策略。

  1. 安全确认: 在执行前,CLI会提取所有URL并向用户请求确认,确保用户对网络访问有完全的知情权。

  2. 模式一 (API优先): CLI首先尝试让Gemini API后端直接获取和处理指定的URL内容。这是最高效、最可靠的路径。

  3. 模式二 (本地回退): 如果API因为防火墙、内网地址等原因访问失败,CLI会触发本地回退机制。它会在用户的本地机器上,使用axios等库再次尝试爬取URL内容。

  4. 二次调用: 本地爬取成功后,CLI会将爬取到的文本内容,作为工具的执行结果(FunctionResponse),与用户的原始指令一起,再次提交给模型进行处理,最终生成答案。

这个双模设计堪称典范,它在效率(API模式)和稳健性(本地回退模式能访问内网等受限资源)之间取得了绝佳的平衡。

第四章:高级用法与提示工程 ✍️

要成为高级用户,你需要掌握通过提示工程(Prompt Engineering)精确指挥这两个网络工具的艺术。

google_web_search 的提示技巧

查询质量决定了答案质量。尝试明确意图和范围,例如用 "Compare the server-side rendering (SSR) performance of Next.js 14 and Nuxt 3 in 2024." 代替模糊的 "web frameworks"

web_fetch 的精细化指令

它的能力远不止“总结”。你可以指令它扮演特定角色、要求特定的输出格式、甚至进行复杂的跨文档内容综合。

“Extract the name, company, and talk title of all speakers from this event page URL and format the output as a Markdown table.”

结论——从“阅读者”到未来的网络“行动者”

Gemini CLI的网络工具,通过显式确认、隐私隔离和沙箱集成,奠定了安全与隐私的基石。当前,它是一个出色的网络信息“阅读者”和“分析者”。

而其未来,必然是向网络“行动者”进化。我们可以预见,未来的工具将能够处理由JavaScript动态渲染的页面、与网页表单和按钮进行交互,甚至最终演化为自主网络代理(Autonomous Web Agents),仅根据一个高层级目标,就能自主地分解任务、访问多网站、综合数据并给出完整解决方案。

这一切,都始于那两个看似简单却蕴含无穷智慧的命令:google_web_searchweb_fetch

觉得Tam的分析有启发?点个「在看」,「转发」给更多需要的朋友吧!

关注我的公众号,与你一同探索 AI、出海与数字营销的无限可能。

🌌 让AI接入互联网,如同为智慧的大脑接通了实时的感官。

Mr. Guo Logo

© 2026 Mr'Guo

Twitter Github WeChat