Tools

Tìm nạp web

web_fetch thực hiện một yêu cầu HTTP GET thuần túy và trích xuất nội dung có thể đọc được (HTML thành markdown hoặc văn bản). Công cụ này không thực thi JavaScript. Đối với các trang sử dụng nhiều JS hoặc được bảo vệ bằng đăng nhập, hãy sử dụng Trình duyệt web thay thế.

Bắt đầu nhanh

Được bật theo mặc định, không cần cấu hình:

javascript
await web_fetch({ url: "https://example.com/article" });

Tham số công cụ

urlstringrequired

URL cần truy xuất. Chỉ hỗ trợ http(s).

extractMode'markdown' | 'text'default: markdown

Định dạng đầu ra sau khi trích xuất nội dung chính.

maxCharsnumber

Cắt ngắn đầu ra còn số ký tự này. Bị giới hạn ở tools.web.fetch.maxCharsCap.

Cách hoạt động

  • Truy xuất

    Gửi một yêu cầu HTTP GET với User-Agent giống Chrome và tiêu đề Accept-Language. Chặn tên máy chủ riêng/nội bộ và kiểm tra lại các chuyển hướng.

  • Trích xuất

    Chạy Readability (trích xuất nội dung chính) trên phản hồi HTML.

  • Phương án dự phòng (tùy chọn)

    Nếu Readability thất bại và có nhà cung cấp truy xuất khả dụng, thử lại thông qua nhà cung cấp đó (ví dụ: chế độ vượt cơ chế chống bot của Firecrawl).

  • Bộ nhớ đệm

    Kết quả được lưu vào bộ nhớ đệm trong 15 phút (có thể cấu hình) để giảm số lần truy xuất lặp lại cùng một URL.

  • Cập nhật tiến trình

    web_fetch chỉ phát một dòng tiến trình công khai khi việc truy xuất vẫn đang chờ sau năm giây:

    text
    Đang truy xuất nội dung trang...

    Các lần trúng bộ nhớ đệm nhanh và phản hồi mạng nhanh sẽ hoàn tất trước khi bộ hẹn giờ kích hoạt, vì vậy chúng không bao giờ hiển thị dòng tiến trình. Việc hủy lệnh gọi sẽ xóa bộ hẹn giờ. Dòng tiến trình chỉ là trạng thái giao diện người dùng của kênh và không bao giờ chứa nội dung trang đã truy xuất.

    Cấu hình

    json5
    {  tools: {    web: {      fetch: {        enabled: true, // mặc định: true        provider: "firecrawl", // tùy chọn; bỏ qua để tự động phát hiện        maxChars: 20000, // số ký tự đầu ra mặc định; bị giới hạn bởi maxCharsCap        maxCharsCap: 20000, // giới hạn cứng cho tham số maxChars        maxResponseBytes: 750000, // kích thước tải xuống tối đa trước khi cắt ngắn (32000-10000000)        timeoutSeconds: 30,        cacheTtlMinutes: 15,        maxRedirects: 3,        useTrustedEnvProxy: false, // cho phép proxy môi trường HTTP(S) đáng tin cậy phân giải DNS        readability: true, // sử dụng trích xuất Readability        userAgent: "Mozilla/5.0 ...", // ghi đè User-Agent        ssrfPolicy: {          allowRfc2544BenchmarkRange: true, // chủ động bật cho proxy IP giả đáng tin cậy sử dụng 198.18.0.0/15          allowIpv6UniqueLocalRange: true, // chủ động bật cho proxy IP giả đáng tin cậy sử dụng fc00::/7        },      },    },  },}

    Phương án dự phòng Firecrawl

    Nếu việc trích xuất bằng Readability thất bại, web_fetch có thể dùng Firecrawl làm phương án dự phòng để vượt cơ chế chống bot và trích xuất tốt hơn:

    json5
    {  tools: {    web: {      fetch: {        provider: "firecrawl", // tùy chọn; bỏ qua để tự động phát hiện từ thông tin xác thực khả dụng      },    },  },  plugins: {    entries: {      firecrawl: {        enabled: true,        config: {          webFetch: {            // apiKey: "fc-...", // tùy chọn; bỏ qua để sử dụng quyền truy cập khởi đầu không cần khóa            baseUrl: "https://api.firecrawl.dev",            onlyMainContent: true,            maxAgeMs: 172800000, // thời lượng bộ nhớ đệm (2 ngày)            timeoutSeconds: 60,          },        },      },    },  },}

    plugins.entries.firecrawl.config.webFetch.apiKey là tùy chọn và hỗ trợ các đối tượng SecretRef. Cấu hình tools.web.fetch.firecrawl.* cũ được tự động di chuyển sang plugins.entries.firecrawl.config.webFetch thông qua openclaw doctor --fix.

    Hành vi thời gian chạy hiện tại:

    • tools.web.fetch.provider chọn rõ ràng nhà cung cấp truy xuất dự phòng.
    • Nếu bỏ qua provider, OpenClaw tự động phát hiện nhà cung cấp truy xuất web sẵn sàng đầu tiên từ thông tin xác thực đã cấu hình. web_fetch không nằm trong sandbox có thể sử dụng các plugin đã cài đặt khai báo contracts.webFetchProviders và đăng ký một nhà cung cấp tương ứng trong thời gian chạy. Plugin Firecrawl chính thức hiện cung cấp phương án dự phòng này.
    • Các lệnh gọi web_fetch trong sandbox cho phép các nhà cung cấp đi kèm cùng với các nhà cung cấp đã cài đặt có nguồn gốc npm chính thức hoặc ClawHub đã được xác minh. Hiện tại, điều này cho phép Plugin Firecrawl chính thức; các plugin truy xuất bên ngoài của bên thứ ba vẫn bị loại trừ.
    • Nếu Readability bị tắt, web_fetch chuyển thẳng sang nhà cung cấp dự phòng đã chọn. Nếu không có nhà cung cấp nào khả dụng, công cụ sẽ từ chối thực hiện.

    Proxy môi trường đáng tin cậy

    Nếu hoạt động triển khai của bạn yêu cầu web_fetch đi qua proxy HTTP(S) đầu ra đáng tin cậy, hãy đặt tools.web.fetch.useTrustedEnvProxy: true.

    Trong chế độ này, OpenClaw vẫn áp dụng kiểm tra SSRF dựa trên tên máy chủ trước khi gửi yêu cầu, nhưng cho phép proxy phân giải DNS thay vì ghim DNS cục bộ. Chỉ bật tính năng này khi proxy do đơn vị vận hành kiểm soát và thực thi chính sách đầu ra sau khi phân giải DNS.

    Giới hạn và an toàn

    • maxChars bị giới hạn ở tools.web.fetch.maxCharsCap (mặc định 20000)
    • Nội dung phản hồi bị giới hạn ở maxResponseBytes (mặc định 750000, được giới hạn trong khoảng 32000-10000000) trước khi phân tích; phản hồi quá lớn sẽ bị cắt ngắn kèm cảnh báo
    • Tên máy chủ riêng/nội bộ bị chặn
    • tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangetools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange là các tùy chọn bật có phạm vi hẹp dành cho ngăn xếp proxy IP giả đáng tin cậy; hãy để chúng không được thiết lập trừ khi proxy của bạn sở hữu các dải tổng hợp đó và thực thi chính sách đích riêng
    • Các chuyển hướng được kiểm tra và giới hạn bởi maxRedirects (mặc định 3)
    • useTrustedEnvProxy là tùy chọn chủ động bật rõ ràng và chỉ nên được bật cho các proxy do đơn vị vận hành kiểm soát, vẫn thực thi chính sách đầu ra sau khi phân giải DNS
    • web_fetch hoạt động theo nguyên tắc nỗ lực tối đa -- một số trang web cần Trình duyệt web

    Hồ sơ công cụ

    Nếu bạn sử dụng hồ sơ công cụ hoặc danh sách cho phép, hãy thêm web_fetch hoặc group:web:

    json5
    {  tools: {    allow: ["web_fetch"],    // hoặc: allow: ["group:web"]  (bao gồm web_fetch, web_search và x_search)  },}

    Liên quan

    • Tìm kiếm web -- tìm kiếm trên web bằng nhiều nhà cung cấp
    • Trình duyệt web -- tự động hóa trình duyệt đầy đủ cho các trang sử dụng nhiều JS
    • Firecrawl -- các công cụ tìm kiếm và thu thập dữ liệu của Firecrawl
    Was this useful?
    On this page

    On this page