conductor-ai-semantic-kernel 3.0.0-rc2

This is a prerelease version of conductor-ai-semantic-kernel.
dotnet add package conductor-ai-semantic-kernel --version 3.0.0-rc2
                    
NuGet\Install-Package conductor-ai-semantic-kernel -Version 3.0.0-rc2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="conductor-ai-semantic-kernel" Version="3.0.0-rc2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="conductor-ai-semantic-kernel" Version="3.0.0-rc2" />
                    
Directory.Packages.props
<PackageReference Include="conductor-ai-semantic-kernel" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add conductor-ai-semantic-kernel --version 3.0.0-rc2
                    
#r "nuget: conductor-ai-semantic-kernel, 3.0.0-rc2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package conductor-ai-semantic-kernel@3.0.0-rc2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=conductor-ai-semantic-kernel&version=3.0.0-rc2&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=conductor-ai-semantic-kernel&version=3.0.0-rc2&prerelease
                    
Install as a Cake Tool

Conductor OSS C# SDK

CI

The conductor-csharp repository provides the client SDKs to build task workers in C#.

Building the task workers in C# mainly consists of the following steps:

  1. Setup conductor-csharp package
  2. Create and run task workers
  3. Create workflows using code
  4. API Documentation

⭐ Conductor OSS

Show support for the Conductor OSS. Please help spread the awareness by starring Conductor repo.

GitHub stars

Start Conductor Server

If you don't already have a Conductor server running, start one with Docker:

docker run --init -p 8080:8080 conductoross/conductor:latest

The UI will be available at http://localhost:8080 and the API at http://localhost:8080/api.

Setup Conductor C# Package

dotnet add package conductor-csharp

AI Agents

The repo also ships conductor-ai — durable, long-running AI agents (Agent, AgentRuntime, tools, guardrails, handoffs, multi-agent strategies) on the Conductor platform:

dotnet add package conductor-ai

Framework adapters are available as conductor-ai-openai, conductor-ai-google-adk, and conductor-ai-semantic-kernel. See docs/agents to get started.

Hello World

This quickstart shows the full flow: define a worker, define a workflow, register it, run it.

Step 1: Create a new console project

dotnet new console -n conductor-hello
cd conductor-hello
dotnet add package conductor-csharp

Step 2: Replace Program.cs with the following

using Conductor.Client;
using Conductor.Client.Extensions;
using Conductor.Client.Worker;
using Conductor.Definition;
using Conductor.Definition.TaskType;
using Conductor.Executor;

// Configure the SDK — reads CONDUCTOR_SERVER_URL from the environment,
// or falls back to a local server.
var configuration = new Configuration
{
    BasePath = Environment.GetEnvironmentVariable("CONDUCTOR_SERVER_URL")
               ?? "http://localhost:8080/api"
};

// Define the workflow: one SIMPLE task called "greet".
var workflow = new ConductorWorkflow()
    .WithName("greetings")
    .WithVersion(1);

var greetTask = new SimpleTask("greet", "greet_ref")
    .WithInput("name", workflow.Input("name"));
workflow.WithTask(greetTask);

// Register the workflow definition on the server.
var executor = new WorkflowExecutor(configuration);
executor.RegisterWorkflow(workflow, overwrite: true);

// Start the worker host — it discovers GreetWorker automatically.
var host = WorkflowTaskHost.CreateWorkerHost(
    Microsoft.Extensions.Logging.LogLevel.Information,
    new GreetWorker());
await host.StartAsync();

// Run the workflow and print the execution ID.
var workflowId = executor.StartWorkflow(new StartWorkflowRequest
{
    Name = "greetings",
    Version = 1,
    Input = new Dictionary<string, object> { ["name"] = "Conductor" }
});
Console.WriteLine($"Started workflow: {workflowId}");
Console.WriteLine($"View execution: http://localhost:8080/execution/{workflowId}");

// Keep the worker running until Ctrl-C.
await host.WaitForShutdownAsync();

Step 3: Add the worker class — create GreetWorker.cs

using Conductor.Client.Extensions;
using Conductor.Client.Interfaces;
using Conductor.Client.Models;
using Conductor.Client.Worker;
using Task = Conductor.Client.Models.Task;

public class GreetWorker : IWorkflowTask
{
    public string TaskType => "greet";
    public WorkflowTaskExecutorConfiguration WorkerSettings { get; } = new();

    public TaskResult Execute(Task task)
    {
        var name = task.InputData.GetValueOrDefault("name")?.ToString() ?? "World";
        var result = task.Completed();
        result.OutputData = new Dictionary<string, object>
        {
            ["greeting"] = $"Hello, {name}!"
        };
        return result;
    }
}

Step 4: Run it

dotnet run

Expected output:

Started workflow: <workflow-id>
View execution: http://localhost:8080/execution/<workflow-id>

Open the UI link to see the completed execution and its output.

Configurations

Authentication Settings (Optional)

Configure the authentication settings if your Conductor server requires authentication.

  • keyId: Key for authentication.
  • keySecret: Secret for the key.
authenticationSettings: new OrkesAuthenticationSettings(
    KeyId: "key",
    KeySecret: "secret"
)

Access Control Setup

See Access Control for more details on role-based access control with Conductor and generating API keys for your environment.

Configure API Client

using Conductor.Api;
using Conductor.Client;
using Conductor.Client.Authentication;

var configuration = new Configuration() {
    BasePath = basePath,
    AuthenticationSettings = new OrkesAuthenticationSettings("keyId", "keySecret")
};

var workflowClient = configuration.GetClient<WorkflowResourceApi>();

workflowClient.StartWorkflow(
    name: "test-sdk-csharp-workflow",
    body: new Dictionary<string, object>(),
    version: 1
)

Next: Create and run task workers

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.0-rc2 34 7/18/2026