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---5
6# Internet Search
7
8Queries a self-hosted SearXNG instance aggregating multiple search engines.
9
10## Category Routing
11
12Always set `category` based on the nature of the query.
13
14| 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 |
20
21## Query Formulation
22
23Write queries as a search engine expects — keywords, not full sentences:
24
25```
26# Bad
27"what is the fastest async runtime for rust"
28
29# Good
30"rust async runtime benchmarks 2025"
31```
32
33- **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"`
36
37## SearXNG Search Syntax (in `query`)
38
39SearXNG supports lightweight query modifiers you can embed directly into the `query` string:
40
41| 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` |
45
46
47## Count
48
49- `count=5` (default) — sufficient for most tasks
50- `count=10` — comparing many options, checking consensus
51- `count=3` — quick fact checks
52
53## Multi-Search Strategy
54
55Fire multiple focused searches rather than one broad one:
56
57```
58# Bad: one vague search
59internet_search("best way to deploy Node.js")
60
61# Good: three targeted searches
62internet_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```
66
67Combine `general` + `social` for factual + sentiment coverage:
68
69```
70internet_search("Bun runtime performance vs Node.js benchmarks")
71internet_search("Bun runtime production experience", category="social")
72```
73
74## When NOT to Use
75
76- Things you already know with high confidence
77- Stable API docs or well-known syntax — use training knowledge
78- Repeating a search that already answered the question
79
80## Common Mistakes
81
82| 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 |