Chuyển tới nội dung chính

Tìm kiếm & trích xuất trên web

Hermes Agent bao gồm hai công cụ web có thể gọi theo mô hình được hỗ trợ bởi nhiều nhà cung cấp:

  • ** `web_search

** — tìm kiếm trên web và trả về kết quả được xếp hạng

  • ** `web_extract

** — tìm nạp và trích xuất nội dung có thể đọc được từ một hoặc nhiều URL (có hỗ trợ thu thập dữ liệu sâu tích hợp khi chương trình phụ trợ cung cấp nó)

Cả hai đều được cấu hình thông qua một lựa chọn phụ trợ duy nhất. Các nhà cung cấp được chọn thông qua Hermes tools hoặc được đặt trực tiếp trong `config.yaml

. Khả năng thu thập thông tin đệ quy (Firecrawl/Tavily) được hiển thị thông qua web_extract thay vì dưới dạng một công cụ web_crawl riêng biệt.

Phần phụ trợ

| Nhà cung cấp | Env Var | Tìm kiếm | Trích xuất | Thu thập thông tin | Cấp miễn phí | |----------|----------|--------|--------||-------|----------| | Bắn pháo (mặc định) |

FIRECRAWL_API_KEY ` | ✔ | ✔ | ✔ | 500 tín chỉ/tháng | | SearXNG |

SEARXNG_URL ` | ✔ | — | — | ✔ Miễn phí (tự lưu trữ) | | Tìm kiếm dũng cảm (cấp miễn phí) |

BRAVE_SEARCH_API_KEY ` | ✔ | — | — | 2 000 truy vấn/tháng | | DDGS (DuckDuckGo) | — (không có chìa khóa) | ✔ | — | — | ✔ Miễn phí | | Tavily |

TAVILY_API_KEY ` | ✔ | ✔ | ✔ | 1 000 lượt tìm kiếm/tháng | | Exa |

EXA_API_KEY ` | ✔ | ✔ | — | 1 000 lượt tìm kiếm/tháng | | Song song |

PARALLEL_API_KEY ` | ✔ | ✔ | — | Đã trả tiền | | xAI (Grok) |

XAI_API_KEY hoặc Hermes auth login xai-OAuth ` | ✔ | — | — | Trả phí (SuperGrok hoặc mỗi mã thông báo) |

Brave Search, DDGS và xAI chỉ dành cho tìm kiếm — ghép nối bất kỳ chúng nào với Firecrawl/Tavily/Exa/Parallel khi bạn cũng cần `web_extract

. DDGS sử dụng XPROTECTX44XPROTECTX Python package dưới mui xe; nếu nó chưa được cài đặt, hãy chạy pip install ddgs (hoặc để Hermes lười cài đặt nó trong lần sử dụng đầu tiên). xAI chạy công cụ web_search phía máy chủ của Grok trên API phản hồi — kết quả được tạo bởi LLM thay vì được hỗ trợ chỉ mục, vì vậy tiêu đề, mô tả và lựa chọn URL đều là kết quả đầu ra của mô hình (xem tRust-model caveat bên dưới).

Phân chia theo khả năng: bạn có thể sử dụng các nhà cung cấp khác nhau để tìm kiếm và trích xuất một cách độc lập — ví dụ: SearXNG (miễn phí) để tìm kiếm và Firecrawl để trích xuất. Xem Per-capability configuration bên dưới.

Nous Subscribers

Nếu bạn có đăng ký Nous Portal trả phí, tìm kiếm và trích xuất trên web có sẵn thông qua Tool Gateway thông qua Firecrawl được quản lý — không cần khóa API. Các bản cài đặt mới có thể chạy Hermes setup --portal để đăng nhập và bật tất cả các công cụ cổng cùng một lúc; các cài đặt hiện có chỉ có thể lướt web thông qua `Hermes tools

.


Cách

web_extract xử lý các trang dài

Phần phụ trợ trả về đánh dấu trang thô, có thể rất lớn (chuỗi diễn đàn, trang tài liệu, bài viết tin tức có nhận xét được nhúng). Để giữ cho cửa sổ ngữ cảnh của bạn có thể sử dụng được và giảm chi phí, web_extract chạy nội dung được trả về thông qua **mô hình phụ trợ `web_extract

** trước khi giao cho đại lý. Hành vi hoàn toàn phụ thuộc vào kích thước:

Kích thước trang (ký tự)Chuyện gì xảy ra
Dưới 5 000Được trả lại nguyên trạng - không có cuộc gọi LLM, mức giảm giá đầy đủ đến đại lý
5 000 – 500 000Tóm tắt một lần thông qua mô hình phụ trợ
`web_extract

