语义技能参考

语义技能参考

灵心平台支持的语义技能集合(全集)。当被动回调里 LLM/VLM 判断需要执行某个技能时, 通过 response.onSkill(eventId, itemId, skillType, skillName, skillParam) 下发; skillParam 内的 JSON 字段即为下表"语义"列中的键值对。

注意:下表是平台设计能力全集,机器人端侧不同型号 / 不同系统版本支持的子集可能存在差异。 二开 SDK 侧无需关心端侧具体能力,按语义理解结果无脑下发即可—— 灵心平台会根据目标机器人型号与技能清单做过滤:

  • 命中且端侧支持 → 正常下发执行
  • 命中但端侧不支持 → 平台向端侧返回 unknown,端侧按"不支持该技能"处理

什么时候返回技能

技能是 ASR 文本经语义理解分类后的一种"结果分支"——并非每次对话都要返回:

  1. 拿到 ASR final 文本(Asr2* 类回调直接拿到 textAudio2* / AudioVideo2* 类回调在 flag=2 时拿到内部识别完的 final 文本)。
  2. 业务侧对文本做语义理解 / 意图分类,结果分三类:
    • 技能(动作 / 移动 / 表情 / 状态控制 / 二次确认 / 技能问答): 按下表选择 skillType + skillName,组装 skillParam,调用 response.onSkill(...) 下发; 多意图场景可对每个意图各发一次 onSkill(建议各意图使用独立 itemId)。
    • 普通对话:走 LLM/VLM 文本回复(可选先 response.onInterrupt 打断当前播报)。
    • 拒识(误唤醒、噪音、无效查询等):完全不应答,不调用任何 response.on* 方法, 既不返回技能,也不调用 onInterrupt,更不返回 LLM/VLM 任何结果。

详细的触发时序与代码模板见 被动交互指南 - 技能返回时机

动作指令(action)

问候 / 互动

子功能语义
加油(默认右手){"action":"cheer"}
左手加油{"action":"cheer","hand":"left"}
右手加油{"action":"cheer","hand":"right"}
双手加油{"action":"cheer","hand":"both"}
飞吻{"action":"blow_kiss"}
左手飞吻{"action":"blow_kiss","hand":"left"}
右手飞吻{"action":"blow_kiss","hand":"right"}
打个招呼 / 挥手{"action":"wave_hands"}
左手打招呼 / 挥左手{"action":"wave_hands","hand":"left"}
右手打招呼 / 挥右手{"action":"wave_hands","hand":"right"}
双手挥手{"action":"wave_hands","hand":"both"}
胸前挥手{"action":"chest_wave_hands"}
胸前挥左手{"action":"chest_wave_hands","hand":"left"}
胸前挥右手{"action":"chest_wave_hands","hand":"right"}
动动手 / 握手{"action":"handshake"}
动动左手 / 左手握手{"action":"handshake","hand":"left"}
动动右手 / 右手握手{"action":"handshake","hand":"right"}
举手{"action":"raise_hand"}
举起左手{"action":"raise_hand","hand":"left"}
举起右手{"action":"raise_hand","hand":"right"}
右手敬礼{"action":"salute"}
击掌{"action":"high_five"}
左手击掌{"action":"high_five","hand":"left"}
右手击掌{"action":"high_five","hand":"right"}
双手击掌{"action":"high_five","hand":"both"}
鼓掌 / 拍手{"action":"clap"}
点赞(默认右手){"action":"thumbs_up"}
左手点赞{"action":"thumbs_up","hand":"left"}
右手点赞{"action":"thumbs_up","hand":"right"}
双手点赞{"action":"thumbs_up","hand":"both"}
碰拳(默认右手){"action":"fist_bump"}
左手碰拳{"action":"fist_bump","hand":"left"}
右手碰拳{"action":"fist_bump","hand":"right"}
比心(双手){"action":"hand_heart"}
左手比心{"action":"hand_heart","hand":"left"}
右手比心{"action":"hand_heart","hand":"right"}
比耶{"action":"victory_sign"}
左手比耶{"action":"victory_sign","hand":"left"}
右手比耶{"action":"victory_sign","hand":"right"}
双手比耶{"action":"victory_sign","hand":"both"}
作揖{"action":"cup_fist"}
拥抱{"action":"hug"}
鞠躬{"action":"bow"}
告别{"action":"goodbye"}
把手放下(手部复位){"action":"hands_down"}

头部 / 躯干

子功能语义
点头{"action":"nod"}
摇头{"action":"shake_head"}
往前看{"action":"look_forward"}
往左看{"action":"look_left"}
往右看{"action":"look_right"}
往后看{"action":"look_backward"}
左手平举{"action":"level_arm","hand":"left"}
右手平举{"action":"level_arm","hand":"right"}
双手平举{"action":"level_arm","hand":"both"}
双手打叉{"action":"cross_arms"}
向左转腰、逆时针转腰{"action":"twist_left"}
向右转腰、顺时针转腰{"action":"twist_right"}

