跳到主要内容

编排循环

DSH 聊天智能体担任 GM。角色、记录员、世界/剧情作者、图片呈现者、编年者和建议生成器都是有边界的一次性子智能体。固定 persona 与工具表应形成可缓存前缀,变化的场景数据只放在本次任务说明中。

普通回合​

  1. 验证输入并组装场景。
  2. 必须先调用 judge_action,逐条检查世界规则和用户规则。
  3. 可先显示很短的场景预览。
  4. activate_characters 选择可参与角色,得到结构化意图、可选台词和投入程度。
  5. resolve_round 记录结果、公开状态、移动和物品操作;高投入且失败的角色最多重试一次。
  6. 代码验证移动和物品操作,提交可见状态,运行触发器,并把本轮加入持久记录队列。
  7. 在 maxRounds 内继续,或调用 narrate。
  8. 检查已接受台词恰好出现一次、原文不变且顺序正确;两次修复失败后由引擎修正载荷。
  9. 通过 <roleplay-output> JSON 交给渲染器,并且只记录一次回合。

/ooc 是独立回合,必须先 ooc_ruling,不能激活角色;合法裁定后的强制变化仍需通过普通验证、记录、感知和快照流程。

后台边界​

旁白完成就是用户可见的完成点。记录、整合、离场行动、建议和图片随后运行。读取或修改故事状态的步骤先调用 TurnEngine.settle;待处理工作写入数据库,因此重启、回退和分支不会静默丢失它。

触发器在回合开始、每轮提交后和跳时后执行。cue 只发给受众;beat 必须由旁白明确处理,并按设置过期。

runChild 创建私有工具作用域、验证 submit_result、限制调用次数,并提醒未提交就停止的子智能体。工具必须在代码中执行权限和一致性规则,提示词不是安全边界。

扩展时替换最小的边界,并保持错误语义、取消、输出 Schema 和生命周期。新增阶段要覆盖普通回合、OOC、重试、回退、分支、取消、热重载和提示前缀稳定性。