# WorkflowKind

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/api/tracon.workflowkind/
> Summary: WorkflowKind: Represents the built-in workflow patterns that can be defined through the UI.

<div class="api-provenance">Namespace Tracon · Assembly <code>Tracon.Abstractions.dll</code></div>

Represents the built-in workflow patterns that can be defined through the
UI.

```csharp
[JsonConverter(typeof(JsonStringEnumConverter<WorkflowKind>))]
public enum WorkflowKind
```

## Fields

`Concurrent = 1` 

Agents run at the same time; results are merged.

`GroupChat = 3` 

A manager distributes turns among participating agents.
[WorkflowDefinition.MaxIterations](/api/tracon.workflowdefinition/#Tracon_WorkflowDefinition_MaxIterations) limits the turn count.

`Handoff = 2` 

The first agent starts the work and hands off to another agent when
needed. The model itself decides on the handoff.

`Magentic = 4` 

The manager agent builds a plan, tracks progress, and replans when
needed. [WorkflowDefinition.ManagerAgentName](/api/tracon.workflowdefinition/#Tracon_WorkflowDefinition_ManagerAgentName) is required.

`Sequential = 0` 

Agents run in sequence; each one's output is the next one's input.

## Remarks

This list is deliberately **closed**. A workflow defined
through the UI only wires together agents from the catalog; it produces
no new behavior. A free-form graph (custom `Executor` types) can
only be defined in code. The code-only tools rule states that tools are only
defined in code".

Written as a **name** in JSON (`"Sequential"`), not a
number. Also stored as a name in the database: `workflows.definition`
is a JSON document, and making old rows unreadable if the value order
changes is not acceptable.
