Skip to content

OpenViking 网关配置参考 ​

本页供修改 ov.conf、gateway.conf 或环境变量的运维人员查阅,也方便把 Studio 中的名称对应到管理 API 的字段名。每张表都列出名称、默认值和可选值;设置的作用和什么时候需要改,见各节链接的功能页面。

配置放在哪里 ​

嵌入网关和独立网关的字段大部分相同,区别在于写在哪个文件里、用什么命令生成。只有一种部署形态使用的字段,在网关字段的“适用于”一列中标出。

嵌入独立
文件ov.conf 的 gateway 段gateway.conf 的根层,没有 gateway 外层
生成命令openviking-server initopenviking-gateway init
读取哪个文件Server 自己的 ov.conf--config 或 OPENVIKING_GATEWAY_CONFIG_FILE 指定的文件,且文件必须存在;两者都没设置时,读取 ~/.openviking/gateway.conf 和 /etc/openviking/gateway.conf 中第一个存在的文件
host、port 和 workers跟随 Server由 host、port、workers 字段设置

OPENVIKING_CONFIG_FILE 只用来选择 Server 的配置,不会让独立网关读取它指向的文件。

网关字段 ​

字段适用于默认值可选值含义
enabled嵌入false在 Server 中开启网关
openviking_url独立—(必填)HTTP(S) URLOpenViking Server 的地址
host独立127.0.0.1监听地址
port独立19351–65,535监听端口
workers独立11–64worker 进程数
public_url两者空HTTP(S) URL,不带 /gateway客户端访问的对外地址,/gateway 由网关自己加。为空时,嵌入网关沿用 Server 的对外地址;两者都没有时,接入指南使用请求来源地址,MCP 文件上传和下载也不可用(mcp_file_links 为 direct 时除外)。见对外地址
mcp_file_links两者proxyproxy、directMCP 上传和下载工具返回的链接如何交给客户端。proxy 改写为 public_url 加 /gateway/uploads 或 /gateway/downloads,需要设置 public_url。direct 原样透传 OpenViking 的链接,需要 Server 的 OPENVIKING_PUBLIC_BASE_URL(或 server.public_base_url)是客户端能访问的地址
storage_path两者~/.openviking/gateway本地存储目录
encryption独立不设置(明文)字段同 ov.conf 的 encryption 段加密本地保存的数据,见加密;嵌入网关沿用 Server 的设置
management_key两者空至少 32 个字符可选的网关管理密钥
min_server_version两者0.4.16版本号独立网关要求的 OpenViking Server 最低版本
session_ttl_days两者301 及以上对话闲置多少天后过期
response_ttl_seconds两者2592000(30 天)60 及以上Responses 响应与上游的对应关系保留多少秒
log_retention_days两者301 及以上请求日志保留天数
max_body_bytes两者33554432(32 MiB)1,024 及以上请求和上传的大小上限,单位为字节
upstream_timeout_seconds两者600大于 0服务商请求超时
health_interval_seconds两者601 及以上检查 OpenViking 状态的间隔秒数

环境变量 ​

每个网关字段都能用环境变量设置,变量名是 OPENVIKING_GATEWAY_ 加上大写的字段名,两种部署形态都适用:

bash
OPENVIKING_GATEWAY_PUBLIC_URL=https://ov.example.com
OPENVIKING_GATEWAY_MANAGEMENT_KEY='<management-key>'
  • 环境变量优先于配置文件。 非空的环境变量覆盖文件中的值,值为空等于没有设置。
  • 以 tcp:// 或 udp:// 开头的值会被忽略。这样,Kubernetes 为名为 openviking-gateway 的 Service 自动注入的变量(例如 OPENVIKING_GATEWAY_PORT=tcp://…)不会覆盖文件。
  • 文件中的值也可以写成 "$VAR",从环境变量中取值。
  • encryption 块只能写在文件里。
  • 容器通常不需要配置文件,用环境变量设置需要的字段即可。

