Skip to main content
Nimble 的搜索 API 通过使用无头浏览器浏览实时网络来提供实时网络搜索,而不是查询预构建的索引。该工具处理 JavaScript 渲染、动态内容和复杂的导航流程,使其适用于需要访问当前网络数据(包括分页、过滤器和客户端渲染背后的内容)的智能体工作流。

概述

集成详情

可序列化JS 支持包最新版本
NimbleSearchToollangchain-nimblePyPI - Version

工具特性

返回工件原生异步返回数据定价
标题、URL、内容(markdown/plain_text/HTML)、元数据提供免费试用
主要特性:
  • 快速模式与深度模式深度模式(默认)用于通过 JavaScript 渲染进行完整内容提取,或快速模式用于仅获取快速 SERP 结果
  • AI 生成的摘要:在原始搜索结果旁提供可选的简洁答案
  • 域名和日期过滤:按特定域名或日期范围过滤以获得精确结果
  • 基于主题的路由:针对通用、新闻或基于位置的查询进行优化路由
  • 灵活的输出格式:plain_text、markdown(默认)或 simplified_html
  • 生产就绪:原生异步支持、自动重试、连接池

设置

集成位于 langchain-nimble 包中。
pip install -U langchain-nimble

凭证

您需要一个 Nimble API 密钥才能使用此工具。在 Nimble 注册以获取您的 API 密钥并访问其免费试用。
import getpass
import os

if not os.environ.get("NIMBLE_API_KEY"):
    os.environ["NIMBLE_API_KEY"] = getpass.getpass("Nimble API key:\n")

实例化

现在我们可以实例化该工具:
from langchain_nimble import NimbleSearchTool

# 基本用法 - 使用环境变量获取 API 密钥
tool = NimbleSearchTool()

在智能体中使用

我们可以将 Nimble 搜索工具与智能体结合使用,为其提供动态网络搜索能力。以下是使用 LangGraph 的完整示例:
import os
import getpass

from langchain_nimble import NimbleSearchTool
from langchain.agents import create_agent
from langchain.chat_models import init_chat_model

if not os.environ.get("OPENAI_API_KEY"):
    os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API key:\n")
if not os.environ.get("NIMBLE_API_KEY"):
    os.environ["NIMBLE_API_KEY"] = getpass.getpass("Nimble API key:\n")

# 使用深度搜索初始化 Nimble 搜索工具以获取全面结果
nimble_tool = NimbleSearchTool(
    k=5,
    deep_search=True,
    parsing_type="markdown"
)

# 使用该工具创建智能体
model = init_chat_model(model="gpt-4o", model_provider="openai", temperature=0)
agent = create_agent(model, [nimble_tool])

# 向智能体提出一个需要网络搜索的问题
user_input = "量子计算的最新进展是什么?仅包含来自学术机构和知名科技出版物的来源。"

for step in agent.stream(
    {"messages": user_input},
    stream_mode="values",
):
    step["messages"][-1].pretty_print()
================================ Human Message =================================

量子计算的最新进展是什么?仅包含来自学术机构和知名科技出版物的来源。

================================== Ai Message ==================================
Tool Calls:
  nimble_search (call_abc123)
 Call ID: call_abc123
  Args:
    query: quantum computing latest developments 2025
    deep_search: True
    include_domains: ['mit.edu', 'stanford.edu', 'nature.com', 'science.org', 'ieee.org']
    k: 5

================================= Tool Message =================================
Name: nimble_search

[{"title": "量子纠错突破 | MIT News", "url": "https://news.mit.edu/quantum-error-correction", "content": "# 量子纠错突破\n\nMIT 的研究人员在量子纠错方面取得了重大里程碑...\n\n## 主要发现\n- 新的纠错码减少了计算开销\n- 为更大规模的量子系统提高了可扩展性...", "rank": 1}, {"title": "量子计算进展 | Nature", "url": "https://www.nature.com/articles/quantum-2024"...

================================== Ai Message ==================================

根据最近的学术和技术来源,以下是量子计算的最新进展:

**纠错:**
- MIT 研究人员在量子纠错方面取得了突破
- 新的纠错码显著减少了计算开销

**硬件进展:**
- 改进了量子比特的相干时间和稳定性
- 向容错量子计算迈进...
[智能体继续提供全面总结]

高级配置

该工具支持针对不同用例的广泛配置:
参数类型默认值描述
num_resultsint10返回的最大结果数(1-20)
deep_searchboolTrue深度模式(默认)用于完整内容提取,或快速模式(False)仅获取 SERP 结果
topicstr”general”针对特定内容类型优化搜索:“general”、“news” 或 “location”
include_answerboolFalse在搜索结果旁生成 AI 驱动的摘要答案
include_domainslist[str]None白名单特定域名(例如 [“wikipedia.org”, “.edu”])
exclude_domainslist[str]None黑名单特定域名以进行过滤
start_datestrNone过滤此日期之后的结果(YYYY-MM-DD 或 YYYY)
end_datestrNone过滤此日期之前的结果(YYYY-MM-DD 或 YYYY)
parsing_typestr”markdown”输出格式:“plain_text”、“markdown” 或 “simplified_html”
localestr”en”搜索区域设置(例如 “en-US”)
countrystr”US”用于本地化结果的国家/地区代码(例如 “US”)
api_keystr环境变量Nimble API 密钥(默认为 NIMBLE_API_KEY 环境变量)

最佳实践

快速模式与深度模式

  • 深度模式 (deep_search=True,默认):
    • 从网页提取完整内容
    • 适用于详细分析、RAG 应用和全面研究
    • 处理 JavaScript 渲染和动态内容
  • 快速模式 (deep_search=False):
    • 仅获取带有标题和摘要的快速 SERP 结果
    • 针对速度至关重要的高容量查询进行优化
    • 每次查询成本更低

何时使用 include_answer

  • 当您希望在原始搜索结果之外获得简洁的 AI 生成摘要时,启用 include_answer=True
  • 无需处理所有原始内容即可快速获取洞察

过滤技巧

  • 域名过滤:对于学术研究或需要可信来源时使用 include_domains。使用 exclude_domains 过滤不需要的内容类型
  • 日期过滤:结合使用 start_dateend_date 进行时间敏感查询或获取最新新闻
  • 主题路由:使用 topic 参数针对通用网络内容、新闻文章或基于位置的信息优化搜索

性能优化

  • 选择正确的模式:对于速度至关重要的高容量查询使用快速模式 (deep_search=False);对于全面内容提取使用深度模式(默认)
  • 并发运行多个搜索时使用异步操作 (ainvoke)
  • num_results 调整为所需的最小结果数以减少响应时间
  • 利用域名过滤专注于高质量来源并减少噪音

API 参考

有关所有 NimbleSearchRetriever 功能和配置的详细文档,请访问 Nimble API 文档