Background
PR #1061 fixed #1058 by promoting convert_currency from run_intent's 50+ value enum to a standalone @Tool. The same 80-char description truncation in SkillRegistry.buildNativeDeclarations() hides other conversion skills from the model.
Affected intents
convert_units — "convert 5 miles to km", "how many MB in 2GB". Model won't find it in run_intent.
convert_cooking_measure — "2 cups flour in grams", "3 tbsp butter to ml". Same pattern.
Pattern (from #1061)
- Create
ConvertUnitsSkill / ConvertCookingMeasureSkill implementing Skill
- Add
@Tool convertUnits(...) / @Tool convertCookingMeasure(...) in KernelAIToolSet
- Register via
@Binds @IntoSet in SkillsModule
- Delegate to existing
NativeIntentHandler service methods
Not included
calculate_arithmetic — Gemma-4 can do math internally; tool only needed for complex functions
- Device actions (toggle, play, navigate) — model naturally reaches for
run_intent for these
Related
Background
PR #1061 fixed #1058 by promoting
convert_currencyfromrun_intent's 50+ value enum to a standalone@Tool. The same 80-char description truncation inSkillRegistry.buildNativeDeclarations()hides other conversion skills from the model.Affected intents
convert_units— "convert 5 miles to km", "how many MB in 2GB". Model won't find it in run_intent.convert_cooking_measure— "2 cups flour in grams", "3 tbsp butter to ml". Same pattern.Pattern (from #1061)
ConvertUnitsSkill/ConvertCookingMeasureSkillimplementingSkill@Tool convertUnits(...)/@Tool convertCookingMeasure(...)inKernelAIToolSet@Binds @IntoSetinSkillsModuleNativeIntentHandlerservice methodsNot included
calculate_arithmetic— Gemma-4 can do math internally; tool only needed for complex functionsrun_intentfor theseRelated
convert_currency(fixed in feat(#1058): standalone convertCurrency tool with ECB-backed rates #1061)