> ## Documentation Index
> Fetch the complete documentation index at: https://cndoc-langchain.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Nimble 搜索

> [Nimble 的搜索 API](https://docs.nimbleway.com/nimble-sdk/search-api) 通过使用无头浏览器浏览实时网络来提供实时网络搜索，而不是查询预构建的索引。该工具处理 JavaScript 渲染、动态内容和复杂的导航流程，使其适用于需要访问当前网络数据（包括分页、过滤器和客户端渲染背后的内容）的智能体工作流。

## 概述

### 集成详情

| 类                                                                   | 包                                                                | 可序列化 | JS 支持 |                                              包最新版本                                             |
| :------------------------------------------------------------------ | :--------------------------------------------------------------- | :--: | :---: | :--------------------------------------------------------------------------------------------: |
| [`NimbleSearchTool`](https://github.com/Nimbleway/langchain-nimble) | [`langchain-nimble`](https://pypi.org/project/langchain-nimble/) |   ❌  |   ❌   | ![PyPI - Version](https://img.shields.io/pypi/v/langchain-nimble?style=flat-square\&label=%20) |

### 工具特性

| 返回工件 | 原生异步 |                   返回数据                   |                  定价                  |
| :--: | :--: | :--------------------------------------: | :----------------------------------: |
|   ❌  |   ✅  | 标题、URL、内容（markdown/plain\_text/HTML）、元数据 | [提供免费试用](https://www.nimbleway.com/) |

**主要特性：**

* **快速模式与深度模式**：**深度模式**（默认）用于通过 JavaScript 渲染进行完整内容提取，或**快速模式**用于仅获取快速 SERP 结果
* **AI 生成的摘要**：在原始搜索结果旁提供可选的简洁答案
* **域名和日期过滤**：按特定域名或日期范围过滤以获得精确结果
* **基于主题的路由**：针对通用、新闻或基于位置的查询进行优化路由
* **灵活的输出格式**：plain\_text、markdown（默认）或 simplified\_html
* **生产就绪**：原生异步支持、自动重试、连接池

## 设置

集成位于 `langchain-nimble` 包中。

<CodeGroup>
  ```bash pip theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  pip install -U langchain-nimble
  ```

  ```bash uv theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  uv add langchain-nimble
  ```
</CodeGroup>

### 凭证

您需要一个 Nimble API 密钥才能使用此工具。在 [Nimble](https://www.nimbleway.com/) 注册以获取您的 API 密钥并访问其免费试用。

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
import getpass
import os

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

## 实例化

现在我们可以实例化该工具：

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
from langchain_nimble import NimbleSearchTool

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

## 在智能体中使用

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

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
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()
```

```output theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
================================ 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_results`     | int        | 10         | 返回的最大结果数（1-20）                                     |
| `deep_search`     | bool       | True       | **深度模式**（默认）用于完整内容提取，或**快速模式**（False）仅获取 SERP 结果   |
| `topic`           | str        | "general"  | 针对特定内容类型优化搜索："general"、"news" 或 "location"         |
| `include_answer`  | bool       | False      | 在搜索结果旁生成 AI 驱动的摘要答案                                |
| `include_domains` | list\[str] | None       | 白名单特定域名（例如 \["wikipedia.org", ".edu"]）             |
| `exclude_domains` | list\[str] | None       | 黑名单特定域名以进行过滤                                       |
| `start_date`      | str        | None       | 过滤此日期之后的结果（YYYY-MM-DD 或 YYYY）                      |
| `end_date`        | str        | None       | 过滤此日期之前的结果（YYYY-MM-DD 或 YYYY）                      |
| `parsing_type`    | str        | "markdown" | 输出格式："plain\_text"、"markdown" 或 "simplified\_html" |
| `locale`          | str        | "en"       | 搜索区域设置（例如 "en-US"）                                 |
| `country`         | str        | "US"       | 用于本地化结果的国家/地区代码（例如 "US"）                           |
| `api_key`         | str        | 环境变量       | 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_date` 和 `end_date` 进行时间敏感查询或获取最新新闻
* **主题路由**：使用 `topic` 参数针对通用网络内容、新闻文章或基于位置的信息优化搜索

### 性能优化

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

## API 参考

有关所有 `NimbleSearchRetriever` 功能和配置的详细文档，请访问 [Nimble API 文档](https://docs.nimbleway.com/nimble-sdk/search-api)。

***

<div className="source-links">
  <Callout icon="terminal-2">
    [将这些文档](/use-these-docs)通过 MCP 连接到 Claude、VSCode 等，以获取实时答案。
  </Callout>

  <Callout icon="edit">
    [在 GitHub 上编辑此页面](https://github.com/langchain-ai/docs/edit/main/src/oss/python/integrations/tools/nimble_search.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
