跳到主要内容

Provider 集成

Provider 集成是 Anyy 发起模型请求时使用的后端连接。一个 provider entry 定义如何访问 模型服务、如何认证、使用哪种 wire protocol,以及可用的模型 id。

本页是 provider setup 和 provider 配置的主入口。主模型、辅助模型和 fallback 路由的选择流程见 配置模型。紧凑字段表见 Provider 配置参考

心智模型

请区分这些概念:

  • Provider entryproviders 下的一条后端连接配置。
  • 主模型:普通聊天和工具轮次使用的 provider/model。
  • 辅助模型:媒体相关能力可选使用的专用模型。
  • Fallback 链:主模型 provider 失败时的有序备用模型。

Provider entry 不会改变 Anyy 的身份。助手始终识别为 Anyy。

Setup 流程

常规 provider setup 使用向导:

anyy setup model

向导会依次询问 provider template、认证方式和模型 id。确认后,它会写入 provider entry, 并同步主模型字段。

用下面命令检查解析后的状态:

anyy config

Dashboard 的 Models 页面使用同一套 provider 配置。它可以设置全局主模型、重新配置 provider 认证/base URL/model、测试连接,并显示已配置的 fallback 和辅助模型条目。

配置形态

典型 API key provider:

providers:
- id: openrouter
profile: openrouter
credential_ref: env:OPENROUTER_API_KEY
default_model: anthropic/claude-sonnet-4

main_model:
provider_id: openrouter
model: anthropic/claude-sonnet-4

profile 会带入已知的 API mode、base URL、model catalog URL 和默认认证形态。如果不使用 profile,需要显式提供必需字段:

providers:
- id: local
api_mode: openai-compatible
auth_mode: none
base_url: http://127.0.0.1:1234/v1
default_model: local-model

main_model:
provider_id: local
model: local-model

default_model: provider/model 仍作为主模型简写被接受。Anyy 加载配置时会把它与 main_model 规范化到同一视图。

Provider Profiles

当前可用于 setup 的 profile id 包括:

openrouternovitalmstudioanthropicopenai-codexopenai-apialibabaxiaomitencent-tokenhubnvidiahuggingfacegeminideepseekxaizaikimi-codingkimi-coding-cnstepfunminimaxminimax-cnollama-cloudarceegmikilocodeopencode-zenopencode-goazure-foundryalibaba-coding-planai-gateway

有两个 setup template 故意没有 profile id:anthropic-compatiblecustom-openai-compatible。它们会写入显式的 api_modebase_url 和认证字段。

Profile alias 只是便利入口。提交到文档或示例里的配置应优先使用 canonical id:

AliasCanonical profile
openaiopenai-api
codexopenai-codex
qwen, qwen-cloudalibaba
xiaomi-mimoxiaomi
nvidia-nimnvidia
google-ai-studio, google-geminigemini
zai-glmzai
kimi-cnkimi-coding-cn

部分 catalog entry 可能因为认证流尚不可用而显示为 blocked。Blocked entry 不是可用 provider, 直到对应认证路径实现并启用。

API Modes

api_mode 选择 wire protocol:

用途
openai-compatibleOpenAI-compatible chat/completions endpoint 和很多 hosted router。
anthropic-messagesAnthropic Messages-compatible endpoint。
google-gemini原生 Google Gemini API。
openai-responsesOpenAI Responses API。
codex-responsesopenai-codex profile 使用的 Codex Responses 后端。

不要发明 adapter 名称。例如 DeepSeek 使用 openai-compatibledeepseek-compatible 会被拒绝。

认证

Provider 凭据字段接受引用,不接受裸密钥:

引用用途
env:NAME由 shell 或 service manager 提供的凭据。
file:/absolute/path存放在 profile home 外部的凭据。
secret:nameAnyy 管理的 profile-local secret。

优先使用 credential_refapi_key_ref 仍被 API-key provider 接受。Provider 凭据字段拒绝 literal:

Auth mode:

auth_mode凭据规则
api_key使用 credential_refapi_key_ref
oauth需要引用时使用 credential_ref;拒绝 api_key_ref
external_process需要引用时使用 credential_ref;拒绝 api_key_ref
aws_sdk需要时使用 credential_ref
none不允许 credential ref。Base URL 必须是本地或私有地址。

Secret 存储位置和 redaction 行为见 凭据与鉴权

自定义与本地 Endpoint

当 endpoint 是 OpenAI-compatible、但不是内置 profile 时,使用自定义 provider:

providers:
- id: custom-openai
api_mode: openai-compatible
auth_mode: api_key
base_url: https://models.example.com/v1
credential_ref: env:CUSTOM_OPENAI_API_KEY
default_model: team-model

auth_mode: none 只用于本地或私有 endpoint:

providers:
- id: lmstudio
profile: lmstudio
auth_mode: none
base_url: http://127.0.0.1:1234/v1
default_model: local-model

公开互联网 endpoint 如果没有认证,会被配置校验拒绝。

模型目录与覆盖

当 provider 有 model catalog 时,anyy setup model 可以列出模型。如果 catalog 为空、 不可用,或没有你需要的模型,请在向导里选择 Enter model id,或添加手写模型条目:

providers:
- id: local
profile: lmstudio
models:
- id: local-model
display_name: Local Model
capabilities:
tool_calls: true
streaming: true
max_context_tokens: 32768

Capability override 是精确覆盖。省略某个 key 表示保留 profile 或 provider adapter 的默认判断; 只有确认 provider 行为时才设置 truefalse

路由与 Fallback

模型路由归 配置模型 负责。那一页覆盖:

  • 设置 main_model
  • 配置 auxiliary_models.*
  • 配置 auxiliary_models.fallback
  • 理解 fallback 何时触发

Provider-local fallback_chain 仍作为兼容输入被接受,字段与 auxiliary_models.fallback 相同。 推荐 setup 路径会把 canonical fallback 写入 auxiliary_models.fallback

Fallback 是容错路径,不是绕过能力要求的方式。如果候选模型无法满足本轮所需的工具、媒体、 上下文或 reasoning 连续性要求,它仍可能被跳过。

运行检查

Provider 编辑后运行:

anyy config
anyy doctor

anyy config 会报告解析后的 provider、model、API mode、base URL、认证引用状态和 max-turn 设置。Provider 请求失败仍会在模型实际使用时暴露;config.yaml 里没有单独的 provider health-check 配置块。

故障排查

  • Auth 显示 “(not set)”:引用的环境变量、文件或 secret 不存在。
  • Unknown provider profile:使用上方 canonical profile id,或显式配置 api_modebase_url
  • 模型列表为空:手动输入模型 id。Provider catalog 只是便利入口,不是唯一来源。
  • Fallback 从不触发:fallback 只在 fallback-eligible provider error 时触发,且只会转向 兼容候选。