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
- A prompt which defines what to do when using said skill
- A list of tools to help accomplish said task
switch_skill(skill_name) tool to switch to the desired skill when necessary.
Under the hood
Under the hood, each time the agent callsswitch_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 ananswer(question) tool that will answer the question based on the QnA document,
than making a skill containing the QnA document.