管理网关上下文配置
在 Studio 中:上下文配置标签页。上下文配置决定 OpenViking 网关如何为使用它的网关密钥召回记忆、保存对话、处理长对话和提供 OpenViking 工具。本页按配置编辑页的分组逐一说明各项设置及默认值;修改配置需要写权限,见谁能修改什么。
什么是上下文配置
上下文配置是一组有名字的记忆设置。每个网关密钥在签发时选定一份配置,一份配置可以供多个密钥使用。比如准备一份“Coding”配置,召回记忆、资源和技能;再准备一份“Chat”配置,只召回记忆,预算也小一些。
一份配置分为四个部分,下表中的默认值也就是推荐设置:
| 部分 | 作用 | 主要设置和默认值 |
|---|---|---|
| 召回记忆 | 用每条新的用户消息检索 OpenViking,把相关内容附加到这条消息上。 | 检索范围:记忆、资源、技能 · 单条消息预算:1,600 token · 单个上下文窗口预算:30,000 token · 相关度阈值:0.35 · 超时时间:2 秒 |
| 保存对话 | 把完成的轮次写入 OpenViking 会话并提交,供 OpenViking 提取记忆。 | 最新回复等待时长:600 秒 · 提交阈值:20,000 token · 保留最近消息:10 |
| 长对话 | 对话接近上下文窗口时,让同一个模型写摘要,替换之前的消息。 | 压缩:开启 · 压缩时机:窗口的 0.9 · 摘要长度上限:8,000 token · Agent 自管上下文窗口:关闭 |
| OpenViking 工具 | 让模型在回答时使用 OpenViking 的工具。 | 开启 · 只勾选只读工具,见 OpenViking 工具 |
每个部分都有自己的开关,长对话部分的压缩和 Agent 自管上下文窗口各有一个。召回和保存相互独立,只召回不保存、只保存不召回都可以。
保存后的修改只对之后开始的对话生效,见修改何时生效。
创建、复制或删除配置
- 打开 上下文配置 标签页。标签页为空时,选择使用推荐设置创建可一键创建一份名为“默认”的配置,选择自定义则先打开编辑页。已有配置后,改用新建配置。
- 在编辑页填写名称,为网关密钥选择配置时会显示这个名称。再按本页的说明调整各部分。
- 选择创建配置;编辑已有配置时选择保存。之后能看到这份配置的卡片,上面概括了各部分的设置和使用它的密钥数(刚创建时显示没有密钥在用)。
其他操作:
- 复制一份:在卡片上或编辑页的更多操作(⋯)菜单中,打开一份名为“… 副本”的拷贝。想做一份变体,这样最快。
- 恢复推荐设置:在同一个菜单中,把各项恢复为推荐设置,保存后生效。
- 有密钥在用的配置不能删除。先吊销这些密钥;如果还需要它们,先签发使用其他配置的新密钥来替换。
- Studio 处于只读状态时,卡片上显示查看而不是编辑,也不能创建、复制或删除配置,见解锁编辑。
召回记忆
召回记忆部分(默认开启)控制召回:每收到一条新的用户消息,网关就用它检索 OpenViking,把相关内容附加到这条消息上。模型最终收到什么,见模型看到什么。各项设置按编辑页中的顺序排列:
| 设置 | 默认值 | 控制什么 |
|---|---|---|
| 会话开头提供用户画像 | 开启 | 新对话开始时,向模型提供你的 OpenViking 用户画像。 |
| 开头内容预算 | 4,000 token | 开头的用户画像、记忆目录和技能目录最多占用多少。 |
| 显示召回摘要 | 关闭 | 在回复开头加一行摘要,见召回摘要。 |
| 检索范围 | 记忆、资源、技能 | 召回时检索哪些内容。 |
| 单条消息预算 | 1,600 token | 一条消息最多附加多少记忆。 |
| 单个上下文窗口预算 | 30,000 token | 一个上下文窗口内累计最多附加多少记忆。 |
| 相关度阈值 | 0.35 | 只附加相关度不低于该值的结果,取值 0 到 1。值越高,附加的内容越少、越贴切。 |
| 超时时间 | 2 秒 | 一次检索最多等多久。 |
| 检索文本长度(在高级设置中) | 8,000 个字符 | 取消息的多少字符作为检索文本。 |
| 按分类限量(在高级设置中) | 关闭 | 每个分类最多附加多少条。 |
这些设置如何配合:
- 开头内容。 会话开头提供用户画像独立于召回。提供 OpenViking 的
read工具(openviking_read)时,开头还会提供记忆目录和技能目录。技能最多占开头内容预算的四分之一,预算设为 0 时全部省略。这份预算不占召回预算,见对话开头的内容。 - 补充什么。 召回内容由 OpenViking 在预算内选取和排版,也可能只给出 URI,供模型之后读取。
- 检索文本。 检索文本是去掉客户端噪声后的用户消息,最多取检索文本长度个字符。少于 3 个字符的消息不检索。
- 预算。 每条消息最多补充单条消息预算和单个上下文窗口预算剩余额度中较小的那个;剩余额度不足 64 token 时跳过检索。无论是网关还是客户端压缩了对话,单个上下文窗口预算都重新计算。这里的 token 数是偏保守的估算,不是服务商的计费数。
- 关闭召回。 把单个上下文窗口预算设为 0 就等于关闭召回;单条消息预算最小为 64。
- 超时。 OpenViking 在超时时间内没有返回时,这条消息不带记忆发给模型,之后也不会补上,客户端重试也一样。
- 按分类限量。 可以给事件、实体、偏好、经验、资源和技能六类分别设条数上限,只检索上限大于 0 的类别。关闭时,所有来源放在一起排序。
召回摘要
召回摘要是回复开头的一段简短说明,写明 OpenViking 为这条新用户消息补充了什么,或者召回为什么失败。它默认关闭,在上下文配置的召回记忆部分开启显示召回摘要即可。模型看不到摘要。示例:
text
> OpenViking context: user profile, memory index, skill list, earlier sessions
> OpenViking recall: 4 items (3 memories, 1 resource) — booking_duplicate_handling, user_lang_pref, +2 morecontext行只出现在对话的第一条回复里,列出开头实际提供的内容:用户画像、记忆目录、技能目录,以及这段对话较早部分在 OpenViking 中的位置。recall行按类别统计召回条数,最多列出三个条目名。检索失败时改为说明原因,例如> OpenViking recall failed: OpenViking unavailable。没有找到内容、召回已关闭或预算用完时不显示这一行,所以第一条回复之后,这类消息没有摘要。- 工具步骤等后续请求不显示摘要;客户端重试同一条消息时,摘要和第一次相同。
- 摘要在 Anthropic Messages 中单独占一个文本块,在 Responses 中单独占一条助手消息,在 Chat Completions 中位于回复文本开头。要求结构化输出的请求,以及
n大于 1 的 Chat Completions 请求,不显示摘要。 - 客户端随下一条消息把回复发回来时,网关先删掉摘要再转发,也不会把它保存到 OpenViking。
保存对话
保存对话部分(默认开启)控制保存:网关把完成的轮次写入 OpenViking 会话并提交,供 OpenViking 提取记忆。网关怎样判断一轮已经完成,见对话什么时候保存。
| 设置 | 默认值 | 控制什么 |
|---|---|---|
| 最新回复等待时长 | 600 秒 | 最新一轮等待后续消息多久,之后网关保存它并提交会话。 |
| 提交阈值 | 20,000 token | 会话中待提交的内容达到多少 token 时提交。 |
| 保留最近消息 | 10 | 提交后会话中保留多少条消息。 |
- 下一条用户消息到达时,上一轮就会保存。最新回复等待时长针对的是最后一轮,这样短对话也能被提交。
- 会话中待提交的内容达到提交阈值时提交一次。每次提交后,OpenViking 在后台提取记忆。
- 提交后,会话中保留最新的若干完整轮次,至少包含保留最近消息条消息。
长对话和 OpenViking 工具
编辑页的最后两个部分各有专门的页面:
- 长对话部分包括压缩及其压缩时机和摘要长度上限、实验性的 Agent 自管上下文窗口及其软提醒时机和硬提醒时机,以及高级设置中的默认上下文窗口。详见网关中的长对话;窗口较小的模型需要设置窗口大小,见设置模型的上下文窗口。
- OpenViking 工具部分包括工具清单和显示工具调用,高级设置中还有每次请求的工具轮数、单次调用超时、结果大小上限、总时长和 Token 预算。详见选择工具和上限。网关执行所选工具时不经过客户端的权限确认,勾选会修改数据的工具之前,请先阅读风险和控制点。
每项设置的 API 名称和取值范围见配置参考。
下一步
- 签发一个网关密钥,让它使用这份配置。
- 在请求日志中逐条查看召回和保存情况。
- 始终没有补充记忆时,见没有补充记忆。
- 在OpenViking 网关的工作原理中完整走一遍一轮对话。