Slot Resolvers

Resolving natural language into business objects

What are slot resolvers?

Slot resolvers convert natural language into data types. The way that users will reference your business objects will seldom match how they're stored in business systems.

For example...

  • "Tomorrow's Standup" is a GoogleCalendarEvent with ID = 4s567d8s908f87654sa678ds
  • "Jamie" is a User with ID = 9e107d9d-372b-4ac9-b4e9-0fbccd3029ab

We purpose-built Slot Resolvers to solve this problem. Plugins built using slot resolvers will perform substantially better when deployed to production.

How do they work?

Retrieval

Slot resolvers are set up using data types. Developers specify a data type & the AI Agent will call APIs or other plugins to find records that match the data type.

Set up data types (right) and Copilot resolves them from natural language (left)

Set up data types (right) and Copilot resolves them from natural language (left)

Disambiguation

When the Copilot finds multiple possible matches for a business object, it presents them (with citations) so the user can pick the right one.

State Management

The underlying business object is stored in our Agentic AI memory tracker – that way you can be confident that LLMs will not corrupt or mix up any IDs from previous turns in the conversation.

Setup & Usage

Slot Resolvers get set up as part of the Slot Definition. For example, you would declare a List[User] data type as a slot (e.g. users_to_modify), and then reference it in a compound action like this

steps:
	- action:
  		action_name: add_users_to_group
      input_args:
      	user_emails: 'data.users_to_modify.$MAP(x => x.email_addr)'