Semantic Skills Reference

Semantic Skills Reference

The full catalogue of semantic skills supported by the LinkSoul platform. When the LLM/VLM inside a passive callback decides to fire a skill, dispatch it via response.onSkill(eventId, itemId, skillType, skillName, skillParam); the JSON in the Semantics column below is what goes into skillParam.

Note: the table below is the platform's full designed capability set. Different robot models / firmware versions may support different subsets. The SDK side does not need to know what the target robot supports — just dispatch whatever the 语义理解 resolves to. The LinkSoul platform filters by model and skill list:

  • Hit & supported on-device → dispatched as-is
  • Hit but not supported on-device → the platform returns unknown to the device, which treats it as "skill not supported"

When to dispatch a skill

A skill is one possible outcome branch of 语义理解 classification on the ASR text — not every turn needs one:

  1. Get the ASR final text (the Asr2* callbacks receive it directly as text; the Audio2* / AudioVideo2* callbacks finish ASR internally at flag=2).
  2. Run 语义理解 / intent classification on the text on your business side. The result falls into one of three branches:
    • Skill (action / movement / expression / status / confirmation / Q&A): pick skillType + skillName from the table, build skillParam, and call response.onSkill(...). For multi-intent turns you may emit several onSkill calls — use a distinct itemId per intent.
    • Plain chat: reply with the normal LLM/VLM text stream (optionally precede with response.onInterrupt to barge in).
    • Rejected (false wake, noise, invalid query, ...): send nothing back — do not call any response.on* method. No skill, no onInterrupt, no LLM/VLM output.

For the full trigger walkthrough and code template, see Passive Callbacks Guide - When to dispatch a skill.

Action commands

Greeting / interaction

Sub-skillSemantics
Cheer (default right hand){"action":"cheer"}
Cheer with left hand{"action":"cheer","hand":"left"}
Cheer with right hand{"action":"cheer","hand":"right"}
Cheer with both hands{"action":"cheer","hand":"both"}
Blow a kiss{"action":"blow_kiss"}
Blow a kiss with left hand{"action":"blow_kiss","hand":"left"}
Blow a kiss with right hand{"action":"blow_kiss","hand":"right"}
Wave / say hi{"action":"wave_hands"}
Wave with left hand{"action":"wave_hands","hand":"left"}
Wave with right hand{"action":"wave_hands","hand":"right"}
Wave with both hands{"action":"wave_hands","hand":"both"}
Wave in front of chest{"action":"chest_wave_hands"}
Chest wave with left hand{"action":"chest_wave_hands","hand":"left"}
Chest wave with right hand{"action":"chest_wave_hands","hand":"right"}
Handshake / wiggle a hand{"action":"handshake"}
Left-hand handshake{"action":"handshake","hand":"left"}
Right-hand handshake{"action":"handshake","hand":"right"}
Raise hand{"action":"raise_hand"}
Raise left hand{"action":"raise_hand","hand":"left"}
Raise right hand{"action":"raise_hand","hand":"right"}
Salute (right hand){"action":"salute"}
High-five{"action":"high_five"}
Left high-five{"action":"high_five","hand":"left"}
Right high-five{"action":"high_five","hand":"right"}
Double high-five{"action":"high_five","hand":"both"}
Clap / applaud{"action":"clap"}
Thumbs up (right hand default){"action":"thumbs_up"}
Left-hand thumbs up{"action":"thumbs_up","hand":"left"}
Right-hand thumbs up{"action":"thumbs_up","hand":"right"}
Double thumbs up{"action":"thumbs_up","hand":"both"}
Fist bump (right hand default){"action":"fist_bump"}
Left-hand fist bump{"action":"fist_bump","hand":"left"}
Right-hand fist bump{"action":"fist_bump","hand":"right"}
Heart shape with both hands{"action":"hand_heart"}
Heart with left hand{"action":"hand_heart","hand":"left"}
Heart with right hand{"action":"hand_heart","hand":"right"}
Victory sign{"action":"victory_sign"}
Left-hand V sign{"action":"victory_sign","hand":"left"}
Right-hand V sign{"action":"victory_sign","hand":"right"}
Double V sign{"action":"victory_sign","hand":"both"}
Cup-fist salute{"action":"cup_fist"}
Hug{"action":"hug"}
Bow{"action":"bow"}
Goodbye{"action":"goodbye"}
Hands down / reset{"action":"hands_down"}

Head / torso

Sub-skillSemantics
Nod{"action":"nod"}
Shake head{"action":"shake_head"}
Look forward{"action":"look_forward"}
Look left{"action":"look_left"}
Look right{"action":"look_right"}
Look backward{"action":"look_backward"}
Level left arm{"action":"level_arm","hand":"left"}
Level right arm{"action":"level_arm","hand":"right"}
Level both arms{"action":"level_arm","hand":"both"}
Cross arms{"action":"cross_arms"}
Twist torso left{"action":"twist_left"}
Twist torso right{"action":"twist_right"}

