Ollama

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()

Pasos siguientes