32 lines
3.0 KiB
Markdown
32 lines
3.0 KiB
Markdown
# 聊天直接检索火山 Viking
|
||||
|
|
|
|||
|
|
用户确认的分工:聊天智能体从 Viking 检索历史记忆;平台回忆提取用于分类、整理故事和回忆录。聊天启动不再把 `curated_memory` 或平台故事摘要加入系统提示词。
|
|||
|
|
|
|||
|
|
## 配置
|
|||
|
|
|
|||
|
|
- `MemoryConfig.Enable=true`,`Provider=volc`,当前库为 `aiphone`,事件规则为 `event_v1`,每次最多召回 3 条。
|
|||
|
|
- `user_id` 保持 `u_ + SHA256(tenant_id + ":" + subject_id)`,`assistant_id` 保持 `platform_companion_v1`,与已有聊天上传一致。换设备不换记忆身份,不导入或重新上传历史数据。
|
|||
|
|
- 创建新智能体和每次准备新聊天时,核对当前老人、语音授权和个性化记忆授权。授权撤回时下发 `Enable=false`,不保留检索过滤器。
|
|||
|
|
- 火山配置读回校验包含完整的库名和用户过滤器,不能只看 Enable。
|
|||
|
|
- 聊天结束后的字幕上传、Viking 提取与平台回忆整理继续沿用原流程。
|
|||
|
|
|
|||
|
|
平台的称呼、交流偏好和避免主动提及的话题属于聊天约束,不属于回忆提取正文。这次不发布尚未上线的完整人设同步功能。
|
|||
|
|
|
|||
|
|
## 火山访问权限
|
|||
|
|
|
|||
|
|
核查发现 `VoiceChatRoleForRTC` 原来没有 Viking 记忆访问策略。新增自定义策略 `StoryRTCVikingMemoryReadOnly`,仅允许 `MemoryCollectionInfo`、`MemoryEventSearch`、`MemoryProfileSearch`、`MemorySearch`、`MemorySearchUser` 和 `ml_platform:VikingDBAPIRead`。不授予写入、删除、密钥读取权限。该角色的其他策略保留。
|
|||
|
|
|
|||
|
|
该只读策略使用账户范围 Resource `*`;具体每位老人的范围由智能体中严格核对的用户过滤器确定。策略绑定和火山智能体配置读回成功并不等于实体语音召回已验收。
|
|||
|
|
|
|||
|
|
## 验证边界
|
|||
|
|
|
|||
|
|
隔离测试智能体成功保存并读回原生 Viking 配置。使用软件端 `StartVoiceChat` 验证硬件应用时返回 `NoPermissionForApp`(硬件 RTC 应用不是软件 AI agent 类型),因此未用此接口证明硬件语音召回,也未变更 RTC 应用类型。
|
|||
|
|
|
|||
|
|
本次服务端验证包括原生过滤身份、跨租户与跨老人隔离、撤回授权关闭检索、平台回忆不进入聊天、原有开场和会话幂等。实体设备还需通过一次只存在于 Viking 的事实提问确认实际召回;测试事实不能同时出现在人设、开场或平台注入中。
|
|||
|
|
|
|||
|
|
## 上线结果
|
|||
|
|
|
|||
|
|
服务端版本为 `0.99.56-rc.native-memory2`,48 项隔离集成测试全部通过,补充读回测试覆盖火山省略 `Enable=false` 的实际行为。现有 3 个智能体中,2 个满足授权条件并开启原生检索,1 个因授权条件未满足而关闭;均完成云端读回。既有语音配置、欢迎语和服务运行条件保留。更新现有智能体使用完整配置提交,因为火山更新接口会替换整份 Config,不能只提交 MemoryConfig。
|
|||
|
|
|
|||
|
|
参考:[火山智能体 MemoryConfig](https://docs.volcengine.com/docs/6348/1807450)、[原生长期记忆工作方式](https://docs.volcengine.com/docs/real_time_communication/Translationmemorylongtermmemory?lang=zh)。
|