From ddad6c5a7c41adee7085c5d993bb03b57b67ca5d Mon Sep 17 00:00:00 2001 From: zpljd258 <11162658+zpljd258@users.noreply.github.com> Date: Wed, 24 Jun 2026 00:06:01 +0800 Subject: [PATCH] feat(providers): add OpenCode Zen and OpenCode Go providers --- nanobot/config/schema.py | 2 ++ nanobot/providers/registry.py | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/nanobot/config/schema.py b/nanobot/config/schema.py index 3994c273..2144d884 100644 --- a/nanobot/config/schema.py +++ b/nanobot/config/schema.py @@ -235,6 +235,8 @@ class ProvidersConfig(Base): github_copilot: ProviderConfig = Field(default_factory=ProviderConfig, exclude=True) # Github Copilot (OAuth) qianfan: ProviderConfig = Field(default_factory=ProviderConfig) # Qianfan (百度千帆) nvidia: ProviderConfig = Field(default_factory=ProviderConfig) # NVIDIA NIM (nvapi- keys) + opencode_zen: ProviderConfig = Field(default_factory=ProviderConfig) # OpenCode Zen (curated coding models) + opencode_go: ProviderConfig = Field(default_factory=ProviderConfig) # OpenCode Go (low-cost coding models) @model_validator(mode="after") def convert_extra_providers(self): diff --git a/nanobot/providers/registry.py b/nanobot/providers/registry.py index 273ea4cc..88bf76f4 100644 --- a/nanobot/providers/registry.py +++ b/nanobot/providers/registry.py @@ -543,6 +543,26 @@ PROVIDERS: tuple[ProviderSpec, ...] = ( detect_by_base_keyword="nvidia.com", default_api_base="https://integrate.api.nvidia.com/v1", ), + # OpenCode Zen: curated reliable models for coding agents + ProviderSpec( + name="opencode_zen", + keywords=("opencode_zen", "opencode-zen", "zen"), + env_key="OPENCODE_API_KEY", + display_name="OpenCode Zen", + backend="openai_compat", + is_gateway=True, + default_api_base="https://opencode.ai/zen/v1", + ), + # OpenCode Go: low-cost coding models + ProviderSpec( + name="opencode_go", + keywords=("opencode_go", "opencode-go"), + env_key="OPENCODE_API_KEY", + display_name="OpenCode Go", + backend="openai_compat", + is_gateway=True, + default_api_base="https://opencode.ai/zen/go/v1", + ), # === Auxiliary (not a primary LLM provider) ============================ # Groq: mainly used for Whisper voice transcription, also usable for LLM ProviderSpec(