A voice ability that tells dad jokes on demand. Uses the free icanhazdadjoke.com API — no API key required.
- Greets the user and asks if they want a joke
- Fetches random dad jokes from icanhazdadjoke.com
- Tells the joke via text-to-speech
- Loops — user can request more jokes or say "stop" to exit
- Handles ambiguous input via LLM (e.g., "I'm good" → exit)
- "dad joke"
- "tell me a joke"
- "joke time"
- "dad jokes"
- "make me laugh"
No setup required. The ability uses icanhazdadjoke.com, which is free and does not require an API key.
- User triggers the Ability with a hotword
- Dad Joke Teller greets and asks if they want a joke
- User says yes or asks for another
- Ability fetches a joke from the API and speaks it
- Asks "Want another? Say stop when you're done."
- Repeats until user says stop, exit, done, etc.
speak()— Text-to-speech outputuser_response()— Listen for user inputtext_to_text_response()— LLM intent classification for ambiguous inputresume_normal_flow()— Return to Agent
User: "Tell me a joke" AI: "Welcome to Dad Joke Time. Want a joke? Say stop when you're done." User: "Yes" AI: "Why don't scientists trust atoms? Because they make up everything. Want another? Say stop when you're done." User: "Another" AI: [next joke] User: "Stop" AI: "Alright, no more jokes. Talk to you later."