, giới hạn ở mức đầu ra ~5 000 ký tự | | 500 000 – 2 000 000 | Chunked: chia thành các khối 100 k-char, tóm tắt từng khối song song, sau đó tổng hợp bản tóm tắt cuối cùng (~5 000 ký tự) | | Trên 2 000 000 | Từ chối với gợi ý sử dụng web_crawl với hướng dẫn trích xuất tập trung hoặc nguồn cụ thể hơn |

Bản tóm tắt giữ lại các trích dẫn, khối mã và thông tin chính ở định dạng ban đầu — đó là một công cụ nén nội dung chứ không phải một công cụ diễn giải. Nếu quá trình tóm tắt không thành công hoặc hết thời gian, Hermes sẽ quay trở lại ~5 000 ký tự đầu tiên của nội dung thô chứ không phải là một lỗi vô ích.

Mô hình nào thực hiện tóm tắt?

Nhiệm vụ phụ trợ `web_extract

. Theo mặc định ( `auxiliary.web_extract.provider: "auto"

), đây là mô hình trò chuyện chính của bạn — cùng một nhà cung cấp, cùng một mô hình với `Hermes model

. Điều đó tốt cho hầu hết các thiết lập, nhưng trên các mô hình lý luận đắt tiền (Opus, MiniMax M2.7, v.v.), mỗi trích xuất trang dài đều bổ sung thêm chi phí đáng kể.

Để định tuyến các bản tóm tắt trích xuất tới một mô hình nhanh, rẻ bất kể mô hình chính của bạn là gì:


# ~/.Hermes/config.yaml
auxiliary:
web_extract:
provider: OpenRouter
model: Google/Gemini-3-flash-preview
timeout: 360 # seconds; raise if you hit summarization timeouts

`
``Hoặc chọn tương tác:
`Hermes model
` → **Cấu hình các mô hình phụ trợ**
`web_extract

.

Xem [Auxiliary Models](/docs/user-guide/configuration#auxiliary-models) để biết tham chiếu đầy đủ và các mẫu ghi đè theo từng tác vụ.

### Khi việc tóm tắt bị cản trởNếu bạn đặc biệt cần nội dung trang thô, chưa được tóm tắt — ví dụ: bạn đang loại bỏ một trang có cấu trúc trong đó bản tóm tắt LLM sẽ loại bỏ các trường quan trọng — thay vào đó hãy sử dụng
`browser_navigate

+
`browser_snapshot

. Công cụ trình duyệt trả về cây khả năng truy cập trực tiếp mà không cần viết lại mô hình phụ trợ (tuân theo giới hạn ảnh chụp nhanh 8 000 ký tự của riêng nó trên các trang lớn).

---

## Thiết lập

### Thiết lập nhanh qua
`Hermes tools
``Chạy
`Hermes tools

, điều hướng đến **Tìm kiếm & trích xuất trên web** và chọn nhà cung cấp. Trình hướng dẫn sẽ nhắc nhập URL hoặc khóa API được yêu cầu và ghi nó vào config.

``` bash
Hermes tools

`

---

### Firecrawl (mặc định)

Tìm kiếm, trích xuất và thu thập thông tin đầy đủ tính năng. Được đề xuất cho hầu hết người dùng.

`bash

# ~/.Hermes/.env
FIRECRAWL_API_KEY=fc-your-key-here

`
``Nhận key tại [firecrawl.dev](https://firecrawl.dev). Cấp miễn phí bao gồm 500 tín dụng/tháng.

**Firecrawl tự lưu trữ:** Trỏ vào phiên bản của riêng bạn thay vì API đám mây:

``` bash

# ~/.Hermes/.env
FIRECRAWL_API_URL=http://localhost:3002

`
``Khi
`FIRECRAWL_API_URL
` được đặt, khóa API là tùy chọn (tắt xác thực máy chủ bằng
`USE_DB_AUTHENTICATION=false

).

---

### SearXNG (miễn phí, tự lưu trữ)

SearXNG là một công cụ tìm kiếm siêu dữ liệu mã nguồn mở, tôn trọng quyền riêng tư, tổng hợp kết quả từ hơn 70 công cụ tìm kiếm. **Không cần khóa API** — chỉ cần trỏ Hermes vào một phiên bản SearXNG đang chạy.

SearXNG **chỉ dành cho tìm kiếm**
`web_extract
` (bao gồm cả các chế độ thu thập thông tin của nó) yêu cầu một nhà cung cấp giải nén riêng.

