Skip to main content
A task is a step that saves values to the call state. A task group runs several tasks in order. The rules live in the core, so LiveKit and Pipecat behave the same. Use it when:
  • The call must collect several values in a set order, like a name, a service and a day.
  • A value must be confirmed before a tool uses it, like a booking.
  • A step needs its own short prompt and its own tools.
  • You want a broken flow to fail at startup, not in the middle of a call.

Choose a shape

What it handles for you

Build it step by step in the salon tutorial: Book step by step.

In this section

Your first task

Define one task, check it with TaskPlan and run it on each framework.

Groups

Run several tasks in order, and decide what follows.

How a step ends

The finish check, a held finish, going back and the empty-reply retry.

Held saves

What happens to a save made before the caller spoke.

Reply and confirm

Fixed lines for a tool result, and a question before a tool runs.

What the model reads

History, small results and placeholder names.

Tasks reference

Every argument of every task class.

Unmute tasks

How agent.yaml declares the same tasks and groups.