灵动 / 情绪化

子功能语义
思考{"action":"think"}
挠头{"action":"scratch_head"}
东张西望{"action":"look_around"}
抓屁股{"action":"scratch_butt"}
悲伤{"action":"sad"}
同情{"action":"sympathy"}
身体摇摆{"action":"body_shake"}
扭屁股{"action":"hip_twist"}
坐下晃腿{"action":"leg_swing"}
转圈圈{"action":"spin"}
动感光波{"action":"dynamic_light_wave"}

体态切换

子功能语义
蹲下{"action":"crouch"}
蹲下后站起来{"action":"stand_up"}
坐到椅子上{"action":"sit_down","place":"chair"}
坐到地面{"action":"sit_down","place":"ground"}

表演

子功能语义
跳舞{"action":"dance"}
武术表演(太极){"action":"taichi"}
摆 pose / 拍照动作{"action":"photo_pose"}
N 连拍{"action":"photo_pose","count":3}
投篮动作{"action":"shoot_basket"}

移动指令(movement)

子功能语义
往前走一点 / 两步{"movement":"move_forward"}
往前一直走(需二次确认){"movement":"move_forward","continuous":true}
往前走 10m{"movement":"move_forward","meter":10}
往前/后/左/右走 N 步{"movement":"move_forward","step":"xxx"}
往后走(需二次确认){"movement":"move_backward"}
往后一直走(需二次确认){"movement":"move_backward","continuous":true}
往后走 10m(需二次确认){"movement":"move_backward","meter":10}
往左走(需二次确认){"movement":"move_left"}
往左一直走(需二次确认){"movement":"move_left","continuous":true}
往左走 10m(需二次确认){"movement":"move_left","meter":10}
往右走(需二次确认){"movement":"move_right"}
往右一直走(需二次确认){"movement":"move_right","continuous":true}
往右走 10m(需二次确认){"movement":"move_right","meter":10}
转身{"movement":"turn_around"}
往左转身{"movement":"turn_left"}
往右转身{"movement":"turn_right"}
向后转{"movement":"turn_backward"}
向左转 #指定角度#{"movement":"turn_left","angle":30}
向右转 #指定角度#{"movement":"turn_right","angle":30}
跑步{"movement":"run"}
走快点 / 跑快点{"movement":"faster"}
走慢一点 / 跑慢一点{"movement":"slower"}
去拍照区域拍照{"movement":"go_to_spot","target":"photo"}

表情指令(expression)

子功能语义
微笑{"expression":"smile"}
大笑{"expression":"laugh"}
哭泣{"expression":"cry"}
伤心 / 难过{"expression":"sad"}
无聊{"expression":"bored"}
表演思考的表情{"expression":"think"}
睡着{"expression":"sleep"}
疑惑 / 震惊{"expression":"confused"}
愤怒{"expression":"anger"}
撒娇{"expression":"whiny"}
同情{"expression":"sympathy"}
崇拜 / 赞赏眼{"expression":"admire_eyes"}
闭眼{"expression":"close_eyes"}
睁开眼{"expression":"open_eyes"}
眨眨眼{"expression":"blink"}
爱心眼{"expression":"heart_eyes"}
眼睛放电{"expression":"sparkle_eyes"}
翻白眼{"expression":"roll_eyes"}
抛媚眼{"expression":"flirt_eyes"}

状态控制(status)

子功能语义
停止行走 / 停下{"status":"freeze"}
退出{"status":"hush"}

二次确认(confirmation)

子功能语义
确认{"confirmation":"yes"}
取消{"confirmation":"no"}

技能问答

子功能语义
唱儿歌{"action":"sing","genre":"children"}
唱指定歌曲{"action":"sing","song":"小星星"}
唱指定歌手的歌曲{"action":"sing","song":"周杰伦的歌"}
播歌 / 再播一首{"action":"play_music"}
播 rap{"action":"play_music","genre":"rap"}
播儿歌{"action":"play_music","genre":"children"}
播指定歌曲{"action":"play_music","song":"小星星"}
播指定歌手的歌曲{"action":"play_music","song":"周杰伦的歌"}

下发示例

python
# 在 PassiveCallback 子类的 on_request 中:
item_id = IdGenerator.generate_item_id()

# 通过 AgentParam 构造 skill_param(key/value 对应上表"语义"列)
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)

也可通过 主动交互任务流 下发——payload 中放上动作组(action_group)与对应 action_type / config 字段, 任务流会按顺序或并行执行。