Skip to content
Rasmus Wulff Jensen edited this page May 20, 2026 · 4 revisions

NuGet README

Features

  • AgentFactory (OpenAIAgentFactory)
  • AIToolsFactory integration (tools in AgentOptions.Tools)
  • EmbeddingFactory (OpenAIEmbeddingFactory)
  • BatchRunner (OpenAIBatchRunner)
  • OpenAI reasoning controls and ClientType (ChatClient or ResponsesApi)
  • StoredOutputEnabled for the OpenAI store setting
  • ServiceTier for OpenAI service tier selection

Package

dotnet add package AgentFrameworkToolkit.OpenAI

Quick start

OpenAIAgentFactory agentFactory = new("<apiKey>");
OpenAIAgent agent = agentFactory.CreateAgent(new AgentOptions
{
    Model = "gpt-5",
    ReasoningEffort = OpenAIReasoningEffort.Low,
    Instructions = "You are a nice AI"
});

AgentRunResponse response = await agent.RunAsync("Hello World");
Console.WriteLine(response);

Embeddings

OpenAIEmbeddingFactory embeddingFactory = new("<apiKey>");
IEmbeddingGenerator<string, Embedding<float>> generator =
    embeddingFactory.GetEmbeddingGenerator("text-embedding-3-small");
Embedding<float> embedding = await generator.GenerateAsync("Hello");

Connection options

  • ApiKey (required)
  • Endpoint (optional, use for OpenAI-compatible providers)
  • NetworkTimeout
  • DefaultClientType
  • AdditionalOpenAIClientOptions

OpenAI-specific agent options

  • ReasoningEffort
  • ReasoningSummaryVerbosity (Responses API)
  • StoredOutputEnabled (maps to OpenAI's store setting)
  • ServiceTier (OpenAI direct only)
  • ClientType (ChatClient or ResponsesApi)

Dependency injection

builder.Services.AddOpenAIAgentFactory("<apiKey>");
builder.Services.AddOpenAIAgentFactory(new OpenAIConnection
{
    ApiKey = "<apiKey>",
    NetworkTimeout = TimeSpan.FromMinutes(5)
});

builder.Services.AddOpenAIEmbeddingFactory("<apiKey>");

Notes

Clone this wiki locally