校验 ​

对象规则
openviking_url 和 public_url必须是 HTTP(S),不能含凭证、查询参数或 fragment
上游的 base_url规则不同,见接口
management_key解析 $VAR 引用后至少 32 个字符;$VAR 没能解析时校验失败
未知字段校验失败
已删除的字段忽略,启动时打印警告:encryption_key_env,以及 ov.conf 中迁移列出的 v0.5 字段

上下文配置的设置 ​

在 Studio 中:上下文配置 → 打开一份配置。下面几张表按编辑器的分区排列,先写 Studio 中的名称,再写管理 API 中的名称(管理 API 把上下文配置称为 policies)。名称(name,默认 Default)是配置的显示名称;各分区的作用见上下文配置。

召回记忆 ​

作用见召回记忆。

Studio 名称API 名称默认值取值范围含义
召回记忆recalltrue为每条新的用户消息检索记忆。
会话开头提供用户画像profiletrue新对话开始时提供画像,独立于召回。
开头内容预算profile_max_tokens40000–32,000画像和目录的独立预算;0 表示省略。目录需要提供 OpenViking 的 read 工具(openviking_read)。
显示召回摘要show_recallfalse在回复开头说明 OpenViking 补充了什么,或召回失败的原因。模型看不到。
检索范围context_typesmemory、resource、skill开启召回时至少一个(仅 Studio 校验)检索哪些内容:记忆、资源、技能。
单条消息预算max_tokens160064–32,000一条消息最多补充的 token 数。
单个上下文窗口预算session_max_tokens300000 及以上一个上下文窗口内最多补充的 token 数,每次压缩后重新计算;0 表示关闭召回。
相关度阈值score_threshold0.350–1接受的最低相关度分数。
超时时间recall_timeout2(秒)大于 0,最多 30检索最多等多久,超时后消息不带记忆继续发送。
检索文本长度query_max_chars80003–32,000取消息的多少个字符作为检索文本。
按分类限量quotas{}(关闭)键:events、entities、preferences、experiences、resources、skills;设置时至少一项大于 0(仅 Studio 校验)每个分类最多取的条数;只检索大于 0 的分类。

管理 API 保存 context_types 和 quotas 时不做校验。quotas 里出现未知的键时,OpenViking 会拒绝检索请求,导致每次召回都失败。

保存对话 ​

作用见保存对话。

Studio 名称API 名称默认值取值范围含义
保存对话capturetrue把完成的轮次保存到 OpenViking。
最新回复等待时长idle_seconds600(秒)1 及以上停顿多久之后保存最后一轮并提交会话。
提交阈值commit_tokens200001 及以上会话中待提交的 token 数达到这个值时提交。
保留最近消息keep_recent_messages100–1,000提交后会话中保留的消息数。

长对话 ​

作用见网关中的长对话。

Studio 名称API 名称默认值取值范围含义
压缩compactiontrue接近上下文窗口时,用摘要替换对话较早的部分。
压缩时机compaction_threshold0.90.5–0.98上下文窗口用到多大比例时压缩。
摘要长度上限summary_max_tokens80001,000–32,000一份摘要最多多少 token。
默认上下文窗口context_window未设置(按 1,000,000 计算)1,024 及以上上游没有列出该模型时使用的窗口,见设置模型的上下文窗口。
Agent 自管上下文窗口agent_windowsfalse实验性。让模型自己开启新的上下文窗口;需要 OpenViking 工具。
软提醒时机window_soft_ratio0.70.3–0.95,须低于 window_hard_ratio窗口用到这个比例时,提醒模型尽快开启新窗口。
硬提醒时机window_hard_ratio0.850.4–0.97窗口用到这个比例时,要求模型立即开启新窗口。

OpenViking 工具 ​

作用见选择工具和上限。

