Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los 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.
Prerequisites
- Instale e inicie Ollama.
- Descargue un modelo, como
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"
Creación de un agente de 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."));
Prerequisites
Asegúrese de que Ollama está instalado y ejecutándose localmente con un modelo descargado antes de ejecutar cualquier ejemplo:
ollama pull llama3.2
Note
No todos los modelos admiten llamadas a funciones. Para el uso de herramientas, pruebe llama3.2 o qwen3:4b.
Installation
pip install agent-framework-ollama --pre
Configuration
OLLAMA_MODEL="llama3.2"
El cliente nativo se conecta de http://localhost:11434 forma predeterminada. Invalide con la OLLAMA_HOST variable de entorno o el host argumento constructor.
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 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
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 | ✅ | Callables estándar de Python o @ai_function. Si el modelo seleccionado realmente puede llamarlos depende del propio modelo. |
| Aprobación de herramientas | ✅ | Proporcionado por el cliente de chat con invocación de funciones del framework; funciona con cualquier llamada a una función-herramienta. |
| 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 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()
Note
La compatibilidad con go para esta característica estará disponible próximamente. Consulte el repositorio de Agent Framework Go para obtener el estado más reciente.