认知解析链
wesgine 的 Cognitive Resolver 链——从请求到模型调用的路由与健康管理。
定位
Resolver 是引擎调用 LLM 的唯一出口。
它负责:
- 路由请求到正确的 Provider
- 追踪 per-Cell 健康状态
- 实施 per-Cell 速率限制
- 执行韧性策略(重试、回退、图片恢复)
链式架构
Resolver 链按顺序组装:
AppRunRequest
│
├─ CellChain(内层五层装配)
│ ├─ HealthTracker(per-Cell 健康追踪)
│ ├─ RateLimiter(per-Cell 速率限制)
│ ├─ Retry(瞬时错误重试)
│ ├─ Backoff(指数退避)
│ └─ ImageRecovery(图片故障恢复)
│
└─ Provider.Stream(ctx, cellID, req)
per-Cell 健康追踪
每个 Cell 独立追踪其使用的 Provider 的健康状态。
- 连续失败计数
- 错误分类(瞬时 vs 永久)
- 自动降级与恢复
per-Cell 速率限制
Cell 配额(CellQuotas.TokensPerMinute / TokensPerDay)在 Resolver 层执行。
超限时返回 429,不会传播到 Provider。
认知韧性
Retry(重试)
瞬时错误(网络超时、503)自动重试。
重试次数可配置,默认 3 次。
Backoff(退避)
连续失败触发指数退避。
防止对已知故障的 Provider 持续打击。
ImageRecovery(图片恢复)
当包含图片的请求失败时:
- 移除图片内容
- 用纯文本描述替代
- 重新发送请求
适用于不支持 Vision 的模型被错误路由的场景。
SequentialFallbackResolver
多 Provider 场景下的顺序回退:
- 尝试首选 Provider
- 首选失败 → 尝试下一个
- 所有 Provider 都失败 → 返回最后一个错误
BillingRequired Provider 的 JWT 过期后,自然 fallback 到 BYOK Provider。
BuildCellCognitive
cellchain.BuildCellCognitive 是内层五层装配的入口。
它从 CellSpec 和运行时状态构建完整的 Resolver 链。
每个 Cell 启动时执行一次。