Skip to main content

Công cụ web

OpenClaw cung cấp hai công cụ web nhẹ:
  • web_search — Tìm kiếm trên web bằng Brave Search API, Firecrawl Search, Gemini với Google Search grounding, Grok, Kimi, Perplexity Search API, hoặc Tavily Search API.
  • web_fetch — Thực hiện HTTP fetch và trích xuất nội dung dễ đọc (HTML → markdown/text).
Đây không phải là tự động hóa trình duyệt. Đối với các trang web nặng JavaScript hoặc cần đăng nhập, hãy sử dụng Công cụ trình duyệt.

Cách hoạt động

  • web_search gọi nhà cung cấp đã cấu hình và trả về kết quả.
  • Kết quả được lưu trong bộ nhớ cache theo truy vấn trong 15 phút (có thể cấu hình).
  • web_fetch thực hiện một HTTP GET đơn giản và trích xuất nội dung dễ đọc (HTML → markdown/text). Nó không thực thi JavaScript.
  • web_fetch được bật mặc định (trừ khi bị tắt rõ ràng).
  • Plugin Firecrawl đi kèm cũng thêm firecrawl_searchfirecrawl_scrape khi được bật.
  • Plugin Tavily đi kèm cũng thêm tavily_searchtavily_extract khi được bật.
Xem Cài đặt Brave Search, Cài đặt Perplexity Search, và Cài đặt Tavily Search để biết chi tiết cụ thể của từng nhà cung cấp.

Chọn nhà cung cấp tìm kiếm

Tự động phát hiện

Bảng trên được sắp xếp theo thứ tự chữ cái. Nếu không có provider nào được thiết lập rõ ràng, chế độ tự động phát hiện sẽ kiểm tra các nhà cung cấp theo thứ tự sau:
  1. Brave — biến môi trường BRAVE_API_KEY hoặc plugins.entries.brave.config.webSearch.apiKey
  2. Gemini — biến môi trường GEMINI_API_KEY hoặc plugins.entries.google.config.webSearch.apiKey
  3. Grok — biến môi trường XAI_API_KEY hoặc plugins.entries.xai.config.webSearch.apiKey
  4. Kimi — biến môi trường KIMI_API_KEY / MOONSHOT_API_KEY hoặc plugins.entries.moonshot.config.webSearch.apiKey
  5. Perplexity — biến môi trường PERPLEXITY_API_KEY, OPENROUTER_API_KEY, hoặc plugins.entries.perplexity.config.webSearch.apiKey
  6. Firecrawl — biến môi trường FIRECRAWL_API_KEY hoặc plugins.entries.firecrawl.config.webSearch.apiKey
  7. Tavily — biến môi trường TAVILY_API_KEY hoặc plugins.entries.tavily.config.webSearch.apiKey
Nếu không tìm thấy khóa nào, hệ thống sẽ quay lại Brave (bạn sẽ nhận được thông báo lỗi thiếu khóa yêu cầu cấu hình). Hành vi Runtime SecretRef:
  • SecretRefs của công cụ web được giải quyết đồng thời khi khởi động/tải lại gateway.
  • Trong chế độ tự động phát hiện, OpenClaw chỉ giải quyết khóa của nhà cung cấp đã chọn. SecretRefs của nhà cung cấp không được chọn vẫn không hoạt động cho đến khi được chọn.
  • Nếu SecretRef của nhà cung cấp đã chọn không được giải quyết và không có fallback env của nhà cung cấp, khởi động/tải lại sẽ thất bại nhanh chóng.

Cài đặt tìm kiếm web

Sử dụng openclaw configure --section web để thiết lập API key và chọn nhà cung cấp.
  1. Tạo tài khoản Brave Search API tại brave.com/search/api
  2. Trong dashboard, chọn gói Search và tạo một API key.
  3. Chạy openclaw configure --section web để lưu khóa vào cấu hình, hoặc đặt BRAVE_API_KEY trong môi trường của bạn.
Mỗi gói Brave bao gồm 5 USD/tháng tín dụng miễn phí (tự động gia hạn). Gói Search có giá 5 USD cho mỗi 1.000 yêu cầu, vì vậy tín dụng bao gồm 1.000 truy vấn/tháng. Đặt giới hạn sử dụng trong dashboard Brave để tránh các khoản phí không mong muốn. Xem cổng API Brave để biết các gói và giá hiện tại.
  1. Tạo tài khoản Perplexity tại perplexity.ai/settings/api
  2. Tạo một API key trong dashboard
  3. Chạy openclaw configure --section web để lưu khóa vào cấu hình, hoặc đặt PERPLEXITY_API_KEY trong môi trường của bạn.
