TRTC 云助手 AI 记忆能力方案

为了让 AI 陪伴具备记忆能力(短期记忆和长期记忆),需要两条 AI 交互通道。

相关产品
TRTC 云助手 产品页,含版本规格、价格与购买入口。

一、背景与目标

·短期记忆:接续 IM 文字聊天的近期话题,语音和文字无缝衔接

·长期记忆:记住用户跨越较长时间的偏好、习惯和重要信息

通道 交互方式 当前记忆状态
IM-AI 通道 文字聊天 腾讯云 IM 原生支持 N 轮上下文,控制台可配置(最大 50 条)
TRTC-AI 通道 语音通话 每次通话独立,无跨 session 记忆

二、方案说明

腾讯云 IM 的 AI 聊天机器人原生支持多轮上下文,无需额外开发。

三、配置方式

在腾讯云 IM 控制台可直接调整 AI 机器人的上下文记忆长度,具体操作路径如下:

1. 登录 腾讯云 IM 控制台,选择目标应用。

2. 在左侧导航栏选择消息服务 Chat > AI 聊天机器人。

3. 在机器人列表中找到目标机器人,单击操作列的编辑。

4. 在编辑页的 AI 服务配置区域,修改历史消息数参数。

5. 保存后立即生效,无需重启服务或重新发布客户端。

注意:同时受 IM 套餐中漫游消息时长限制,超过漫游存储时长的消息无法作为上下文携带给 AI 大模型

四、效果

用户在文字聊天中,AI 始终能"记住"最近 N 轮的对话内容,实现连贯的多轮交互,无需任何客户端或服务端改动。

五、TRTC 语音通话的记忆能力(双层方案)

TRTC AI 对话通过 StartAIConversation 接口启动,其中 LLMConfig 支持以下关键字段:

LLMConfig 字段 用途
SystemPrompt 注入长期记忆(人设 + 历史摘要)
UserMessages 注入短期记忆(近期 IM 聊天记录)
History TRTC 通话内的上下文轮次(最大 50 轮)

两层记忆互补,形成完整的记忆体系:

记忆层级 LLMConfig 字段 内容 特点
长期记忆 SystemPrompt 基础人设 + 用户长期偏好摘要 覆盖时间跨度长,精度相对低
短期记忆 UserMessages 最近 N 条 IM 聊天原文(用户可配置) 精度高,直接接续文字聊天话题
通话内记忆 History 当前 TRTC 通话内的上下文轮次 自动管理,默认 0,最大 50 轮

六、原理

在每次语音通话启动时,服务端从腾讯云 IM 拉取该用户与机器人的最近 N 条聊天记录,转换格式后通过 LLMConfig.UserMessages 注入给 TRTC AI。

七、LLMConfig 注入示例

{ "LLMType": "openai", "Model": "deepseek-chat", "APIKey": "…", "APIUrl": "https://api.deepseek.com/chat/completions", "Streaming": true, "SystemPrompt": "你化身为人工智能助手贾维斯…", "History": 10, "Timeout": 10, "UserMessages": [ { "Role": "user", "Content": "你好,我是小明" }, { "Role": "assistant", "Content": "你好小明!很高兴认识你。" }, { "Role": "user", "Content": "帮我推荐一本Python的书" }, { "Role": "assistant", "Content": "推荐《流畅的Python》,适合有一定基础的开发者。" } ]}

八、用户可配置项

配置项 说明 建议默认值
注入条数 N 拉取最近 N 条 IM 消息作为短期记忆 10条
最大上限 受 LLM token 窗口限制 建议不超过30条

九、原理

基于用户与 AI 的完整交互历史(包括 IM 文字聊天 + TRTC 语音通话),定期通过 LLM 生成精简摘要,存储在服务端。每次启动语音通话时,将摘要拼接到 LLMConfig.SystemPrompt,使 AI 具备对该用户的长期了解。

十、数据来源

长期记忆的输入数据来自两个通道,合并后可构建更完整的用户画像:

数据来源 获取方式 内容
IM 文字聊天记录 调用 IM REST API v4/openim/admin_getroammsg 拉取 用户文本消息 + AI 回复(customElem chunks 拼接)
TRTC 语音对话记录 通过 903 服务端回调 实时接收并存储 ASR 识别的用户语音文本 + LLM 生成的 AI 回复文本

903 回调说明

TRTC AI 对话服务支持 EventType 903(EVENT_TYPE_AI_SERVICE_MSG)服务端回调,每当 ASR 识别出完整一句话或 LLM 返回完整回复时,TRTC 后台会主动推送到开发者配置的回调地址。

回调包体格式:

{ "EventGroupId": 9, "EventType": 903, "CallbackTs": 1687770730166, "EventInfo": { "EventMsTs": 1622186275757, "TaskId": "xx", "RoomId": "1234", "RoomIdType": 0, "Payload": { "UserId": "user_123", "Text": "我最近在学习 Python", "StartTimeMs": 1234, "EndTimeMs": 1269, "RoundId": "xxxxxx" } }}

关键字段:

字段 说明
Payload.UserId 发送者 ID,通过判断是否为机器人 UserId 来区分用户发言和 AI 回复
Payload.Text 对话文本内容(ASR 识别结果或 LLM 完整回复)
Payload.RoundId 一轮对话的唯一 ID,可用于关联同一轮的用户提问和 AI 回答

注意:说明:

注意:配置方式:在 TRTC 控制台 的"回调配置"中设置回调地址,勾选 AI 实时对话回调即可。

十一、摘要内容示例

以下是你与该用户的历史对话摘要,请在本次对话中记住这些信息:- 用户名叫小明,偏好简洁直接的回答风格- 用户从事软件开发工作,熟悉 Python 和移动端开发- 上次讨论了 AI 产品设计方案,用户对语音交互体验很感兴趣- 用户在语音通话中提到希望 AI 能记住自己的偏好,不用每次重复说明- 用户通过语音通话询问过 TRTC 的降噪配置方法

十二、三种记忆能力对比总览

维度 IM 文字记忆 TRTC 短期记忆 TRTC 长期记忆
技术方案 腾讯云 IM 原生 LLMConfig.UserMessages 注入 IM 历史 LLMConfig.SystemPrompt 注入 LLM 摘要
数据来源 IM 后台自动管理 IM REST API 拉取 IM 聊天记录 + TRTC 903 回调语音记录
覆盖范围 最近 50 条 最近 N 条(用户配置) 全量历史(压缩)
精度 高(原文) 高(原文) 中(摘要)
时间跨度 短期 短期 长期
额外基础设施 无 无 需要存储层 + 903 回调配置
赞 (0)
上一篇 4天前
下一篇 4天前