跳到主要内容

Provider Runtime

Provider runtime 会把 Anyy model selection 解析为具体 provider adapter call。它把 provider APIs 适配成 agent.LLMProvider

Provider Registry

Provider config 从 config.yaml 加载,并规范化为 llm.ProviderConfig。Provider templates 和 setup metadata 位于 internal/providerprofiles

Provider IDs、model IDs、aliases、auxiliary slots、auth modes、base URLs 和 catalog policy 是 config/runtime data,不由 sessions 拥有。

Request Builder

Request builder 会从持久化 transcript 创建 provider-call copy。它可以修复 tool-call/tool-result pairing、 应用 provider prompt adaptation、派生 cache policy,并裁剪过大的 tool results。

它不能 mutate stored transcript,也不能改变 Anyy identity text。

Streaming

Provider adapters 发出 agent.LLMStreamEvent values:message start、text delta、reasoning delta、 tool call、message stop、usage 和 error。

Adapters 负责组装 provider-specific partial tool arguments,再把完整 tool call 返回给 loop。

Fallback

只有 provider error action hints 允许 fallback 时才会选择 fallback。Candidate 必须满足所需 capability, 例如 tool calls、image input、video input 和 reasoning replay,除非 config 明确允许 drop。

Fallback attempts 会通过 attempt traces、events、usage 和 status 暴露。

能力解析

Capabilities 来自 provider profile defaults、model catalog data 和 tri-state config overrides。 Runtime-resolved capabilities 是普通 booleans。

Capability checks 应位于 provider runtime 或 request building 中,而不是 TUI、dashboard 或 channel clients。

Usage Accounting

Usage records 包含 prompt/input/output/total tokens、cache read/write tokens、reasoning tokens、 rate-limit metadata、retry count,以及 provider 暴露时的 fallback routing。

Diagnostics 必须 bounded 且 redacted。不要记录完整 provider payloads、secrets 或 raw prompts。