Idle / emotive

Sub-skillSemantics
Think{"action":"think"}
Scratch head{"action":"scratch_head"}
Look around{"action":"look_around"}
Scratch butt{"action":"scratch_butt"}
Sad{"action":"sad"}
Sympathy{"action":"sympathy"}
Body shake{"action":"body_shake"}
Hip twist{"action":"hip_twist"}
Leg swing while seated{"action":"leg_swing"}
Spin in place{"action":"spin"}
Dynamic light wave{"action":"dynamic_light_wave"}

Posture changes

Sub-skillSemantics
Crouch{"action":"crouch"}
Stand up from crouch{"action":"stand_up"}
Sit on a chair{"action":"sit_down","place":"chair"}
Sit on the ground{"action":"sit_down","place":"ground"}

Performance

Sub-skillSemantics
Dance{"action":"dance"}
Tai chi performance{"action":"taichi"}
Photo pose{"action":"photo_pose"}
N-shot photo pose{"action":"photo_pose","count":3}
Basketball shoot{"action":"shoot_basket"}

Movement commands

Sub-skillSemantics
Step forward{"movement":"move_forward"}
Keep moving forward (needs confirmation){"movement":"move_forward","continuous":true}
Move forward 10m{"movement":"move_forward","meter":10}
Move forward/back/left/right N steps{"movement":"move_forward","step":"xxx"} etc.
Step backward (needs confirmation){"movement":"move_backward"}
Keep moving backward (needs confirmation){"movement":"move_backward","continuous":true}
Move backward 10m (needs confirmation){"movement":"move_backward","meter":10}
Step left (needs confirmation){"movement":"move_left"}
Keep moving left (needs confirmation){"movement":"move_left","continuous":true}
Move left 10m (needs confirmation){"movement":"move_left","meter":10}
Step right (needs confirmation){"movement":"move_right"}
Keep moving right (needs confirmation){"movement":"move_right","continuous":true}
Move right 10m (needs confirmation){"movement":"move_right","meter":10}
Turn around{"movement":"turn_around"}
Turn left{"movement":"turn_left"}
Turn right{"movement":"turn_right"}
Turn backward{"movement":"turn_backward"}
Turn left by angle{"movement":"turn_left","angle":30}
Turn right by angle{"movement":"turn_right","angle":30}
Run{"movement":"run"}
Walk/run faster{"movement":"faster"}
Walk/run slower{"movement":"slower"}
Go to the photo spot{"movement":"go_to_spot","target":"photo"}

Expression commands

Sub-skillSemantics
Smile{"expression":"smile"}
Laugh{"expression":"laugh"}
Cry{"expression":"cry"}
Sad{"expression":"sad"}
Bored{"expression":"bored"}
Thinking expression{"expression":"think"}
Sleep{"expression":"sleep"}
Confused / surprised{"expression":"confused"}
Anger{"expression":"anger"}
Whiny{"expression":"whiny"}
Sympathy{"expression":"sympathy"}
Admire eyes{"expression":"admire_eyes"}
Close eyes{"expression":"close_eyes"}
Open eyes{"expression":"open_eyes"}
Blink{"expression":"blink"}
Heart eyes{"expression":"heart_eyes"}
Sparkle eyes{"expression":"sparkle_eyes"}
Roll eyes{"expression":"roll_eyes"}
Flirt eyes{"expression":"flirt_eyes"}

Status control

Sub-skillSemantics
Freeze / stop walking{"status":"freeze"}
Hush / exit{"status":"hush"}

Second-step confirmation

Sub-skillSemantics
Yes{"confirmation":"yes"}
No{"confirmation":"no"}

Skill Q&A

Sub-skillSemantics
Sing a children's song{"action":"sing","genre":"children"}
Sing a specific song{"action":"sing","song":"Twinkle"}
Sing songs by an artist{"action":"sing","song":"songs by Jay Chou"}
Play music / next song{"action":"play_music"}
Play rap{"action":"play_music","genre":"rap"}
Play children's songs{"action":"play_music","genre":"children"}
Play a specific song{"action":"play_music","song":"Twinkle"}
Play songs by an artist{"action":"play_music","song":"songs by Jay Chou"}

Dispatch example

python
# Inside your PassiveCallback subclass `on_request`:
item_id = IdGenerator.generate_item_id()

# Build skill_param — keys/values match the "Semantics" column above
skill_param = (
    AgentParam.create()
    .set_string("movement", "move_forward")
    .set_integer("meter", 10)
)

response.on_skill(event_id, item_id, "movement", "move_forward", skill_param)

These skills can also be dispatched via Task Flow — embed action_group entries with the matching action_type / config in the payload, and the flow will execute them sequentially or in parallel.