What are slots?

When building AI agents, you need "slots," or input values, to successfully execute a plugin. These can be collected from the user or they can be data stored in your AI assistant's memory. For example...

  • If you're building a plugin to close a Jira ticket, you might need a ticket slot.
  • If you're building a plugin to rename a Slack channel, you might a channel slot and a new_name slot.
  • If you're building a plugin to submit a Workday PTO request, you might need a num_days slot.

Slots Key Components

Slot Naming and Descriptions

Slot names & descriptions are used by your Copilot to reason about your slots.

New Product Experience using Agent Studio (post-April 2025)

Agent Studio > Plugin Workspace

Old Product Experience using Compound Actions (pre-April 2025)

Agent Studio (Classic) > Plugin Workspace

Best PracticeGood ExamplesBad Examples
Be as descriptive as possiblename: "ticket_comment"
description: "Collect user's comment for their salesforce ticket. Do NOT summarize the comment. Pass the user input verbatim."
name: "slot1"
description:-
Make slot names semantically uniquename: "comment_for_approval"
description: "Collect user's comment for approving their request."

name: "comment_for_rejection"
description: "Collect user's comment for rejecting their request."
name: "slot1"
description:-

name: "slot2"
description:

Tip: Using Slot Descriptions to control AI Assistant behavior

Slot descriptions can be used to clarify AI Assistant slot inference and formatting behavior. Here are examples:

  • Clarify how to format slot before passing it to APIs (e.g. Timestamp should follow ALWAYS the following format: YYYY-MM-DDT23:59:59.")
  • Clarify how to set default slot values (e.g. If the user doesn't specify start_date, set the start_date as the current date & time.)
  • Clarify disclaimers and help text for slot (e.g. Present user a disclaimer that start_date should NOT be in the past)
  • Clarify how slot should be inferred by Copilot (e.g. Do NOT infer the country_code from user's profile. Always ask the user explicitly for it)

Slot Data Types

This will determine the data type of the value that is passed into your Plugin.
There are two categories of slot types:

  1. Built-in Data Types
    • string - text
    • integer - valid integers
    • number - floating point numbers
    • boolean - true / false
    • User - another employee in your organization.
      • Uses built in resolver strategy
  2. Custom Data Types

Slot Validation Policy

🚧

This feature is only supported in Agent Studio

This is not a feature that is or will be supported in Agent Studio (Classic)

Every slot can have validate the value that is collected. This uses Moveworks DSL language.

For example, if you if you have a slot called due_date, you may only want to collect a date value that is today or later. This condition would be: $PARSE_TIME(value) > $TIME()

Slot Inference Policy

🚧

This feature is only supported in Agent Studio

This is not a feature that is or will be supported in Agent Studio (Classic)

Slot Inference Policy influences how the AI Assistant collects the values needed for Plugin execution. There are 2 options:

  1. Infer slot value if available: This tells the AI Assistant to infer the value of a slot from conversation context, if available.
  2. Always explicitly ask for slot: This tells the AI Assistant to always ask the end user for the value.

Slot Cardinality

🚧

This feature is only supported in Agent Studio (Classic)

This is not a feature that is currently support in Agent Studio. We plan on adding support for List[type] in H1 2025.

Every slot can either be a list or a single record. You set this when you pick the List[type] vs [type] in the dropdown.

Users can specify lists however they see fit in the conversation.

  • "1 and 2 and 3"
  • "1, 2, 3"
  • "[1, 2, 3]"
  • "all the numbers 1-3"

Resolver Strategies

🚧

This feature is only supported in Agent Studio

This is not a feature that is or will be supported in Agent Studio (Classic)

Resolver strategies instructs your AI assistant on how it should convert the user’s version of the value (e.g. “my blog task”) to a Data Type the system wants (e.g. Asana task object). Read more about our unique Slot Resolver technology.

Any slot can inherit the resolver strategy of its data type or you can create a in-line resolver strategy in your plugin. Read more on how to configure Resolver Strategies

How do I configure slots?

Agent Studio

Slots will be explicitly defined in the Plugin Lowcode Editor.

Agent Studio (Classic)

Slots are implicitly created from a Compound Action's Input Variables when it is promoted to a Plugin.

⚠️ Note: There is no support for Slot Validation Policies, Slot Inference Policies, or Resolvers Strategies in these editors.


How does the AI agent ask for slots?

The AI agent will read your slot configuration and determine the best way to ask the user for the information.