Skip to main content

Multi Skills / Dynamic Skills

Multi Skills or Dynamic Skills are a way to give your agent the ability to perform multiple flows, each with its own context + tools.

How it works

First you define a base prompt which defines the agent persona:
  • Who the agent is
  • Which company is it working for
  • Identity + language
  • In scope + out of scope rules
Then you define the skills. Each skill consists of:
  • A prompt which defines what to do when using said skill
  • A list of tools to help accomplish said task
The agent will call the switch_skill(skill_name) tool to switch to the desired skill when necessary.

Under the hood

Under the hood, each time the agent calls switch_skill(skill_name), we update the underlying system prompt of ‘gpt-realtime’ to the prompt of the desired skill + the tools of the desired skill. The agent does remember the conversation history it had before switching the skill.

Why is it better?

Due to the fact that each prompt is focused on a single task, the prompt is shorter and you can fit more examples in the prompt. This leads to much better instruction following.

Naming tools in skills

Try to namespace your tools. For example, if you have a skill called “technician” which is supposed to help with booking a technician, you should name your tools accordingly:
  • technician_book()
  • technician_cancel()
  • technician_rebook()

When not to use multi skills

For example if you have a long QnA document, it is better to write an answer(question) tool that will answer the question based on the QnA document, than making a skill containing the QnA document.

Base tools

Base tools are tools that are always available to the agent no matter which skill it is in.