-
Notifications
You must be signed in to change notification settings - Fork 1
Backseat Skills
A backseat skill is a skill that stays quiet during a think cycle if another skill already answered in that cycle. It's for things that normally respond on every input — a chatbot, an LLM — so they don't tack junk onto a more specific answer.
You ask: "what is the time"
A LocalTimeSkill fires and gives you the correct answer:
4:15 PM
Without backseat behavior, a chatbot skill would also fire on that same input. It doesn't actually know the time, so it just chatters something irrelevant:
Time flies, doesn't it? What are you up to?
You asked for the time, not small talk.
With backseat behavior, the chatbot skill sits out that cycle entirely. You just get:
4:15 PM
This pattern applies anywhere a skill normally always responds but should step aside when something more relevant already handled the input — for example, a sound-effects skill overriding a TTS skill.
A backseat skill only sits out if a skill in its own lobe fired that cycle.
The LocalTimeSkill lives in the logic lobe, so it has no effect on a sound-effects skill living in the hardware lobe. Different lobes never suppress each other.
One line, set in the skill's own class:
self.set_skill_type(2) # 2 = backseat / continuousThat's the entire setup — there's no separate registration path. Add and remove it exactly like any other skill:
brain.add_skill(skill)
brain.remove_skill(skill)Brain reads the skill's own type and lobe internally and handles the rest.