Để tương thích với Sonar/OpenRouter cũ, đặt OPENROUTER_API_KEY thay thế, hoặc cấu hình plugins.entries.perplexity.config.webSearch.apiKey với khóa sk-or-.... Đặt plugins.entries.perplexity.config.webSearch.baseUrl hoặc model cũng sẽ đưa Perplexity trở lại đường dẫn tương thích chat-completions. Cấu hình tìm kiếm web cụ thể của nhà cung cấp hiện nằm dưới plugins.entries.<plugin>.config.webSearch.*. Đường dẫn nhà cung cấp tools.web.search.* cũ vẫn tải qua một lớp tương thích trong một phiên bản, nhưng không nên sử dụng trong các cấu hình mới. Xem Tài liệu API Perplexity Search để biết thêm chi tiết.

Nơi lưu trữ khóa

Qua cấu hình: chạy openclaw configure --section web. Nó lưu khóa dưới đường dẫn cấu hình cụ thể của nhà cung cấp:
  • Brave: plugins.entries.brave.config.webSearch.apiKey
  • Firecrawl: plugins.entries.firecrawl.config.webSearch.apiKey
  • Gemini: plugins.entries.google.config.webSearch.apiKey
  • Grok: plugins.entries.xai.config.webSearch.apiKey
  • Kimi: plugins.entries.moonshot.config.webSearch.apiKey
  • Perplexity: plugins.entries.perplexity.config.webSearch.apiKey
  • Tavily: plugins.entries.tavily.config.webSearch.apiKey
Tất cả các trường này cũng hỗ trợ đối tượng SecretRef. Qua môi trường: đặt biến môi trường của nhà cung cấp trong môi trường của quá trình Gateway:
  • Brave: BRAVE_API_KEY
  • Firecrawl: FIRECRAWL_API_KEY
  • Gemini: GEMINI_API_KEY
  • Grok: XAI_API_KEY
  • Kimi: KIMI_API_KEY hoặc MOONSHOT_API_KEY
  • Perplexity: PERPLEXITY_API_KEY hoặc OPENROUTER_API_KEY
  • Tavily: TAVILY_API_KEY
Đối với cài đặt gateway, đặt chúng trong ~/.openclaw/.env (hoặc môi trường dịch vụ của bạn). Xem Biến môi trường.

Ví dụ cấu hình

Brave Search:
Firecrawl Search:
Khi bạn chọn Firecrawl trong quá trình onboarding hoặc openclaw configure --section web, OpenClaw tự động kích hoạt plugin Firecrawl đi kèm để web_search, firecrawl_search, và firecrawl_scrape đều có sẵn. Tavily Search:
Khi bạn chọn Tavily trong quá trình onboarding hoặc openclaw configure --section web, OpenClaw tự động kích hoạt plugin Tavily đi kèm để web_search, tavily_search, và tavily_extract đều có sẵn. Chế độ Brave LLM Context:
llm-context trả về các đoạn trang được trích xuất để làm nền tảng thay vì các đoạn trích tiêu chuẩn của Brave. Trong chế độ này, countrylanguage / search_lang vẫn hoạt động, nhưng ui_lang, freshness, date_after, và date_before bị từ chối. Perplexity Search:
Perplexity qua OpenRouter / Tương thích Sonar:

Sử dụng Gemini (Google Search grounding)

Các mô hình Gemini hỗ trợ Google Search grounding tích hợp sẵn, trả về các câu trả lời tổng hợp AI được hỗ trợ bởi kết quả tìm kiếm Google trực tiếp với trích dẫn.

Lấy API key Gemini

  1. Truy cập Google AI Studio
  2. Tạo một API key
  3. Đặt GEMINI_API_KEY trong môi trường Gateway, hoặc cấu hình plugins.entries.google.config.webSearch.apiKey

Cài đặt tìm kiếm Gemini

Thay thế qua môi trường: đặt GEMINI_API_KEY trong môi trường Gateway. Đối với cài đặt gateway, đặt nó trong ~/.openclaw/.env.

Ghi chú

  • URL trích dẫn từ Gemini grounding được tự động giải quyết từ URL chuyển hướng của Google sang URL trực tiếp.
  • Giải quyết chuyển hướng sử dụng đường dẫn bảo vệ SSRF (HEAD + kiểm tra chuyển hướng + xác thực http/https) trước khi trả về URL trích dẫn cuối cùng.
  • Giải quyết chuyển hướng sử dụng các mặc định SSRF nghiêm ngặt, vì vậy các chuyển hướng đến các mục tiêu riêng tư/nội bộ bị chặn.
  • Mô hình mặc định (gemini-2.5-flash) nhanh và tiết kiệm chi phí. Bất kỳ mô hình Gemini nào hỗ trợ grounding đều có thể được sử dụng.
Tìm kiếm trên web bằng nhà cung cấp đã cấu hình.

