conductor-ai
3.0.0-rc2
dotnet add package conductor-ai --version 3.0.0-rc2
NuGet\Install-Package conductor-ai -Version 3.0.0-rc2
<PackageReference Include="conductor-ai" Version="3.0.0-rc2" />
<PackageVersion Include="conductor-ai" Version="3.0.0-rc2" />
<PackageReference Include="conductor-ai" />
paket add conductor-ai --version 3.0.0-rc2
#r "nuget: conductor-ai, 3.0.0-rc2"
#:package conductor-ai@3.0.0-rc2
#addin nuget:?package=conductor-ai&version=3.0.0-rc2&prerelease
#tool nuget:?package=conductor-ai&version=3.0.0-rc2&prerelease
Conductor OSS C# SDK
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:
- Setup
conductor-csharppackage - Create and run task workers
- Create workflows using code
- API Documentation
⭐ Conductor OSS
Show support for the Conductor OSS. Please help spread the awareness by starring Conductor repo.
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 | Versions 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. |
-
net8.0
- conductor-csharp (>= 3.0.0-rc2)
- Newtonsoft.Json (>= 13.0.3)
- System.Text.Json (>= 9.0.9)
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 |