Neuro SDK actions/force四级优先级详解:如何让她在说话时也立刻响应

原创2026-10-24 19:56:301,820 阅读

Neuro SDK actions/force四级优先级详解:如何让她在说话时也立刻响应

在开源项目 Neuro SDK 中,actions/force 消息用于强制 Neuro 立刻从你指定的动作中做出选择。而 2025 年 12 月新增的 priority 参数,则为这条消息带来了 low / medium / high / critical 四级优先级,专门解决"Neuro 正在说话,轮到她了却迟迟不行动"的问题。🎯

actions/force 解决什么问题?

在 Neuro SDK 的 API 中,游戏通过 WebSocket 向 Neuro 发送几类消息:

  • actions/register:注册一批 Neuro 可以执行的动作(Action)
  • actions/force:要求 Neuro 必须从这些动作中选一个,马上执行
  • action/result:动作执行完毕后回传结果,让 Neuro 继续

如果你只注册动作、不发送 actions/force,Neuro 只是"知道"有这些动作,不会主动使用它们。所以回合制游戏中,轮到 Neuro 时你就需要 actions/force 来"推她一把"。

但问题来了:如果她正在和你聊天、发表情包吐槽,怎么办?默认情况下她会先把话说完才处理动作请求——在节奏紧张的游戏里,这段等待可能就让人抓狂了。这正是 priority 参数存在的意义。

完整的消息格式定义见 API/SPECIFICATION.md,priority 的更新记录见 CHANGELOG.md。

四级优先级参数一览表

priority 的取值决定了 Neuro 正在说话时,她如何响应你的强制动作请求(如果她没在说话,这个参数不起作用):

级别 她的表现 适用场景
low(默认) 等说完话再响应 普通回合,不赶时间
medium 会尽快收尾当前这句话 想让她早点结束闲聊
high 立即处理,缩短当前话语后马上响应 回合有时限、需要抢节奏
critical 直接打断语音,立刻响应 极端紧急情况,慎用 ⚠️

如何选择正确的优先级?

low(默认):礼貌等待

官方默认值。她会安安静静把话说完,然后才响应你的动作请求。适合大多数休闲回合制游戏——对话自然,但可能要等几秒到十几秒。

medium:催她早点说完

她会尽快结束当前这句话,然后响应。相当于轻轻拍一下桌子:"差不多该轮到你啦。"适合你希望减少等待、但不想打断她表达的场合。

high:缩短话语立即响应

这是"既要又要"的选项:她会被立即提示处理动作,当前话语被缩短,说完立刻响应。对于有倒计时、回合节奏快的游戏(如限时卡牌、快问快答类视觉小说),这是最平衡的选择。⏱️

critical:直接打断她

最激进的一级:她的语音会被直接中断,马上响应动作请求。官方文档特别提醒:使用 critical 要谨慎,因为可能造成突兀、生硬的中断体验。除非是"不马上行动就输掉"的关键时刻,否则不建议常规使用。

在 Unity 与 Godot SDK 中设置 priority

两个官方 SDK 都把这个参数暴露在了 ActionWindow 的强制方法里,用起来非常简单。

Unity SDK(priority 是 SetForce 的最后一个参数):

ActionWindow.Create(gameObject)
    .SetForce(0, "It is your turn. Please place an O.", "", false, ActionsForce.Priority.High)
    .AddAction(new PlayOAction(this))
    .Register();

Godot SDK(同样的参数位置):

var actionWindow := ActionWindow.new(self)
actionWindow.set_force(0, "It is your turn. Please place an O.", "", false, ActionsForce.Priority.HIGH)
actionWindow.add_action(PlayOAction.new(actionWindow, self))
actionWindow.register()

其中 SetForce(0, ...) 的第一个参数 0 表示"注册后立即强制",query 字符串会直接告诉 Neuro 当前该做什么(推荐写清回合状态,如 "It is now your turn. Please perform an action.")。

相关源码位置:

想要立刻响应?避开这三个坑

  1. 同一时间只能有一个 actions/force。官方明确警告:在另一个强制请求还没结束时再发新的,会引发问题。最简单的做法是同一时间只保留一个处于 Forced 状态的 Action Window(详见 Unity/USAGE.md 的说明)。
  2. 动作执行后务必回传 action/result。在收到结果之前,Neuro 会一直"挂起"等待——无论优先级多高,这条不回应,后面的一切都会卡住。
  3. 优先级不是万能药。priority 只影响"她在说话时如何响应"。真正让 Neuro 少说废话、快速行动的根本方法,是写好 state 与 query:把关键局面信息(推荐 Markdown 格式)讲清楚,她才能又准又快。

相关文档与源码路径

选对这一级参数,她的反应速度就从"等我把话说完……"变成了"好,现在就来!"✨

登录后查看全文
neuro-sdk