Internet Search
Queries a self-hosted SearXNG instance aggregating multiple search engines.
Category Routing
Always set category based on the nature of the query.
| Category |
When to use |
Engines |
general |
Default. Facts, how-tos, products, people, broad web. |
Brave, Bing, DDG, Startpage, Qwant, Wikipedia… |
news |
Recent events, breaking news, anything time-sensitive. |
Bing News, DDG News |
academic |
Research papers, studies, medical literature, preprints. |
arXiv, Google Scholar, PubMed |
social |
Opinions, community recommendations, "what do people think about X". |
Reddit |
Query Formulation
Write queries as a search engine expects — keywords, not full sentences:
# Bad
"what is the fastest async runtime for rust"
# Good
"rust async runtime benchmarks 2025"
- news: include a time anchor —
"OpenAI o3 release 2025" not just "OpenAI o3"
- academic: use field terminology —
"transformer attention efficiency survey"
- social: phrase as community search —
"reddit best mechanical keyboard 2025"
SearXNG Search Syntax (in query)
SearXNG supports lightweight query modifiers you can embed directly into the query string:
| Syntax |
Meaning |
Examples |
!<engine> / !<category> |
Select engine(s) and/or a category. Chainable and inclusive; abbreviations are accepted. |
!wp paris, !wikipedia paris, !map paris, !map !ddg !wp paris |
:<lang> |
Language filter |
:fr !wp Wau Holland |
Count
count=5 (default) — sufficient for most tasks
count=10 — comparing many options, checking consensus
count=3 — quick fact checks
Multi-Search Strategy
Fire multiple focused searches rather than one broad one:
# Bad: one vague search
internet_search("best way to deploy Node.js")
# Good: three targeted searches
internet_search("Node.js Docker deployment best practices 2025")
internet_search("Node.js PM2 vs Docker production", category="social")
internet_search("Node.js zero-downtime deployment strategies")
Combine general + social for factual + sentiment coverage:
internet_search("Bun runtime performance vs Node.js benchmarks")
internet_search("Bun runtime production experience", category="social")
When NOT to Use
- Things you already know with high confidence
- Stable API docs or well-known syntax — use training knowledge
- Repeating a search that already answered the question
Common Mistakes
| Mistake |
Fix |
general for a research paper |
Use category="academic" |
| Searching "what happened today" |
Use category="news" with a specific topic |
| One broad search for a multi-part question |
Break into 2–3 focused searches |
| Repeating a failed search verbatim |
Rephrase with different keywords |
count=20 for a simple fact |
Default count=5 is almost always enough |
1---2name: internet-search3description: How to use the internet_search tool effectively — category routing, query formulation, and multi-search strategies. Use whenever web search is needed: current events, research papers, community opinions, or any information beyond training knowledge.4---56# Internet Search78Queries a self-hosted SearXNG instance aggregating multiple search engines.910## Category Routing1112Always set `category` based on the nature of the query.1314| Category | When to use | Engines |15|------------|---------------------------------------------------------------------|--------------------------------------------------|16| `general` | Default. Facts, how-tos, products, people, broad web. | Brave, Bing, DDG, Startpage, Qwant, Wikipedia… |17| `news` | Recent events, breaking news, anything time-sensitive. | Bing News, DDG News |18| `academic` | Research papers, studies, medical literature, preprints. | arXiv, Google Scholar, PubMed |19| `social` | Opinions, community recommendations, "what do people think about X".| Reddit |2021## Query Formulation2223Write queries as a search engine expects — keywords, not full sentences:2425```26# Bad27"what is the fastest async runtime for rust"2829# Good30"rust async runtime benchmarks 2025"31```3233- **news**: include a time anchor — `"OpenAI o3 release 2025"` not just `"OpenAI o3"`34- **academic**: use field terminology — `"transformer attention efficiency survey"`35- **social**: phrase as community search — `"reddit best mechanical keyboard 2025"`3637## SearXNG Search Syntax (in `query`)3839SearXNG supports lightweight query modifiers you can embed directly into the `query` string:4041| Syntax | Meaning | Examples |42|--------|---------|----------|43| `!<engine>` / `!<category>` | Select engine(s) and/or a category. Chainable and inclusive; abbreviations are accepted. | `!wp paris`, `!wikipedia paris`, `!map paris`, `!map !ddg !wp paris` |44| `:<lang>` | Language filter | `:fr !wp Wau Holland` |454647## Count4849- `count=5` (default) — sufficient for most tasks50- `count=10` — comparing many options, checking consensus51- `count=3` — quick fact checks5253## Multi-Search Strategy5455Fire multiple focused searches rather than one broad one:5657```58# Bad: one vague search59internet_search("best way to deploy Node.js")6061# Good: three targeted searches62internet_search("Node.js Docker deployment best practices 2025")63internet_search("Node.js PM2 vs Docker production", category="social")64internet_search("Node.js zero-downtime deployment strategies")65```6667Combine `general` + `social` for factual + sentiment coverage:6869```70internet_search("Bun runtime performance vs Node.js benchmarks")71internet_search("Bun runtime production experience", category="social")72```7374## When NOT to Use7576- Things you already know with high confidence77- Stable API docs or well-known syntax — use training knowledge78- Repeating a search that already answered the question7980## Common Mistakes8182| Mistake | Fix |83|-------------------------------------------|-----------------------------------------------|84| `general` for a research paper | Use `category="academic"` |85| Searching "what happened today" | Use `category="news"` with a specific topic |86| One broad search for a multi-part question| Break into 2–3 focused searches |87| Repeating a failed search verbatim | Rephrase with different keywords |88| `count=20` for a simple fact | Default `count=5` is almost always enough |