You need to enable JavaScript to run this app.
实时音视频

实时音视频

复制全文
进阶功能
上下文管理(短期记忆)
复制全文
上下文管理(短期记忆)

上下文管理可赋予智能体短期记忆能力,使其在单次会话中能够回溯并参考最近 N 轮历史对话记录,从而做出更精准、连贯的回复。您可以通过以下两种方式管理上下文:

  • 设置全局上下文:在会话开始时设定基础信息。
  • 动态传入上下文:在对话过程中实时补充背景信息。

说明

短期记忆会在会话结束后清空。如需实现跨越会话的长期记忆,可接入火山记忆库。具体实现方法,请参见接入记忆库(长期记忆)

设置全局上下文

在发起对话时,通过 StartVoiceChat 接口为 LLM 设定初始的上下文信息,该上下文作用于整个任务。不同的大模型平台,其上下文管理机制有差异。

火山方舟 LLM / 第三方 LLM

上下文机制

使用火山方舟平台时,模型对话上下文生成逻辑由系统提示词(SystemMessages)、用户提示词(UserPrompts)和历史问题轮数(HistoryLength)共同控制。

参数名

类型

说明

SystemMessages

String[]

系统提示词。定义模型的角色、行为准则及输出格式等核心指令。

UserPrompts

Object[]

用户提示词。可用于增强模型的回复质量,模型回复时会优先参考此处内容,引导模型生成特定的输出或执行特定的任务。需包含 RoleContent 字段,且必须成对出现。推荐使用该参数控制用户提示词,具有存储提示词自动逐出机制,且表现更稳定。

HistoryLength

Integer

模型存储历史问题轮数。

UserMessages

String[]

旧版本参数,不推荐使用,仅为兼容保留
用户提示词。可用于增强模型的回复质量,模型回复时会优先参考此处内容,引导模型生成特定的输出或执行特定的任务。

UserMessages 说明
UserMessages 是一个为保证向后兼容性而保留的旧版参数,不推荐使用,与 UserPrompts 的差异如下:

维度

UserPrompts (推荐)

UserMessages (不推荐)

数据类型

对象数组 Object[]

字符串数组 String[]

字段要求

必须包含 Role 和 Content 字段,且 user 和 assistant 角色需成对交替出现。

无严格字段要求,直接存储对话文本。

存储机制

自动逐出:当对话历史超过 HistoryLength 限制时,最早的 UserPrompts 会被逐出,为新的对话历史腾出空间。

会话内固定:在当前会话中,UserMessages 的内容不会像 UserPrompts 那样被自动逐出,会持续占用上下文空间,直到会话结束。

上下文长度限制

上下文总长度(以 Tokens 计算)不得超过所选大模型的上限(如 8k)。计算方式取决于您使用的参数组合。

  • (推荐)使用 UserPrompts 时:
    • 计算逻辑:UserPrompts 支持自动逐出,计算总长度时只包含当前对话中仍然生效的 UserPrompts。

    • 计算公式:

      总 Token 数 = SystemMessages + 当前生效的 UserPrompts + HistoryLength 轮对话
      
    • 示例:若 HistoryLength 为 3,模型上限 8k。当一轮旧的 UserPrompts 因对话轮数增加被逐出后,计算总长度时就不再包含它,从而为新的对话历史腾出空间。

  • (不推荐)使用 UserMessages 时:
    • 计算逻辑:UserMessages 会被永久保留,计算总长度时需包含全部内容。

    • 计算公式:

      总 Token 数 = SystemMessages + 全部 UserMessages + HistoryLength 轮对话
      
    • 示例:若 HistoryLength 为 3,模型上限 8k。由于 UserMessages 会永久存储,即使对话轮数增加,之前传入的 UserMessages 内容仍会一直占用上下文空间,因此需注意控制传入内容的长度以避免超出模型上限。

Coze 智能体

上下文管理模式

使用Coze平台时,上下文管理有两种模式,通过 StartVoiceChat 中的字段 LLMConfig.EnableConversation 控制:

模式

上下文生成逻辑

RTC管理上下文

EnableConversation: false。模型对话上下文生成逻辑由历史问题轮数 HistoryLength 和 Coze 平台编排页人设与回复逻辑、插件、知识库共同控制。

Coze平台管理上下文

EnableConversation: true。模型对话上下文生成逻辑完全由 Coze 平台编排页人设与回复逻辑、插件、知识库共同控制。HistoryLength 参数不生效。

Coze 编排功能、插件等搭建能力详细介绍参看 Coze 开发智能体功能概述

上下文长度限制

需要确保编排页人设与回复逻辑、插件、知识库与会话内容文本总长度不超过大模型上下文长度。历史问题轮数在 RTC 管理上下文时通过 HistoryLength 参数控制,在 Coze 平台管理上下文时通过模型设置页面操作。

动态传入上下文

传入自定义文本信息给 LLM,作下一轮回答的上下文参考,但不会立即触发回复。适用于需要结合实时变化或用户无法通过语音表达的隐式信息的场景。

场景

描述

示例

游戏陪玩

结合用户实时游戏数据生成合适的回答,为用户提供更贴心的陪伴。

  • 自定义文本:“当前用户战绩 0-14,金币落后”。
  • 用户语音提问:“我该出什么装备?”
  • 智能体输出:“我观察到你处于逆风局,建议先出防御装来稳住局势。”

健康咨询

结合用户实时生理数据生成个性化建议,提升健康指导的精准度。

  • 自定义文本:“当前用户心率 130,面色发白”。
  • 用户语音提问:“我现在感觉不太舒服,怎么办?”
  • 智能体输出:“监测到您心率持续偏高,建议您立刻暂停运动并补充电解质。”

使用限制

动态传入上下文在启用端到端实时语音大模型(S2SConfig)时无效。详细说明,请参见接入端到端实时语音大模型

实现方式

调用 UpdateVoiceChat 接口传入上下文,可参考以下示例:

完整参数及说明,参见对应的接口文档:UpdateVoiceChat(2025-06-01)UpdateVoiceChat(2024-12-01)

{
  "AppId": "YOUR_AppId",        // 与 StartVoiceChat 的一致
  "RoomId": "YOUR_RoomId",      // 与 StartVoiceChat 的一致
  "TaskId": "YOUR_TaskId",      // 与 StartVoiceChat 的一致
  "Command": "ExternalPromptsForLLM", // 必须为该值
  "Message": "当前用户战绩 0-14,金币落后" // 填入要传入的背景信息文本
}
最近更新时间:2025.12.26 00:14:41
这个页面对您有帮助吗?
有用
有用
无用
无用