Autumn-27
a50bf02428
feat(llm): 五层重试的次数与间隔可配
一次模型调用的失败由内到外经过五层重试:建连(SDK)、空响应(SDK)、同 provider
安全窗口、轮询熔断、意图重跑。此前五层的次数与间隔全是写死的常量,遇到脾气各异
的中转站只能改代码。现在都能在 LLM 页配置,不配就是原来的默认值。
配置语义五层统一(db.RetryRule):次数 0=内置默认 / -1=关掉这层 / >0=该值;
间隔 0=原本的指数退避 / >0=改用固定间隔。0 被"未配置"占用,故关闭用 -1。
写库前夹紧到 次数 [-1,20]、间隔 [0,1h],DB 另有 CHECK 兜底。
粒度按层的性质分:前三层跟着端点走,可在每个模型配置里逐字段覆盖全局默认(只钉
间隔的仍继承全局次数);熔断与意图重跑是进程级语义,只有全局一份。
生效路径:①②是 provider 构建参数,保存后重建缓存;③随每次 hooks.current()
解析,故障转移换配置时重试节奏跟着换;④在失败路径上每次都要读,由 applyRetryPolicy
推给 llmpool.Registry;⑤每条意图收尾读一次。全部热生效,无需重启。
连接测试刻意不带这些参数——它有 30s 硬超时,叠上用户配的重试只会把本来能用的
端点测成超时失败。
norma 升 v0.3.5(llm.Config 新增 RetryInterval / EmptyResponseRetries /
EmptyResponseInterval)。旧库升级后行为逐字节不变:新列默认 0,settings 键不
存在即全默认。设计见 docs/LLM重试设计.md。
2026-09-09 13:35:04 -04:00
..
2026-08-11 09:13:12 -04:00
2026-08-24 19:29:14 +08:00
2026-08-24 10:32:10 -04:00
2026-08-24 10:32:10 -04:00
2026-08-28 15:25:20 +08:00
2026-08-28 07:37:24 +08:00
2026-08-31 11:22:34 -04:00
2026-08-24 19:29:14 +08:00
2026-08-31 11:22:34 -04:00
2026-08-24 19:29:14 +08:00
2026-08-24 19:29:14 +08:00
2026-08-31 12:20:31 -04:00
2026-08-24 19:28:18 +08:00
2026-09-09 13:35:04 -04:00
2026-09-09 11:52:15 -04:00
2026-08-24 14:14:15 +08:00
2026-08-24 19:29:38 +08:00
2026-08-25 14:56:15 +08:00
2026-07-26 04:27:45 -04:00
2026-08-28 15:25:20 +08:00
2026-08-28 15:25:20 +08:00
2026-09-09 11:52:15 -04:00
2026-08-24 19:29:00 +08:00
2026-08-28 14:03:07 +08:00
2026-08-24 19:29:00 +08:00
2026-08-24 19:29:00 +08:00
2026-09-09 11:52:15 -04:00
2026-08-31 10:58:32 -04:00
2026-08-31 11:10:47 -04:00
2026-08-28 12:56:29 +08:00
2026-09-09 09:24:13 -04:00
2026-08-24 19:29:00 +08:00
2026-08-24 19:29:00 +08:00
2026-08-24 14:14:15 +08:00
2026-08-25 09:40:05 -04:00
2026-08-28 15:25:20 +08:00
2026-08-24 19:28:18 +08:00
2026-09-09 13:35:04 -04:00
2026-09-09 13:35:04 -04:00
2026-07-26 04:27:45 -04:00
2026-07-26 04:27:45 -04:00
2026-09-09 13:35:04 -04:00
2026-07-26 04:27:45 -04:00
2026-08-24 19:30:14 +08:00
2026-08-28 12:56:29 +08:00
2026-08-28 12:56:29 +08:00
2026-08-28 15:25:20 +08:00
2026-08-28 15:25:20 +08:00
2026-08-28 15:25:20 +08:00
2026-08-24 10:16:17 -04:00
2026-08-24 19:29:14 +08:00
2026-08-24 08:55:55 -04:00
2026-08-24 09:16:44 -04:00
2026-08-24 09:16:44 -04:00
2026-08-24 19:29:00 +08:00
2026-08-24 19:29:00 +08:00
2026-08-31 09:26:33 -04:00
2026-08-24 19:29:00 +08:00
2026-08-28 08:00:36 +08:00
2026-08-25 14:56:15 +08:00
2026-08-24 19:29:00 +08:00
2026-08-09 09:09:59 -04:00
2026-08-24 10:16:17 -04:00
2026-08-24 19:29:00 +08:00
2026-08-24 19:29:46 +08:00
2026-08-24 19:29:46 +08:00
2026-08-31 09:26:33 -04:00
2026-08-28 08:00:36 +08:00
2026-07-26 04:27:45 -04:00
2026-08-25 12:05:26 +08:00
2026-08-28 12:56:29 +08:00
2026-08-25 12:05:26 +08:00
2026-08-09 02:19:29 -04:00