Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Ollama consente di eseguire modelli open source in locale e di usarli con Agent Framework. Questo è ideale per lo sviluppo, il test e gli scenari in cui è necessario mantenere i dati in locale.
Prerequisiti
- Installare e avviare Ollama.
- Scaricare un modello, ad esempio
ollama pull llama3.2.
Installation
dotnet add package OllamaSharp
dotnet add package Microsoft.Agents.AI --prerelease
Configuration
OLLAMA_ENDPOINT="http://localhost:11434"
OLLAMA_MODEL_NAME="llama3.2"
Creare un agente Ollama
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
using OllamaSharp;
var endpoint = Environment.GetEnvironmentVariable("OLLAMA_ENDPOINT") ?? throw new InvalidOperationException("OLLAMA_ENDPOINT is not set.");
var modelName = Environment.GetEnvironmentVariable("OLLAMA_MODEL_NAME") ?? throw new InvalidOperationException("OLLAMA_MODEL_NAME is not set.");
// Get a chat client for Ollama and use it to construct an AIAgent.
AIAgent agent = new OllamaApiClient(new Uri(endpoint), modelName)
.AsAIAgent(instructions: "You are good at telling jokes.", name: "Joker");
// Invoke the agent and output the text result.
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));
Prerequisiti
Verificare che Ollama sia installato ed eseguito localmente con un modello scaricato prima di eseguire esempi:
ollama pull llama3.2
Annotazioni
Non tutti i modelli supportano la chiamata di funzione. Per l'utilizzo degli strumenti, provare llama3.2 o qwen3:4b.
Installation
pip install agent-framework-ollama --pre
Configuration
OLLAMA_MODEL="llama3.2"
Il client nativo si connette a per http://localhost:11434 impostazione predefinita. Eseguirne l'override con la OLLAMA_HOST variabile di ambiente o l'argomento del host costruttore.
Creare agenti Ollama
OllamaChatClient offre l'integrazione nativa di Ollama con supporto completo per gli strumenti e lo streaming delle funzioni.
import asyncio
from agent_framework import Agent
from agent_framework.ollama import OllamaChatClient
async def main():
agent = Agent(
client=OllamaChatClient(),
name="HelpfulAssistant",
instructions="You are a helpful assistant running locally via Ollama.",
)
result = await agent.run("What is the largest city in France?")
print(result)
asyncio.run(main())
Tools
I client Ollama Python (OllamaChatClient e OpenAIChatClient a cui punta un endpoint compatibile con Ollama) supportano gli strumenti richiamati localmente. I tipi di strumenti ospitati non esistono perché Ollama è un runtime del modello locale.
| Strumento | Condizione | Note |
|---|---|---|
| Strumenti per le funzioni | ✅ | Oggetti richiamabili Python standard o @ai_function. Se il modello selezionato può effettivamente chiamarli dipende dal modello stesso. |
| Approvazione degli strumenti | ✅ | Fornito dal client di chat del framework per l'invocazione di funzioni; funziona con qualsiasi chiamata a uno strumento funzione. |
| Interprete di codice | ❌ | Nessun interprete di codice ospitato. |
| Ricerca file | ❌ | Nessuna ricerca di file ospitata. |
| Ricerca Web | ❌ | Nessuna ricerca Web ospitata. |
| Strumenti MCP ospitati | ❌ | Ollama non espone mcp ospitato. |
| Strumenti MCP locali | ✅ | Viene eseguito nel processo e funziona con qualsiasi client di chat. |
Strumenti per le funzioni
import asyncio
from datetime import datetime
from agent_framework import Agent
from agent_framework.ollama import OllamaChatClient
def get_time(location: str) -> str:
"""Get the current time."""
return f"The current time in {location} is {datetime.now().strftime('%I:%M %p')}."
async def main():
agent = Agent(
client=OllamaChatClient(),
name="TimeAgent",
instructions="You are a helpful time agent.",
tools=get_time,
)
result = await agent.run("What time is it in Seattle?")
print(result)
asyncio.run(main())
Streaming
from agent_framework import Agent
from agent_framework.ollama import OllamaChatClient
async def streaming_example():
agent = Agent(
client=OllamaChatClient(),
instructions="You are a helpful assistant.",
)
print("Agent: ", end="", flush=True)
async for chunk in agent.run("Tell me about Python.", stream=True):
if chunk.text:
print(chunk.text, end="", flush=True)
print()
Annotazioni
Il supporto per questa funzionalità sarà presto disponibile. Vedere il repository di Agent Framework Go per lo stato più aggiornato.