Yêu cầu

  • tools.web.search.enabled không được là false (mặc định: bật)
  • API key cho nhà cung cấp đã chọn:
    • Brave: BRAVE_API_KEY hoặc plugins.entries.brave.config.webSearch.apiKey
    • Firecrawl: FIRECRAWL_API_KEY hoặc plugins.entries.firecrawl.config.webSearch.apiKey
    • Gemini: GEMINI_API_KEY hoặc plugins.entries.google.config.webSearch.apiKey
    • Grok: XAI_API_KEY hoặc plugins.entries.xai.config.webSearch.apiKey
    • Kimi: KIMI_API_KEY, MOONSHOT_API_KEY, hoặc plugins.entries.moonshot.config.webSearch.apiKey
    • Perplexity: PERPLEXITY_API_KEY, OPENROUTER_API_KEY, hoặc plugins.entries.perplexity.config.webSearch.apiKey
    • Tavily: TAVILY_API_KEY hoặc plugins.entries.tavily.config.webSearch.apiKey
  • Tất cả các trường khóa nhà cung cấp trên đều hỗ trợ đối tượng SecretRef.

Cấu hình

Tham số công cụ

Các tham số phụ thuộc vào nhà cung cấp đã chọn. Đường dẫn tương thích OpenRouter / Sonar của Perplexity chỉ hỗ trợ queryfreshness. Nếu bạn đặt plugins.entries.perplexity.config.webSearch.baseUrl / model, sử dụng OPENROUTER_API_KEY, hoặc cấu hình một khóa sk-or-... dưới plugins.entries.perplexity.config.webSearch.apiKey, các bộ lọc chỉ dành cho API Tìm kiếm sẽ trả về lỗi rõ ràng. Firecrawl web_search hỗ trợ querycount. Đối với các điều khiển cụ thể của Firecrawl như sources, categories, trích xuất kết quả, hoặc thời gian chờ trích xuất, sử dụng firecrawl_search từ plugin Firecrawl đi kèm. Tavily web_search hỗ trợ querycount (tối đa 20 kết quả). Đối với các điều khiển cụ thể của Tavily như search_depth, topic, include_answer, hoặc bộ lọc tên miền, sử dụng tavily_search từ plugin Tavily đi kèm. Để trích xuất nội dung URL, sử dụng tavily_extract. Xem Tavily để biết chi tiết. Ví dụ:
Khi chế độ Brave llm-context được bật, ui_lang, freshness, date_after, và date_before không được hỗ trợ. Sử dụng chế độ Brave web cho các bộ lọc đó.

web_fetch

Lấy một URL và trích xuất nội dung dễ đọc.

Yêu cầu web_fetch

  • tools.web.fetch.enabled không được là false (mặc định: bật)
  • Tùy chọn Firecrawl fallback: đặt tools.web.fetch.firecrawl.apiKey hoặc FIRECRAWL_API_KEY.
  • tools.web.fetch.firecrawl.apiKey hỗ trợ đối tượng SecretRef.

Cấu hình web_fetch

Tham số công cụ web_fetch

  • url (bắt buộc, chỉ http/https)
  • extractMode (markdown | text)
  • maxChars (cắt ngắn các trang dài)
Ghi chú:
  • web_fetch sử dụng Readability (trích xuất nội dung chính) trước, sau đó là Firecrawl (nếu được cấu hình). Nếu cả hai đều thất bại, công cụ sẽ trả về lỗi.
  • Yêu cầu Firecrawl sử dụng chế độ tránh bot và lưu trữ kết quả trong bộ nhớ cache theo mặc định.
  • SecretRefs của Firecrawl chỉ được giải quyết khi Firecrawl hoạt động (tools.web.fetch.enabled !== falsetools.web.fetch.firecrawl.enabled !== false).
  • Nếu Firecrawl hoạt động và SecretRef của nó không được giải quyết với không có fallback FIRECRAWL_API_KEY, khởi động/tải lại sẽ thất bại nhanh chóng.
  • web_fetch gửi một User-Agent giống Chrome và Accept-Language theo mặc định; ghi đè userAgent nếu cần.
  • web_fetch chặn các tên miền riêng tư/nội bộ và kiểm tra lại các chuyển hướng (giới hạn với maxRedirects).
  • maxChars bị giới hạn bởi tools.web.fetch.maxCharsCap.
  • web_fetch giới hạn kích thước thân phản hồi tải xuống đến tools.web.fetch.maxResponseBytes trước khi phân tích; các phản hồi quá lớn bị cắt ngắn và bao gồm một cảnh báo.
  • web_fetch là trích xuất nỗ lực tốt nhất; một số trang web sẽ cần công cụ trình duyệt.
  • Xem Firecrawl để biết cài đặt khóa và chi tiết dịch vụ.
  • Các phản hồi được lưu trữ trong bộ nhớ cache (mặc định 15 phút) để giảm các lần fetch lặp lại.
  • Nếu bạn sử dụng hồ sơ công cụ/danh sách cho phép, thêm web_search/web_fetch hoặc group:web.
  • Nếu thiếu API key, web_search trả về một gợi ý thiết lập ngắn với liên kết tài liệu.
Lần sửa đổi cuối 22 tháng 3, 2026