语义技能参考
语义技能参考
灵心平台支持的语义技能集合(全集)。当被动回调里 LLM/VLM 判断需要执行某个技能时,
通过 response.onSkill(eventId, itemId, skillType, skillName, skillParam) 下发;
skillParam 内的 JSON 字段即为下表"语义"列中的键值对。
注意:下表是平台设计能力全集,机器人端侧不同型号 / 不同系统版本支持的子集可能存在差异。 二开 SDK 侧无需关心端侧具体能力,按语义理解结果无脑下发即可—— 灵心平台会根据目标机器人型号与技能清单做过滤:
- 命中且端侧支持 → 正常下发执行
- 命中但端侧不支持 → 平台向端侧返回
unknown,端侧按"不支持该技能"处理
什么时候返回技能
技能是 ASR 文本经语义理解分类后的一种"结果分支"——并非每次对话都要返回:
- 拿到 ASR final 文本(
Asr2*类回调直接拿到text;Audio2*/AudioVideo2*类回调在flag=2时拿到内部识别完的 final 文本)。 - 业务侧对文本做语义理解 / 意图分类,结果分三类:
- 技能(动作 / 移动 / 表情 / 状态控制 / 二次确认 / 技能问答):
按下表选择
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 字段,
任务流会按顺序或并行执行。