Studio 名称API 名称默认值取值范围含义
OpenViking 工具gateway_toolstrue为 Chat Completions、完整历史的 Responses 和 Anthropic Messages 提供 OpenViking 工具。
工具(未勾选的项)disabled_tools会修改数据的 8 个工具OpenViking 工具原名,不带 openviking_新对话不提供这些工具,其余可用工具都提供,包括以后新增的。
显示工具调用show_tool_callstrue每次 OpenViking 工具调用都在回复里加一行提示。
每次请求的工具轮数tool_max_roundsnull(不限)1 及以上工具调用达到这个轮数后,拒绝继续调用 OpenViking 工具。
单次调用超时tool_timeout_seconds30(秒)大于 0,最多 120超时的调用向模型返回错误。
结果大小上限tool_result_bytes65536(字节)1,024–1,048,576超出部分在交给模型前截掉。
总时长tool_total_secondsnull(不限)大于 0超过这个秒数模型仍在调用工具时,请求失败。
Token 预算tool_total_tokensnull(不限)1,024 及以上工具调用和结果在一次请求中最多增加的估算 token 数,用完后拒绝继续调用 OpenViking 工具。

API 请求省略 disabled_tools 时使用默认列表;列表为空且 gateway_tools 开启时,提供全部可用工具。

上游设置 ​

在 Studio 中:上游 → 打开一个上游。下面几张表按编辑器的四个分区排列;各字段的作用见上游。

接口 ​

Studio 名称API 名称默认值可选值含义
名称name—(必填)显示名称。
服务商vendorgenericgeneric、anthropic、openai、deepseek、ark(火山方舟)、byteplus(BytePlus 方舟)Studio 只提供服务商支持的协议,API 接受任意组合。
协议protocol—(必填)anthropic(Anthropic Messages)、chat(Chat Completions)、responses(Responses)这个上游使用的 API。
Base URLbase_url—(必填)HTTP(S) URL服务商地址;默认地址见什么是上游,拼接规则见接口。
拼接协议接口路径append_endpoint_pathtrue拼接所选协议的接口路径;关闭时把 base_url 直接作为完整请求地址。

凭证 ​

Studio 名称API 名称默认值可选值含义
API Key 由谁提供auth_modemanagedmanaged(由网关保管 API Key)、passthrough(每个客户端自带 API Key)见凭证。
密钥发送方式key_headerauthorizationauthorization(Bearer)、api-key、x-api-keybase_url 含 {api_key} 时不生效。
API Keyapi_key空只写,见凭证。
额外请求头headers{}请求头名称 → 取值只写,见凭证。
这是 Coding Plan 或订阅密钥coding_planfalse除非另外允许,否则拒绝发往这个上游的请求。
允许通过网关使用这个套餐allow_coding_planfalse允许使用被标记为 Coding Plan 的密钥。

模型 ​

Studio 名称API 名称默认值可选值含义
模型models[]模型名提供的模型名;留空表示接受任何名称。
模型别名aliases{}客户端使用的名称 → 发给上游的模型
上下文窗口context_windows{}模型 → token 数,每项至少 1,024各模型的上下文窗口,见设置模型的上下文窗口。

路由 ​

Studio 名称API 名称默认值可选值含义
优先级priority0整数数值越大,新对话越优先使用。
启用enabledtrue停用的上游不接收请求。
允许 OpenViking 工具allow_gateway_toolstrue能否通过这个上游提供 OpenViking 工具。
补全推理内容回传replay_reasoningnull(跟随服务商)null、true、false把客户端丢掉的推理内容补回之前的回复。null 时 deepseek、ark 和 byteplus 开启,其他服务商关闭;true 或 false 覆盖服务商默认值。Studio 中开关与服务商默认值一致时保存为 null。
最小可缓存长度cache_min_tokens10240 及以上仅火山方舟和 BytePlus 方舟;影响缓存资格的报告。

下一步 ​

Open source under the AGPL-3.0 License. Font licenses