nanobot
Set nanobot's web search provider to searxng and its base URL to the SpecStream address, and every web_search the agent makes runs on the SpecStream Search API. There is no SearXNG server to host.
SpecStream for nanobotAI assistantsWhat you need
- nanobot with the
searxngsearch provider. Version 0.4.1 has it. - A SpecStream API key. New accounts start with $10 of credit, no card. Create an account.
- 1
1. Get a SpecStream key
Get your key on the Search API screen of your SpecStream workspace, and export it in the environment nanobot starts in:
Shell - 2
2. Point the searxng provider at SpecStream
nanobot's SearXNG provider sends no key, so the key goes in the address. nanobot adds
/searchto the base URL itself, so the base URL ends with your key.In
~/.nanobot/config.json, settools.web.search.providertosearxngandbaseUrlto the SpecStream address. A${SPECSTREAM_API_KEY}reference keeps the key out of the file: nanobot resolves it at startup, in memory, and never writes the value back.~/.nanobot/config.json - 3
3. Or set it in the WebUI
Open Settings, then Capabilities, then Web access. Choose SearXNG as the Search provider and paste
https://api.specstream.ai/searxng/YOUR_SPECSTREAM_KEYinto Base URL, with your key in place ofYOUR_SPECSTREAM_KEY. Save. Changes apply to new web search requests.Typed this way, the key is stored in
config.json. To keep it out, put the${SPECSTREAM_API_KEY}reference in the field instead: nanobot keeps the placeholder when the WebUI saves. - 4
4. Check it
Ask nanobot something from this week. The answer lists results as a title, a URL and a snippet, read from the Search API.
Without a config file, the same works with two settings: provider
searxngin the config, and the address in theSEARXNG_BASE_URLenvironment variable, which nanobot reads whenbaseUrlis empty.
What nanobot sends
Each search is GET https://api.specstream.ai/searxng/<key>/search with q and format=json. The Search API answers in SearXNG's JSON shape, and nanobot reads results[].title, url and content and keeps the first maxResults: 5 by default, 10 at most.
With searxng chosen and no base URL in baseUrl or SEARXNG_BASE_URL, nanobot falls back to DuckDuckGo and logs SEARXNG_BASE_URL not set, falling back to DuckDuckGo. If your searches still look like DuckDuckGo's, that line is the place to look. A rejected key comes back to the agent as an error, with no fallback.
Why not run SearXNG yourself
nanobot's docs list SearXNG as self hosted: a server you install, keep running and configure to answer in JSON. With the SpecStream address there is no server to run, and the results come from the most accurate web search API on SimpleQA Verified and WideSearch. The scores and the method are on the benchmarks page.
Web fetch
nanobot reads the pages a search finds with its own web_fetch tool, through Jina Reader or its built-in reader, and no setting moves it to SpecStream. To read pages with the Extract API, call it from your own code.
Cost
Each search is one Search API call at $5 per 1,000 searches of up to 10 results. It comes out of your balance, with no quote and no approval, and a search that returns no results costs nothing. New accounts start with $10 of credit, no card.
Turn it off
Set provider back to duckduckgo, or choose another provider in Web access, and save. To end the key's access, revoke it under Agents & API in your SpecStream workspace. Questions go to [email protected].
More
SpecStream for nanobot covers what it does in nanobot on one page. Every other tool has its guide in Connect your tools. You see the most a request can cost before it starts, and the matches are paid from your balance. Billing has the details. For help, email [email protected].