What are Workflows?

Workflows are LLM-native sequences of actions that let your Duckie agent perform tasks in a predictable, automated way. Using workflows, you can fully customize your agent to fit your company’s needs and start automating repetitive customer support processes.

Through workflows, you can:

  1. Customize the response logic of your agent
  2. Modify the decision behavior
  3. Call Agent Tools to automate processes

How do Workflows Work?

Duckie’s workflows are comprised of three Node types:

  1. Action nodes perform specific actions, such as generating a response, searching your knowledge base, or calling an agent tool
  2. Conditional nodes determine which task to perform next by splitting the workflow path based on specific conditions.
  3. Workflow nodes call other workflows and are used to better manage sub-tasks within your support process.

Creating a Workflow

Initialization

The first thing to do when creating a new workflow is to navigate to the Workflows tab on the Duckie web app. Once there, simply press ADD.

Creating a new node

To create a new node, drag an edge from a node and select from the available node types.

Configuring a Conditional Node

Conditional nodes are comprised of If, Else If, and Else conditions. Each condition has a potential connection to a subsequent node.

There are two condition types:

  1. LLM Conditions use an LLM to determine whether a condition is met or not
  2. Comparator Conditions use deterministic comparisons

LLM Condition

To create an LLM Condition, select the LLM Condition type, complete the Prompt field, and add any necessary Inputs. To learn more about inputs, see the Node Inputs section.

Comparator Condition

To create a Comparator Condition, select the Comparator Condition and fill in the following fields:

  1. Input: The context that the comparator will use to compare
  2. Operator: The operator used for the comparisson (e.g. Equals, Contains, etc.)
  3. Value: The value to compare the input to

Coinfiguring an Action Node

Action nodes are used to perform specific actions / tasks within your workflow.

A number of “out-of-the-box” actions are available, including the core Duckie actions that are used as the base building-blocks for workflows. These include:

  1. Duckie Responder: Sends a message to the end-user. This can be LLM generated or pre-defined.
  2. Duckie Knowledge Search: Performs a search of your agent’s knowledge base to find information.
  3. Duckie Escalator: Sends an escalation message to your support team, as well as an informational message to the end-user. This can be LLM generated or pre-defined.
  4. Duckie LLM Call: Performs an LLM call given your provided prompt and context. This can then be used as the input to subsequent actions.

Action Node Parameters

Each action node will have a list of parameters that are used to perform the action. When you select an Action, you will see a list of available parameters. Each parameter has inputs (learn more), which are used as inputs to the parameter.

Configuring a Workflow Node

Workflow nodes call child workflows. They are used to separate workflow logic into modularized components which can then be referenced in multiple places.

To create a workflow node, select the Workflow Node type, and select the child workflow from the dropdown.

Node Inputs

Node inputs are used to reference information within a node.

Memory

Memory inputs are used to access details of a specific agent run. Available options are:

  1. Conversation: Contains the current Conversation
  2. Guidance: Contains any Guidance items specific to the run (learn more here)
  3. Run history: Contains execution information about the run, such as previous nodes

Node Ouput

The Node Output references the outputs of previous nodes. For example, you may have an LLM Call action node that you want to use as an input to a subsequent node

Value

Value lets you input a value that will be used deterministically.

LLM Extract

The LLM Extract uses an LLM to generate an input value based on the context provided to it. For example, you may use LLM Extract with the conversation as context as the input to a Subject field.