ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

搜索引擎接入实战:让AI Agent学会上网找答案(Tavily/SerpAPI对比)

搜索引擎接入实战:让AI Agent学会上网找答案(Tavily/SerpAPI对比) 搜索引擎接入让Agent学会上网找答案Agent最常用的能力是什么。我投搜索一票。大模型再聪明它的知识也是有截止日期的。训练数据之后发生的事它不知道。领域专业知识它可能也不全。这时候搜索就派上用场了。搜索能力决定了Agent的信息边界。没有搜索的Agent就像被关在屋子里只能靠记忆回答。有了搜索它就能连接整个互联网。这一篇我们讲怎么给Agent装上搜索能力。有哪些搜索工具可以选怎么接入搜索结果怎么处理以及实际使用中的一些技巧。搜索工具选哪个目前主流的搜索工具大概有这几个。Tavily。专门为AI Agent做的搜索引擎。结果质量高格式干净返回的是已经提取好的摘要不是原始HTML。Agent处理起来很方便。免费额度每天1000次个人开发足够。推荐首选。SerpAPI。封装了Google搜索的API。能拿到Google的搜索结果质量也不错。缺点是要翻墙免费额度少。需要Google结果的场景可以用。DuckDuckGo。不用注册不用密钥直接就能用。优点是免费无限制缺点是搜索质量一般速度也慢。做Demo或者玩具项目够用。Bing搜索API。微软的官方搜索API需要Azure账号。国内用不了太多。国内的搜索。百度、必应国内版目前没有特别好用的Agent友好封装。可以自己写个爬虫或者接官方API。我自己的推荐。做开发学习和小项目Tavily就很好。效果好配置简单免费额度够用。做国内业务需要中文搜索的可以试试接必应或者自己封装百度。接入Tavily搜索Tavily接入很简单三步搞定。第一步去tavily.com注册账号拿API密钥。注册免费登录以后就能看到密钥。第二步安装SDK。pipinstalltavily-python第三步在代码里用。fromdotenvimportload_dotenvfromlangchain_community.tools.tavily_searchimportTavilySearchResults load_dotenv()# 创建搜索工具search_toolTavilySearchResults(max_results3)把TAVILY_API_KEY配置到.env文件里就行。用的时候直接调用。resultsearch_tool.invoke(2026年AI Agent行业有什么新进展)print(result)返回的结果是一个列表每个元素包含标题、链接、内容摘要。Agent拿到这些信息就能基于搜索结果回答问题了。搜索结果太长怎么办搜索结果经常很长。三五个搜索结果加起来可能好几千字。全部塞给大模型Token消耗多不说还可能把重要信息淹没在噪音里。有几个处理办法。第一个限制结果数量。max_results设小一点2到3条就够了。简单问题用不了太多结果。第二个用Tavily的搜索深度参数。Tavily有basic和advanced两种搜索模式。basic快结果少。advanced慢结果更全面。根据问题复杂度选。第三个让Agent自己筛选。Agent拿到搜索结果以后它会自己判断哪些相关、哪些不相关。不用你手动摘。只要结果不是太离谱Agent能挑出有用的部分。第四个后续可以加Rerank。用重排序模型把最相关的结果排到前面。这个后面RAG篇会专门讲。我自己的经验是大部分场景3条结果就够了。真的需要全面了解一个话题5条也差不多了。再多就是冗余。什么时候该搜索什么时候不该Agent用搜索也不是越多越好。该搜的时候不搜它会瞎编答案。不该搜的时候瞎搜浪费时间浪费钱。理想状态是Agent自己判断。不知道的就搜知道的就直接答。现实是它经常判断不准。有几个办法可以改善。第一个工具描述写清楚。在搜索工具的描述里明确说清楚什么情况该用、什么情况不用。比如当问题涉及实时信息、最新事件、或者你不确定答案的时候使用。第二个系统提示里强调。在Agent的系统提示里加一句不确定的事情一定要搜索确认不要编造。能减少幻觉。第三个用结构化的Agent。比如ReAct模式的Agent它会先思考再行动比直接调用的模式更不容易出错。第四个人工兜底。重要的场景在Agent回答之前加一道人工审核。或者在系统里加事实校验的步骤。实际项目里搜索调用次数直接关系到成本。调用一次几分钱看着不多量大了也是一笔开销。要平衡准确率和成本。搜索工具的进阶用法搜索特定网站有时候你只想搜某个特定网站的内容。比如搜某个技术文档搜公司内部的wiki。可以在搜索关键词里加site前缀限定。比如用site python.org 异步编程这样的格式就只搜python.org站上的内容。Agent不一定会主动这么用。你可以在工具描述里告诉它这个技巧或者封装一个专门的站内搜索工具。图片搜索如果Agent需要找图片可以接图片搜索的API。Tavily也支持图片搜索。图片搜索用在什么场景呢。比如做PPT助手Agent可以自动找配图。做产品助手可以找产品截图。大部分文本类Agent用不上图片搜索。有需要的时候再接。新闻搜索做新闻类、资讯类的Agent可以接专门的新闻搜索API。按时间排序拿最新的资讯。普通搜索也能搜到新闻时效性和准确性不如专门的新闻API。常见的坑用搜索工具有几个坑几乎人人都会踩。第一个搜索词不准。Agent生成的搜索关键词有时候很奇怪。太长或者太模糊搜出来的结果不相关。这个没办法完全避免可以在工具描述里给一些搜索词技巧的提示。第二个搜到的信息不可靠。互联网上的信息真假难辨。Agent可能会把错误信息当成正确答案。重要的事实一定要交叉验证或者找权威来源。第三个搜索结果过时。搜索引擎有缓存最新的信息可能搜不到。特别新的新闻可能要等几个小时才能搜到。第四个隐私问题。用户的问题里可能包含敏感信息直接拿去搜索就泄露了。做企业内部应用的时候一定要注意哪些内容可以搜、哪些不能搜。一个完整的例子最后给一个完整的例子把搜索工具接到Agent里。fromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAIfromlangchain_community.tools.tavily_searchimportTavilySearchResultsfromlangchainimporthubfromlangchain.agentsimportAgentExecutor,create_react_agent load_dotenv()# 初始化模型modelChatOpenAI(modelgpt-3.5-turbo,temperature0)# 创建搜索工具searchTavilySearchResults(max_results3)tools[search]# 创建Agentprompthub.pull(hwchase17/react)agentcreate_react_agent(model,tools,prompt)agent_executorAgentExecutor(agentagent,toolstools,verboseTrue,handle_parsing_errorsTrue,)# 测试resultagent_executor.invoke({input:2026年最火的AI Agent框架有哪些各有什么特点})print(result[output])运行这个代码你就能看到Agent怎么搜索、怎么整理信息、怎么给出答案。把verbose打开看它的思考过程很有意思。它会先判断这个问题需要搜索然后构造搜索词调用搜索工具拿到结果以后阅读最后组织语言回答。搜索是Agent的基础能力。后面讲RAG、讲知识库、讲各种应用几乎都会用到搜索。先把这个工具用熟练。下一篇我们讲数据库操作工具。让Agent用自然语言查数据库这个在企业里特别实用。
返回列表