共享 Provider 池

wesgine Hypervisor 级共享 Provider 的管理机制。


定位

共享 Provider 池(SharedProviders)是 Hypervisor 级的 LLM Provider 共享资源。

多个 Cell 可以共享同一组 Provider,通过 ProviderStrategy 决定使用优先级。


三种归属

归属管理层说明
Hyp:SharedHypervisor全局共享池
Hyp:NamedHypervisor按名分配
Cell:PrivateCell(BYOK)Cell 私有

API

列出共享 Provider

GET /admin/shared-providers

SDK:

hyp.SharedProviders().List() []ProviderInfo

配置共享 Provider

POST /admin/shared-providers

重新配置

POST /admin/shared-providers/reconfigure

SDK:

result, err := hyp.SharedProviders().Reconfigure(ctx, cfg)

返回 *ReconfigureResult,包含成功/失败的 Provider 列表。


与 Cell 的关系

Cell 通过 ProviderStrategy 决定如何使用共享与私有 Provider:

策略行为
own_only只用私有,忽略共享
shared_only只用共享,忽略私有
own_first优先私有,fallback 共享
shared_first优先共享,fallback 私有

per-cell 健康追踪

每次调用带 cellID:

type Provider interface {
    Stream(ctx context.Context, cellID string, req Request) (Stream, error)
}

实现 per-cell 的:


降级态密文保护

共享池的密钥降级保护与 CellSpec 不同(INV-PERSIST-07):

判据放在 SharedProviderStore.Save 内部而非两个调用方——同 INV-EXEC-PROC-01 的治法。


Provider 探测

Admin 级 Provider 连通性探测:

POST /admin/cells/{id}/providers/{name}/probe

探测特定 Cell 的特定 Provider 是否可连通。


与 Observe 的关系

Provider 延迟统计

GET /admin/observe/provider-latency

SDK:

stats, err := hyp.Observe().ProviderLatencyStats(ctx)

跨 Cell 聚合 Provider 的延迟统计数据。


ContextWindow 配置

引擎不含 LLM 模型知识(INV-DS-01/05)。

Provider 配置中的 Models[].ContextWindow 必须显式配置。

未配时引擎不猜测物理窗口,经济预算走 DefaultEconomicWindow 并 Warn。

模型市场数据由应用层 weisyn.git/catalog.yaml(weisyn.ProviderCatalog())管理。