For the complete documentation index, see llms.txt. This page is also available as Markdown.

Agent

Configure an agent to perform a specific part of the flow, based on the system prompt. The flow continues through one of the configured goals. If that goal contains one or more slots the agent collects these and adds them to the variable context for further use in the flow.

Parameters

Setting
Description

Name

The meaningful name for the agent.

System prompt

Specific instructions that describe the job of this agent. E.g. Ask caller for zip code

Allows variable substitution by placing a variable name between curly brackets e.g. {{currentTime}}.

Memory identifier

The meaningful name to store the interaction between this agent and the user. The interaction is shared with subsequent agents that have a matching memory identifier.

Iteration limit

Number of times the user can interact with the agent. If the iteration limit is met before the agent reaches a goal the fallback exit is chosen.

Single turn

If checked, the agent is forced to reach a goal within a single turn.

Take initiative

If checked, the agent will start the conversation instead of waiting for user input.

Goal

The next step the agent takes when the instructions from the goal description are met.

Slot

Contains a meaningful name of the slot for this goal, e.g. zipcode and a description for instructions about the slot. E.g. format the input to 4 numbers and 2 capital letters joined

Configured slots are returned by the agent and added to the variable context

Fallback

It is the default safety exit of an Agent node. It is the path the agent takes when it cannot confidently or safely fulfill a request.

Error

Error path is triggered when the platform or a component fails unexpectedly, not by agent reasoning.

Learn how the agent node works in the simple flow tutorial.

By design, Agents can always collect slots of type Number with Dual-Tone Multi-Frequency (DTMF) input when a flow is executed on the voice channel. This allows users to fallback on DTMF input when they're in a loud environment but need to provide a numeric value, like an order number.

Guidelines for effective system prompts

Using effective system prompts in the agent is crucial for creating user friendly and consistent flows. When writing these system prompts it's important to use the following structure

  1. Describe the type of agent you're looking for, this gives the agent context and character. The behavior of the agent differs based on this information. There's a difference between talking to Captain Jack Sparrow or Professor Snape.

    • You are a receptionist assistant for Concentrix Airlines.

    • You are a weather agent for Concentrix Meteo who can interpret and answer question about a weather forecast.

  2. Describe what the agent has to do. This gives the agent the information it needs to perform the task. Be concise and descriptive and keep the amount of tasks low. If the number of tasks becomes to high the agent will not perform at its best, it's best to split the agent at this point to improve the consistency of the flow.

    • You need to determine the intent of the user and direct them to the next step.

    • Start by providing tomorrow's maximum and minimum temperature and ask if the user wants more information.

  3. Add boundaries to the agent. This ensures the agent sticks to the task that is described above. Not including this section results in unwanted behavior.

    • you can't answer any other questions.

    • you can only use the provided data.

    • you always respond in English.

Learn more about the agent node in the Simple flow tutorial.

Template Interpolation

Text fields (Say, Agent, Menu prompts) use {{expression}} interpolation:

Syntax

Purpose

Example

{{expression}}

Variable lookup or expression

Hello {{name}}, you have {{items.length}} items

  • {{expression}} — evaluated by the Expression Engine, matches the next }}

  • Simple variable names like {{name}} resolve to a variable lookup

  • Complex expressions like {{items.filter(x => x.active).length}} are fully evaluated

  • The double-brace delimiter avoids collision with JSON content in system prompts

  • Non-printable results (objects, arrays) are JSON-stringified; null/undefined produce empty string

  • Errors preserve the original text and log a warning

What Template Interpolation Means in an Agent Node and Say Node

  • Configure an Agent Node

  • Inside the System Prompt field, you typed: Testing {{

  • As soon as {{ is typed, a template helper dropdown appears

  • The dropdown lists:

    • Variables (var boolean, var number, var userEndpoint, etc.)

    • Slots from Test (agent node) (example tooltip: Variable – boolean)

    • Built‑in functions (fn $addDays, fn $format, fn $now, etc.)

    • JS native objects/functions (Date, Math, parseInt, String, etc.)

This confirms that the System Prompt supports template interpolation using {{ }} syntax, with access to typed variables and runtime helpers.

Using the memory identifier

The memory identifier allows the flow to maintain context between agents, to provide a more streamlined and personalized experience.

Configure the same memory identifier name in all agent nodes where the interaction between this agent node and the user needs to be shared with subsequent agent nodes to provide a more streamlined experience.

The example below shows the difference in flow experience when maintaining context between agents with a memory identifier.

Last updated

Was this helpful?