conductor-ai 3.0.0-rc2

This is a prerelease version of conductor-ai.
dotnet add package conductor-ai --version 3.0.0-rc2
                    
NuGet\Install-Package conductor-ai -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" 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" Version="3.0.0-rc2" />
                    
Directory.Packages.props
<PackageReference Include="conductor-ai" />
                    
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 --version 3.0.0-rc2
                    
#r "nuget: conductor-ai, 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@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&version=3.0.0-rc2&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=conductor-ai&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 (3)

Showing the top 3 NuGet packages that depend on conductor-ai:

Package Downloads
conductor-ai-semantic-kernel

Bridge Microsoft Semantic Kernel plugins into Conductor AI agents

conductor-ai-google-adk

Google ADK-style agent adapter for the Conductor AI SDK

conductor-ai-openai

OpenAI-style agent adapter for the Conductor AI SDK

GitHub repositories

This package is not used by any popular GitHub repositories.

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