Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ollama vous permet d’exécuter des modèles open source localement et de les utiliser avec Agent Framework. Cela est idéal pour le développement, les tests et les scénarios dans lesquels vous devez conserver des données locales.
L’exemple suivant montre comment créer un agent à l’aide de Ollama :
using System;
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
// Create an Ollama agent using Microsoft.Extensions.AI.Ollama
// Requires: dotnet add package Microsoft.Extensions.AI.Ollama --prerelease
var chatClient = new OllamaChatClient(
new Uri("http://localhost:11434"),
modelId: "llama3.2");
AIAgent agent = chatClient.AsAIAgent(
instructions: "You are a helpful assistant running locally via Ollama.");
Console.WriteLine(await agent.RunAsync("What is the largest city in France?"));
Prerequisites
Vérifiez que Ollama est installé et exécuté localement avec un modèle téléchargé avant d’exécuter des exemples :
ollama pull llama3.2
Note
Tous les modèles ne prennent pas en charge l’appel de fonction. Pour l’utilisation de l’outil, essayez llama3.2 ou qwen3:4b.
Installation
pip install agent-framework-ollama --pre
Paramétrage
OLLAMA_MODEL="llama3.2"
Le client natif se connecte http://localhost:11434 par défaut. Vous pouvez le remplacer en passant host au client.
Créer des agents Ollama
OllamaChatClient fournit une intégration native de Ollama avec une prise en charge complète des outils de fonction et du streaming.
import asyncio
from agent_framework.ollama import OllamaChatClient
async def main():
agent = OllamaChatClient().as_agent(
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
Les clients Ollama Python (OllamaChatClient et OpenAIChatClient point de terminaison compatible avec Ollama) prennent en charge les outils appelés localement. Les types d’outils hébergés n’existent pas, car Ollama est un runtime de modèle local.
| Tool | État | Remarques |
|---|---|---|
| Outils de fonction | ✅ | Appels standard Python ou @ai_function. Si le modèle sélectionné peut réellement les appeler dépend du modèle lui-même. |
| Approbation de l’outil | ✅ | Fourni par le client de conversation de fonction de l’infrastructure ; fonctionne avec n’importe quel appel d’outil de fonction. |
| Interpréteur de code | ❌ | Aucun interpréteur de code hébergé. |
| Recherche de fichiers | ❌ | Aucune recherche de fichier hébergée. |
| Recherche web | ❌ | Aucune recherche web hébergée. |
| Outils MCP hébergés | ❌ | Ollama n’expose pas mcP hébergé. |
| Outils MCP locaux | ✅ | S’exécute dans votre processus et fonctionne avec n’importe quel client de conversation. |
Outils de fonction
import asyncio
from datetime import datetime
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 = OllamaChatClient().as_agent(
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())
Diffusion en continu
async def streaming_example():
agent = OllamaChatClient().as_agent(
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()