For the complete documentation index, see llms.txt. This page is also available as Markdown.

动态上下文

将实时上下文注入角色的理解中——游戏状态、用户偏好、场景变化——而无需重新连接。

连接时的动态上下文

通过以下方式连接时传递初始上下文 dynamicInfo:

client.connect({
  apiKey: '...',
  characterId: '...',
  dynamicInfo: '玩家:Aria,等级:5,当前区域:Eldenmere Forest',
});

默认情况下,此上下文是可变的,并且可在会话期间被替换。若要将其锁定为静态系统提示:

{
  dynamicInfo: '游戏规则:已禁用 PvP。经济:通胀模式。',
  keepInContext: true, // 作为会话中的固定提示持久保留
}

updateContext

用于会话中途更新上下文的主要方法。支持追加、替换和重置模式。

client.updateContext(options: ContextUpdateOptions)

选项

字段
类型
默认
描述

文本

string

要注入的上下文文本。除非以下情况,否则必填 mode"reset"

mode

"append" | "replace" | "reset"

"append"

如何应用上下文

run_llm

"true" | "false" | "auto"

"auto"

是否触发机器人回复

current_attention_object

string

机器人应关注的对象(必须匹配 actionConfig.objects[].name)

模式

append — 添加到现有的临时上下文:

replace — 替换整个临时上下文:

reset — 完全清除临时上下文:

触发机器人回复

通过以下方式监控 token 使用量 serverResponse

服务器会在每次之后返回 token 数量 context-update:


updateDynamicInfo

一个更简单的版本, updateContext — 始终追加,且从不触发机器人回复。

等同于:

使用 updateContext 用于完全控制; updateDynamicInfo 用于快速静默更新。


模板键

模板键会替换角色系统提示中的占位符。适合个性化在 Convai 仪表板中配置的提示。

如果仪表板提示中包含 {{player_name}}:

角色将在其回复中使用 Aria寻找失落的遗物


文件上传

在活动会话期间,使用以下方式直接向角色发送文件 uploadFile。角色会将该文件作为对话上下文的一部分接收,并能根据其内容进行回复。

React

原生 JS

选项

字段
类型
默认
描述

主题

string

"file-upload"

上传通道的路由标识符

onProgress

(pct: number) => void

上传进度回调,参数为 0–100 的整数

支持的格式

格式
MIME 类型

JPEG

image/jpeg

PNG

image/png

GIF

image/gif

WebP

image/webp

最大文件大小: 10 MB。文件以原始二进制形式发送——不是 base64 编码。

错误处理

uploadFile 是异步的,且失败时会抛出异常——请始终将其包裹在 try/catch 中:

在调用前验证类型和大小,以便为用户提供快速的本地错误,而不是等待传输失败:

备注

  • 仅在使用 WebRTC 传输(transport: "livekit",默认)连接时可用。不支持 WebSocket 传输。

  • 如果在未连接时调用,该方法会抛出异常。先检查 client.state.isConnected


场景元数据

使用 updateSceneMetadata 用于描述环境变化。这不会 添加新的动作目标——它只为机器人提供叙事上下文。

如果机器人需要 作用于 场景中的对象,它们必须在 actionConfig.objects 连接时声明。参见 Actions。


会话管理

重置对话

resetSession() 会清除消息历史并开始新的对话线程。角色会忘记当前交流,但会保留任何长期记忆(如果 endUserId 已设置)。

空闲超时

服务器会在可配置的超时后断开空闲会话。可在 resetIdleTimer() 任意用户交互时调用,以保持会话存活。


长期记忆

endUserId 提供时,角色会在不同会话之间构建持久记忆。可通过以下方式访问它们: client.memoryManager.

完整参考请参见 Memory API。

最后更新于

这有帮助吗?