#### Tùy chọn A - Tự lưu trữ bằng Docker (được khuyến nghị)

Điều này cung cấp cho bạn một phiên bản riêng tư không có giới hạn tốc độ.

**1. Tạo thư mục làm việc:**

``` bash
mkdir -p ~/searxng/searxng
cd ~/searxng

`
``**2. Viết
`Docker-compose.yml

:**

`YAML

# ~/searxng/Docker-compose.yml
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
ports:
- "8888:8080"
volumes:
- ./searxng:/etc/searxng:rw
environment:
- SEARXNG_BASE_URL=http://localhost:8888/
restart: unless-stopped

`
``**3. Khởi động vùng chứa:**

``` bash
Docker compose up -d

`
``**4. Bật định dạng API JSON:**

SearXNG xuất xưởng với đầu ra JSON bị tắt theo mặc định. Sao chép cấu hình đã tạo và kích hoạt nó:

`bash

# Copy the auto-generated config out of the container
Docker cp searxng:/etc/searxng/settings.yml ~/searxng/searxng/settings.yml

`
``Mở

~/searxng/searxng/settings.yml
` và tìm khối
`formats
` (khoảng dòng 84):

``` yaml

# Before (default — JSON disabled):
formats:
- html

# After (enable JSON for Hermes):
formats:
- html
- JSON

`
``**5. Khởi động lại để áp dụng:**

``` bash
Docker cp ~/searxng/searxng/settings.yml searxng:/etc/searxng/settings.yml
Docker restart searxng

`
``**6. Xác minh nó hoạt động:**

`bash
curl -s "http://localhost:8888/search?q=test&format=JSON" | Python3 -c \
"import sys,JSON; d=JSON.load(sys.stdin); print(f'\{len(d[\"results\"])} results')"

`
``Bạn sẽ thấy một cái gì đó như
`10 results

. Nếu bạn nhận được
`403 Forbidden

, định dạng JSON vẫn bị tắt — hãy kiểm tra lại bước 4.

**7. Cấu hình Hermes:**

`bash

# ~/.Hermes/.env
SEARXNG_URL=http://localhost:8888

`
``Sau đó chọn SearXNG làm phần phụ trợ tìm kiếm trong

~/.Hermes/config.yaml

:

``` yaml
web:
search_backend: "searxng"

`
``Hoặc đặt qua
`Hermes tools
` → Tìm kiếm & trích xuất trên web → SearXNG.

---

#### Tùy chọn B - Sử dụng phiên bản công khai

