#5731·nanobot

Add AnySearch extract as a web_fetch backend (key-optional, anonymous quota)

Author: cleverLuckyCreated Sep 11, 2026Updated Sep 16, 2026
Labelsenhancement

Problem / Motivation

Problem / Motivation

We are the team behind AnySearch (https://anysearch.com/), a unified real-time search tool designed for AI agents, offering three standard integration methods: API, MCP, and Skill.

In our previous issue #5505, AnySearch has authorized me to submit this integration.

Plan: Submit a PR to integrate AnySearch's full-page URL content extraction into nanobot's web_fetch tool as an additional extraction backend — key-optional with anonymous quota, so it works out of the box and improves the quality of fetched page content.

Why this benefits nanobot:

  1. Full-page content in Markdown: extract returns the complete page content as clean Markdown, giving the agent more material to summarize and cite than partial text.
  2. Key-optional, zero friction: works without an API key via AnySearch's anonymous quota, while advanced users can add ANYSEARCH_API_KEY to lift rate limits. It doesn't replace the existing fetch path.
  3. Low integration cost: follows the existing Jina Reader pattern (use_jina_reader) in nanobot/agent/tools/web.py, with no new dependencies and no changes to the public tool contract.

Use cases:

  1. Research & reading: Users ask the agent to read a long article, paper, or documentation page; extract returns the full content so the agent can summarize and cite accurately instead of working from partial text.
  2. Data gathering: The agent fetches multiple source pages for comparison (e.g., product pages, changelogs, release notes) and gets complete content in a consistent Markdown format.
  3. Fallback for hard pages: Sites where the current extractor returns little or noisy text can be re-fetched through AnySearch as a fallback path.

Happy to adjust scope or drop this if it isn't a direction you want.

Proposed Solution

We'll provide the PR, documentation , and ongoing maintenance. We'd like to integrate following the existing use_jina_reader pattern in nanobot/agent/tools/web.py — adding AnySearch as a fetch backend (POST /v1/extract) with fallback to the current extraction path, and the same privacy protections as the merged Jina fix (#5258). Whether the backend is on by default or opt-in is open for discussion — happy to match whatever the project prefers.

Alternatives Considered

No response

Related Component

API Server

Additional Context

No response