Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Ollama permite ejecutar modelos de código abierto localmente y usarlos con Agent Framework. Esto es ideal para el desarrollo, las pruebas y los escenarios en los que necesita mantener los datos en el entorno local.
En el ejemplo siguiente se muestra cómo crear un agente mediante 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?"));
Prerrequisitos
Asegúrese de que Ollama está instalado y ejecutándose localmente con un modelo descargado antes de ejecutar cualquier ejemplo:
ollama pull llama3.2
Nota:
No todos los modelos admiten llamadas a funciones. Para el uso de herramientas, pruebe llama3.2 o qwen3:4b.
Instalación
pip install agent-framework-ollama --pre
Configuración
OLLAMA_MODEL="llama3.2"
El cliente nativo se conecta de http://localhost:11434 forma predeterminada. Para invalidar esto, pase host al cliente.
Creación de agentes de Ollama
OllamaChatClient proporciona integración nativa de Ollama con compatibilidad completa con herramientas de funciones y 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())
Herramientas
Los clientes de Python Ollama (OllamaChatClient y OpenAIChatClient apuntados a un punto de conexión compatible con Ollama) admiten herramientas invocadas localmente. Los tipos de herramientas hospedados no existen porque Ollama es un entorno de ejecución de modelo local.
| Herramienta | Situación | Notas |
|---|---|---|
| Herramientas de funciones | ✅ | Los Python estándar invocables o @ai_function. Si el modelo seleccionado realmente puede llamarlos depende del propio modelo. |
| Aprobación de herramientas | ✅ | Proporcionado por el cliente de chat de invocación de funciones del marco; funciona con cualquier llamada a function-tool. |
| Intérprete de código | ❌ | Sin intérprete de código hospedado. |
| Búsqueda de archivos | ❌ | No hay ninguna búsqueda de archivos hospedada. |
| Búsqueda web | ❌ | No hay ninguna búsqueda web hospedada. |
| Herramientas de MCP hospedadas | ❌ | Ollama no expone MCP hospedado. |
| Herramientas de MCP locales | ✅ | Se ejecuta en el proceso y funciona con cualquier cliente de chat. |
Herramientas de funciones
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())
Transmisión en línea
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()