Các phiên bản SearXNG công khai được liệt kê tại [searx.space](https://searx.space/). Lọc theo các phiên bản đã **bật định dạng JSON** (hiển thị trong bảng).

`bash

# ~/.Hermes/.env
SEARXNG_URL=https://searx.example.com

`

:::caution[Public instances]
Các phiên bản công khai có giới hạn tốc độ, thời gian hoạt động thay đổi và có thể tắt định dạng JSON bất cứ lúc nào. Để sử dụng trong sản xuất, việc tự lưu trữ được khuyến khích mạnh mẽ.
:::

---

#### Ghép nối SearXNG với nhà cung cấp giải nén

SearXNG xử lý tìm kiếm; bạn cần một nhà cung cấp riêng cho
`web_extract
` (bao gồm mọi chế độ thu thập dữ liệu sâu). Sử dụng các phím theo khả năng:

``` yaml

# ~/.Hermes/config.yaml
web:
search_backend: "searxng"
extract_backend: "firecrawl" # or tavily, exa, parallel

`
``Với cấu hình này, Hermes sử dụng SearXNG cho tất cả truy vấn tìm kiếm và Firecrawl để trích xuất URL - kết hợp tìm kiếm miễn phí với trích xuất chất lượng cao.

---

### Tavily

Tìm kiếm, trích xuất và thu thập thông tin được tối ưu hóa bằng AI với mức miễn phí hào phóng.

``` bash

# ~/.Hermes/.env
TAVILY_API_KEY=tvly-your-key-here

`
``Nhận key tại [app.tavily.com](https://app.tavily.com/home). Bậc miễn phí bao gồm 1.000 lượt tìm kiếm/tháng.

---

###Exa

Tìm kiếm thần kinh với sự hiểu biết ngữ nghĩa. Tốt cho nghiên cứu và tìm kiếm nội dung liên quan đến khái niệm.

``` bash

# ~/.Hermes/.env
EXA_API_KEY=your-exa-key-here

`
``Nhận key tại [exa.ai](https://exa.ai). Bậc miễn phí bao gồm 1.000 lượt tìm kiếm/tháng.

---

### Song song

Tìm kiếm và trích xuất dựa trên AI với khả năng nghiên cứu sâu.

``` bash

# ~/.Hermes/.env
PARALLEL_API_KEY=your-parallel-key-here

`
``Nhận quyền truy cập tại [parallel.ai](https://parallel.ai).

---

### xAI (Grok) {#xai-grok}

Định tuyến
`web_search
` thông qua [web_search tool](https://docs.x.ai/developers/tools/web-search) phía máy chủ của Grok trên API phản hồi. Grok thực hiện tìm kiếm thực tế và trả về các kết quả hàng đầu dưới dạng JSON có cấu trúc.

Hoạt động với đường dẫn thông tin xác thực - không có biến env mới, không có trình hướng dẫn thiết lập mới:

``` bash

# ~/.Hermes/.env (env-var path)
XAI_API_KEY=sk-xai-your-key-here

`
``hoặc dành cho người đăng ký SuperGrok:

``` bash
Hermes auth login xai-OAuth

`
``Sau đó chọn xAI làm phụ trợ tìm kiếm:

`YAML

# ~/.Hermes/config.yaml
web:
backend: "xai"

`
``**Núm tùy chọn:**

``` yaml
web:
backend: "xai"
xai:
model: grok-4.3 # reasoning model required by web_search (default)
allowed_domains: # optional, max 5 — mutex with excluded_domains

- arxiv.org
excluded_domains: # optional, max 5
- example-spam.com
timeout: 90 # seconds (default)

`
``**Chỉ tìm kiếm** — ghép nối với Firecrawl / Tavily / Exa / Parallel nếu bạn cũng cần
`web_extract

. Trên 401, nhà cung cấp thực hiện một lần làm mới và thử lại mã thông báo OAuth bắt buộc (bao gồm việc thu hồi giữa cửa sổ và các mã thông báo mờ mà kiểm tra thời hạn chủ động không thể giải mã); thông tin đăng nhập env-var bỏ qua việc thử lại.:::caution TRust model
Không giống như các nhà cung cấp được hỗ trợ chỉ mục (Brave, Tavily, Exa) trả về kết quả nguyên văn của công cụ tìm kiếm, xAI là một LLM chọn URL nào sẽ hiển thị và tự viết tiêu đề cũng như mô tả. *Nội dung* của truy vấn ảnh hưởng đến kết quả đầu ra, do đó, một truy vấn được tạo ra có mục đích độc hại (ví dụ: được đưa vào thông qua đầu vào ngược dòng không đáng tin cậy mà tác nhân đã chọn) về nguyên tắc có thể khiến Grok phát ra các URL do kẻ tấn công chọn. Xử lý các URL được trả về giống như cách bạn xử lý bất kỳ liên kết nào do mô hình tạo — xác thực trước khi tìm nạp, đặc biệt nếu truy vấn đến từ đầu vào không đáng tin cậy.
:::

---

## Cấu hình

### Phần phụ trợ đơn

Đặt một nhà cung cấp cho tất cả các khả năng của web:

``` yaml

# ~/.Hermes/config.yaml
web:
backend: "searxng" # firecrawl | searxng | brave-free | ddgs | tavily | exa | parallel | xai

`

### Cấu hình theo khả năng

Sử dụng các nhà cung cấp khác nhau để tìm kiếm và trích xuất. Điều này cho phép bạn kết hợp tìm kiếm miễn phí (SearXNG) với nhà cung cấp dịch vụ trích xuất có trả phí hoặc ngược lại:

``` yaml

# ~/.Hermes/config.yaml
web:
search_backend: "searxng" # used by web_search
extract_backend: "firecrawl" # used by web_extract (and its deep-crawl modes)

`
``Khi các khóa theo khả năng trống, cả hai đều thuộc
`web.backend

. Khi
`web.backend
` cũng trống, phần phụ trợ sẽ tự động được phát hiện từ bất kỳ khóa/URL API nào có mặt.

**Thứ tự ưu tiên (theo năng lực):**
1.
`web.search_backend
` /
`web.extract_backend
` (rõ ràng theo khả năng)
2.
`web.backend
` (dự phòng được chia sẻ)
3. Tự động phát hiện từ các biến môi trường

### Tự động phát hiện

Nếu không có phần phụ trợ nào được định cấu hình rõ ràng, Hermes sẽ chọn phần phụ trợ có sẵn đầu tiên dựa trên thông tin xác thực được đặt:

| Giấy chứng nhận hiện tại | Phần phụ trợ được chọn tự động |
|-------------------||--------------|
|
`FIRECRAWL_API_KEY
` hoặc
`FIRECRAWL_API_URL
` | pháo |
|
`PARALLEL_API_KEY
` | song song |
|
`TAVILY_API_KEY
` | khéo léo |
|
`EXA_API_KEY
` | exa |
|
`SEARXNG_URL
` | tìm kiếm |

xAI Web Search **không** nằm trong chuỗi phát hiện tự động — việc cài đặt
`XAI_API_KEY
` (hoặc đăng nhập qua xAI Grok OAuth) không tự động định tuyến lưu lượng truy cập web thông qua xAI, vì những thông tin xác thực đó cũng được sử dụng cho gen suy luận / TTS / hình ảnh và người dùng có thể muốn một chương trình phụ trợ khác cho web. Đăng ký rõ ràng với
`web.backend: "xai"

.

---

## Xác minh thiết lập của bạn

Chạy
`Hermes setup
` để xem phần phụ trợ web nào được phát hiện:

`
✅ Web Search & Extract (searxng)

`
``Hoặc kiểm tra qua CLI:

``` bash

# Activate the venv and run the web tools module directly
source ~/.Hermes/Hermes-agent/.venv/bin/activate
Python -m tools.web_tools

`
``Điều này in phần phụ trợ đang hoạt động và trạng thái của nó:

`
✅ Web backend: searxng
Using SearXNG (search only): http://localhost:8888

`

---

## Khắc phục sự cố

###
`web_search
` trả về

\{"success": false}

- Kiểm tra
`SEARXNG_URL
` có thể truy cập được:
`curl -s "http://localhost:8888/search?q=test&format=JSON"

- Nếu bạn nhận được HTTP 403, định dạng JSON bị tắt — hãy thêm
``` json
` vào danh sách
`formats
` trong
`settings.yml
` và khởi động lại

- Nếu gặp lỗi kết nối thì có thể container chưa chạy:
`Docker ps | grep searxng

###
`web_extract
` cho biết "phụ trợ chỉ tìm kiếm"

SearXNG không thể trích xuất nội dung URL. Đặt
`web.extract_backend
` thành nhà cung cấp hỗ trợ trích xuất:

``` yaml
web:
search_backend: "searxng"
extract_backend: "firecrawl" # or tavily / exa / parallel

`

### SearXNG trả về 0 kết quả

Một số trường hợp công khai vô hiệu hóa một số công cụ hoặc danh mục tìm kiếm nhất định. Hãy thử:

- Một truy vấn khác
- Một phiên bản công khai khác với [searx.space](https://searx.space/)
- Tự lưu trữ phiên bản của riêng bạn để có kết quả đáng tin cậy

### Tỷ lệ bị giới hạn trên phiên bản công khai

Chuyển sang phiên bản tự lưu trữ (xem [Option A](#option-a--self-host-with-Docker-recommended) ở trên). Với Docker, phiên bản của riêng bạn không có giới hạn tốc độ.

###
`web_extract
` trả về nội dung bị cắt bớt kèm theo ghi chú "đã hết thời gian tóm tắt"

Mô hình phụ trợ chưa hoàn thành việc tóm tắt trong thời gian chờ đã định cấu hình. Hoặc:
- Tăng
`auxiliary.web_extract.timeout
` trong
`config.yaml
` (mặc định là 360 giây khi cài đặt mới, 30 giây nếu thiếu khóa)
- Chuyển tác vụ phụ trợ
`web_extract
` sang kiểu nhanh hơn (ví dụ:
`Google/Gemini-3-flash-preview

) - xem [How XPROTECTX105XPROTECTX handles long pages](#how-web_extract-handles-long-pages)
- Đối với các trang mà công cụ tóm tắt không phù hợp, hãy sử dụng
`browser_navigate
` thay thế

---

## Kỹ năng tùy chọn:
`searxng-search
``Đối với các đại lý cần sử dụng trực tiếp SearXNG qua
`curl
` (ví dụ: làm phương án dự phòng khi bộ công cụ web không khả dụng), hãy cài đặt kỹ năng tùy chọn
`searxng-search

:

``` bash
Hermes skills install official/research/searxng-search

`
``Điều này bổ sung một kỹ năng dạy cho tổng đài viên cách:

- Gọi API JSON của SearXNG thông qua
`curl
` hoặc Python
- Lọc theo danh mục (
`general

,
`news

,
`science

, v.v.)
- Xử lý các trường hợp phân trang và lỗi
- Dự phòng một cách duyên dáng khi SearXNG không thể truy cập được