Ollama introduce una nuova API di web search che permette di arricchire i modelli linguistici con informazioni aggiornate dal web, riducendo le allucinazioni e migliorando la precisione delle risposte. Questa funzionalità è disponibile sia tramite REST API che attraverso librerie Python e JavaScript.
Introduzione
Una nuova API di web search è ora disponibile in Ollama. La piattaforma offre un generoso piano gratuito di ricerche web per uso individuale, mentre limiti più elevati sono disponibili tramite Ollama Cloud.
Questa capacità di ricerca web può aumentare i modelli linguistici con le informazioni più recenti dal web per ridurre le allucinazioni e migliorare l'accuratezza.
Il servizio di web search è fornito come REST API con integrazioni tool più profonde nelle librerie Python e JavaScript di Ollama. Questo abilita anche modelli come gpt-oss di OpenAI a condurre attività di ricerca di lunga durata.
Come iniziare
Crea una API key dal tuo account Ollama.
bashexport OLLAMA_API_KEY="your_api_key"
cURL
bashcurl https://ollama.com/api/web_search \
--header "Authorization: Bearer $OLLAMA_API_KEY" \
-d '{
"query": "what is ollama?"
}'
Esempio di output
json{
"results": [
{
"title": "Ollama",
"url": "https://ollama.com/",
"content": "Cloud models are now available..."
},
{
"title": "What is Ollama? Introduction to the AI model management tool",
"url": "https://www.hostinger.com/tutorials/what-is-ollama",
"content": "Ariffud M. 6min Read..."
},
{
"title": "Ollama Explained: Transforming AI Accessibility and Language ...",
"url": "https://www.geeksforgeeks.org/artificial-intelligence/ollama-explained-transforming-ai-accessibility-and-language-processing/",
"content": "Data Science Data Science Projects Data Analysis..."
}
]
}
Python
Installa ed esegui la libreria Python di Ollama:
bashpip install 'ollama>=0.6.0'
Effettua poi una richiesta usando ollama.web_search:
pythonimport ollama
response = ollama.web_search("What is Ollama?")
print(response)
Esempio di output
pythonresults = [
{
"title": "Ollama",
"url": "https://ollama.com/",
"content": "Cloud models are now available in Ollama..."
},
{
"title": "What is Ollama? Features, Pricing, and Use Cases - Walturn",
"url": "https://www.walturn.com/insights/what-is-ollama-features-pricing-and-use-cases",
"content": "Our services..."
},
{
"title": "Complete Ollama Guide: Installation, Usage & Code Examples",
"url": "https://collabnix.com/complete-ollama-guide-installation-usage-code-examples",
"content": "Join our Discord Server..."
}
]
JavaScript
Installa ed esegui la libreria JavaScript di Ollama:
bashnpm install 'ollama>=0.6.0'
javascriptimport { Ollama } from "ollama";
const client = new Ollama();
const results = await client.webSearch({ query: "what is ollama?" });
console.log(JSON.stringify(results, null, 2));
Esempio di output
javascript{
"results": [
{
"title": "Ollama",
"url": "https://ollama.com/",
"content": "Cloud models are now available..."
},
{
"title": "What is Ollama? Introduction to the AI model management tool",
"url": "https://www.hostinger.com/tutorials/what-is-ollama",
"content": "Ollama is an open-source tool..."
},
{
"title": "Ollama Explained: Transforming AI Accessibility and Language Processing",
"url": "https://www.geeksforgeeks.org/artificial-intelligence/ollama-explained-transforming-ai-accessibility-and-language-processing/",
"content": "Ollama is a groundbreaking..."
}
]
}
Costruire un agente di ricerca
Usa la web search di Ollama come strumento per costruire un mini agente di ricerca.
L'esempio utilizza il modello Qwen 3 di Alibaba con 4 miliardi di parametri.
bashollama pull qwen3:4b
pythonfrom ollama import chat, web_fetch, web_search
available_tools = {'web_search': web_search, 'web_fetch': web_fetch}
messages = [{'role': 'user', 'content': "what is ollama's new engine"}]
while True:
response = chat(
model='qwen3:4b',
messages=messages,
tools=[web_search, web_fetch],
think=True
)
if response.message.thinking:
print('Thinking: ', response.message.thinking)
if response.message.content:
print('Content: ', response.message.content)
messages.append(response.message)
if response.message.tool_calls:
print('Tool calls: ', response.message.tool_calls)
for tool_call in response.message.tool_calls:
function_to_call = available_tools.get(tool_call.function.name)
if function_to_call:
args = tool_call.function.arguments
result = function_to_call(**args)
print('Result: ', str(result)[:200]+'...')
# Result is truncated for limited context lengths
messages.append({'role': 'tool', 'content': str(result)[:2000 * 4], 'tool_name': tool_call.function.name})
else:
messages.append({'role': 'tool', 'content': f'Tool {tool_call.function.name} not found', 'tool_name': tool_call.function.name})
else:
break
Risultato
plaintextThinking: Okay, the user is asking about Ollama's new engine. I need to figure out what they're referring to. Ollama is a company that develops large language models, so maybe they've released a new model or an updated version of their existing engine... Tool calls: [ToolCall(function=Function(name='web_search', arguments={'max_results': 3, 'query': 'Ollama new engine'}))] Result: results=[WebSearchResult(content='# New model scheduling\n\n## September 23, 2025\n\nOllama now includes a significantly improved model scheduling system. Ahead of running a model, Ollama's new engine... Thinking: Okay, the user asked about Ollama's new engine. Let me look at the search results. First result is from September 23, 2025, talking about new model scheduling. It mentions improved memory management, reduced crashes, better GPU utilization, and multi-GPU performance. Examples show speed improvements and accurate memory reporting. Supported models include gemma3, llama4, qwen3, etc... Content: Ollama has introduced two key updates to its engine, both released in 2025: 1. **Enhanced Model Scheduling (September 23, 2025)** - **Precision Memory Management**: Exact memory allocation reduces out-of-memory crashes and optimizes GPU utilization. - **Performance Gains**: Examples show significant speed improvements (e.g., 85.54 tokens/s vs 52.02 tokens/s) and full GPU layer utilization. - **Multi-GPU Support**: Improved efficiency across multiple GPUs, with accurate memory reporting via tools like `nvidia-smi`. - **Supported Models**: Includes `gemma3`, `llama4`, `qwen3`, `mistral-small3.2`, and more. 2. **Multimodal Engine (May 15, 2025)** - **Vision Support**: First-class support for vision models, including `llama4:scout` (109B parameters), `gemma3`, `qwen2.5vl`, and `mistral-small3.1`. - **Multimodal Tasks**: Examples include identifying animals in multiple images, answering location-based questions from videos, and document scanning. These updates highlight Ollama's focus on efficiency, performance, and expanded capabilities for both text and vision tasks.
Modelli consigliati:
Questi modelli hanno eccellenti capacità di utilizzo degli strumenti e sono in grado di avere interazioni multi-turn con l'utente e gli strumenti per raggiungere un risultato finale.
qwen3gpt-oss
Modelli cloud consigliati:
qwen3:480b-cloudgpt-oss:120b-clouddeepseek-v3.1-cloud
Gli strumenti web_search e web_fetch possono restituire migliaia di token. Si consiglia di aumentare la lunghezza del contesto del modello a circa 32000 token per prestazioni ragionevoli. Gli agenti di ricerca funzionano meglio con la lunghezza del contesto completa.
Recuperare i risultati delle pagine
Per recuperare singole pagine (ad esempio quando un utente fornisce un URL nel prompt), usa la nuova API web fetch.
Libreria Python
pythonfrom ollama import web_fetch
result = web_fetch('https://ollama.com')
print(result)
Risultato
pythonWebFetchResponse(
title='Ollama',
content='[Cloud models](https://ollama.com/blog/cloud-models) are now available in Ollama\n\n**Chat & build with open models**\n\n[Download](https://ollama.com/download) [Explore models](https://ollama.com/models)\n\nAvailable for macOS, Windows, and Linux',
links=['https://ollama.com/', 'https://ollama.com/models', 'https://github.com/ollama/ollama']
)
Codice di esempio Python è disponibile su GitHub.
Libreria JavaScript
javascriptimport { Ollama } from "ollama";
const client = new Ollama();
const fetchResult = await client.webFetch({ url: "https://ollama.com" });
console.log(JSON.stringify(fetchResult, null, 2));
Risultato
json{
"title": "Ollama",
"content": "[Cloud models](https://ollama.com/blog/cloud-models) are now available in Ollama...",
"links": [
"https://ollama.com/",
"https://ollama.com/models",
"https://github.com/ollama/ollama"
]
}
Codice di esempio JavaScript è disponibile su GitHub.
cURL
bashcurl --request POST \
--url https://ollama.com/api/web_fetch \
--header "Authorization: Bearer $OLLAMA_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"url": "ollama.com"
}'
Risultato
bash{
"title": "Ollama",
"content": "[Cloud models](https://ollama.com/blog/cloud-models) are now available in Ollama...",
"links": [
"http://ollama.com/",
"http://ollama.com/models",
"https://github.com/ollama/ollama"
]
}
Integrazioni
MCP Server (Model Context Protocol Server)
Puoi abilitare la web search in qualsiasi client MCP attraverso il server MCP Python.
Cline
Per integrare con Cline, configura i server MCP nelle sue impostazioni.
Manage MCP Servers > Configure MCP Servers > Aggiungi la configurazione sottostante
json{
"mcpServers": {
"web_search_and_fetch": {
"type": "stdio",
"command": "uv",
"args": ["run", "path/to/web-search-mcp.py"],
"env": { "OLLAMA_API_KEY": "your_api_key_here" }
}
}
}

Codex
Aggiungi la seguente configurazione a ~/.codex/config.toml
toml[mcp_servers.web_search]
command = "uv"
args = ["run", "path/to/web-search-mcp.py"]
env = { "OLLAMA_API_KEY" = "your_api_key_here" }

Goose
Puoi integrare con Ollama tramite le estensioni di Goose.


Come iniziare
La web search è inclusa con un account Ollama gratuito, con limiti di velocità molto più elevati disponibili aggiornando il tuo abbonamento a Ollama Cloud.
Svolta fondamentale per l’AI locale
L’introduzione della ricerca web ufficiale all’interno di Ollama colma uno dei principali divari con i modelli proprietari commerciali. L’integrazione pulita tramite tool-use, unita a strumenti come web_fetch ed MCP, rende la creazione di agenti autonomi di ricerca estremamente accessibile, veloce e ben ottimizzata.

