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。