跳转至

models.toml:模型目录与任务分档

真实文件是 config/models.toml。先在厂商配置建立连接,再添加模型。 面板「模型与厂商」维护目录,「功能分配」给任务选择候选。 逐字段说明见模型模板

模型名、真实 ID 与连接

每个 [[models]] 是一条模型目录记录。 name 是本地引用名,model_identifier 是服务商接口接受的真实 ID。 api_provider 指向厂商条目的 name,不是厂商预设标识。 换模型版本通常只改真实 ID;改本地名称才需要更新任务候选。

visual = true 声明该模型可接收图片,是视觉候选的准入条件。 不能通过给纯文本模型勾选视觉能力,让它获得真实图片理解能力。 价格字段只是面板计费参考,不会改变接口计费或自动选出最便宜模型。 embedding_dim 只用于嵌入模型,必须对应接口实际返回的维度。

首装预填的六档

六个条目都引用 dashscope 这一条百炼连接。 下表是随本版本代码分发的配置,不是远端实时模型清单。

本地名称 真实模型 ID 预填任务与分档意图
deepseek-pro deepseek-v4-pro-0813 chat、replyer、proactive,直接写给用户的内容
deepseek-flash deepseek-v4-flash-0731 planner、summary、scene,兼顾决策与处理速度
qwen-flash qwen3.8-flash expression,短文本表达选择
qwen-max qwen3.8-max memory、schedule,归属判断与结构化结果
qwen-vision qwen3.8-max-0902 vision,声明图片输入能力
qwen-embedding qwen3.7-text-embedding embedding,声明 1024 维

记忆抽取在后台执行,但错误事实会影响后续召回,模型选择仍需保证判断质量。 语音任务 tts 默认没有候选;语音、视觉、向量功能仍各有独立开关。 新增模型不会自动出现在任务里,要把本地名称加入对应 model_list。 实际模型权限与 ID 是否可调用,需使用实际密钥验证。

任务候选与继承

chat 至少保留一个候选。 planner、replyer、scene、proactive、summary、memory、schedule、expression 留空时, 继承 chat 的候选和挑选策略;各自的首字超时与慢阈值仍按各自任务设置。 vision、tts、embedding 不继承 chat;候选列表为空时,对应任务没有可用模型。

因此「清空摘要候选」不等于关闭摘要,而是改用对话模型做摘要。 要关某项能力,检查相应功能开关,而不是随意清空候选。 任务段名写错会被拒绝,不会当作新任务接受。

三种挑选策略

selection_strategy 行为 适用情况
sequential 优先列表前面的可用候选,失败再试后面的 有明确首选和备用
random 每轮随机打乱候选尝试顺序 希望随机分摊请求
balance 在健康候选间逐轮轮询 希望稳定轮流分摊

只有顺序策略下,拖动候选顺序才决定首选。 只配一个候选时,换策略不会凭空增加备用线路。 熔断按厂商连接归组;同一连接下放多个模型不能隔离厂商整体故障。 要有独立连接的候选,必须先配置另一条真实可用的厂商连接。

首字超时、慢阈值与网络超时

first_token_timeout_ms 默认 30000,是当前候选开始输出前的切换窗口。 该窗口包含连接的首字等待与内部重试;超时后尝试下一个候选。 它不是完整一轮对话的总时长,也不是前端打字气泡的等待上限。

slow_threshold_ms 默认 8000,只记录响应偏慢,不会在 8 秒时主动切换。 它必须小于首字超时,设 0 才是关闭慢响应记账。 厂商的 timeout_ms 管网络连接与读取,默认 120000,见厂商配置。 仅增大网络超时,不会延长任务自身配置的首字等待窗口。 已经输出的普通流式内容不会因中途断流而从头自动重试,以免重复输出。

生成参数与思考开关

[generation.<任务>] 控制该任务温度与输出上限。 模板当前统一温度为 0.85、max_tokens = 0,0 表示不另设输出上限。 注释中的「稳定」描述不改变实际参数值,任务温度应以配置为准。 模型条目的 temperaturemax_tokens 可覆盖任务值,排查时须同时核对两级配置。

思考开关是厂商请求参数,放在模型条目的 extra_body。 本版本五个文本或视觉模型预填:

extra_body = { enable_thinking = false }

嵌入模型的模板实际为 extra_body = {};嵌入请求不透传此字段。 任务或模型的顶层 thinking 字段已取消,继续使用会导致加载失败。 reasoning_parse_mode 只改变返回思考内容的解析方式,设 none 不会关闭厂商思考。 换厂商时核对它接受的请求体格式,不能保证同一键名适用于所有接口。

嵌入模型的特殊边界

同一 embedding 任务的候选必须具有相同正维度。 填 embedding_dim = 1024 是本地声明,不会强制远端输出 1024 维。 当前嵌入请求只发送模型与输入,无法用 extra_body.dimensions 调整输出维度。 更换嵌入模型还会改变向量空间,即使维度相同也不应直接混用旧向量。 先保留数据库与索引,按开发手册:记忆模块核对重建要求。

修改后核对

保存并重启后端,检查启动模型路由是否列出预期名称。 再发一轮消息,在会话观察与调用记录中确认实际使用的任务和候选。 连接测试或拉取模型列表成功,不能替代该模型的一轮真实请求。 调用失败时,应依据模型 ID、能力声明及厂商返回信息确定原因,再评估是否调整超时。