连接时的静态上下文
配置角色在对话开始时接收一次的固定场景事实,与对话运行期间发送的更新分开。
每个 Convai 角色都有两个字段—— 初始动态信息文本 和 初始动态信息保留在上下文中 ——它会在对话连接的那一刻将一段固定的上下文块注入到会话请求中。该上下文会在第一条回复之前只发送给 Convai 一次,并且独立于运行时的动态上下文更新。
对于在对话开始前就已成立且在会话期间不会变化的事实,请使用此机制:设施名称、角色的职责、训练场景类型,或演练的初始条件。对运行时动态上下文(ConvaiDynamicContextRelay 或 IConvaiDynamicContext)则用于所有会随着会话推进而变化的内容。
检查器配置
这两个字段都位于 ConvaiCharacter 组件下的 动态信息(连接请求) 标题下。

初始动态信息文本
string
(空)
作为会话连接请求的一部分发送的自由文本块。没有格式限制——可直接写普通句子或键值行。
初始动态信息保留在上下文中
bool
false
当 true,Convai 会在整个会话期间的所有 LLM 回合中保留此文本。当 false时,该文本只会影响第一条回复。
初始动态信息保留在上下文中默认值为 false. 当禁用时,Convai 仅使用初始上下文文本来影响角色的第一条回复——它不会跨回合保留。如果你希望角色在长会话中始终引用初始事实,请启用此字段。保持禁用是角色在首次交流后看起来“忘记”场景上下文的常见原因。
配置示例
对于消防抑制认证演练,请将 初始动态信息文本 设置为:
启用 初始动态信息保留在上下文中.
角色将在整个对话过程中引用这些事实。你无需通过运行时动态上下文重新发送它们——它们会在整个会话期间保持有效。
与运行时动态上下文的关系
初始上下文与运行时动态上下文是互补的——而不是替代关系。
发送时间
一次,在 ConnectAsync
会话期间,按需发送
内容
在设计时设置的固定事实
运行时设置的实时状态和事件
适用于
设施名称、场景类型、角色职责
学员位置、设备状态、危险等级
可在运行时修改
否——每次连接只发送一次
是——通过 SetState, AddEvent, Reset
这两种机制会同时输入到角色的感知中。初始上下文提供稳定基础;运行时动态上下文则在其上叠加实时更新。
什么 Reset() 会清除和不会清除的内容
调用 Reset() 在运行时动态上下文层上会清除所有已跟踪的状态和事件。默认情况下,它会保留初始动态信息:
初始动态信息文本 是在连接时发送的,不会被
Reset()修改,除非调用方选择启用:Reset(removeStatic: true)还会请求 Convai 移除当前会话的静态初始动态上下文。默认的Reset()(等同于Reset(removeStatic: false))不会触及它,而且在会话中途无法重新发送或替换它——只能将其清除。系统提示词事实 在 Convai 仪表板上的内容不属于动态上下文层。运行时没有任何 SDK 调用会影响它们。
会话内 LLM 记忆 ——角色会在同一会话的多轮对话中保留上下文。
Reset()会清除动态上下文跟踪器并向 Convai 发送 Reset 消息,但不会清除模型的会话内对话记忆。
脚本访问
这两个字段都可通过 C# 属性读取,位于 ConvaiCharacter:
这些属性在运行时为只读。请在场景运行前在 Inspector 中设置这些值,或者通过 SerializedObject 在自定义 Editor 工具中设置。
下一步
中继组件参考动态上下文脚本 API同步行为与时序最后更新于
这有帮助吗?