Add AnySearch extract as a web_fetch backend (key-optional, anonymous quota)
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:
- Full-page content in Markdown:
extractreturns the complete page content as clean Markdown, giving the agent more material to summarize and cite than partial text. - Key-optional, zero friction: works without an API key via AnySearch's anonymous quota, while advanced users can add
ANYSEARCH_API_KEYto lift rate limits. It doesn't replace the existing fetch path. - Low integration cost: follows the existing Jina Reader pattern (
use_jina_reader) innanobot/agent/tools/web.py, with no new dependencies and no changes to the public tool contract.
Use cases:
- Research & reading: Users ask the agent to read a long article, paper, or documentation page;
extractreturns the full content so the agent can summarize and cite accurately instead of working from partial text. - 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.
- 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
Source: HKUDS/nanobot