Skip to content

fix(venice): sync model catalog with live Venice API#38281

Closed
powermaster888 wants to merge 1 commit intoopenclaw:mainfrom
powermaster888:fix/venice-catalog-sync-2026-03
Closed

fix(venice): sync model catalog with live Venice API#38281
powermaster888 wants to merge 1 commit intoopenclaw:mainfrom
powermaster888:fix/venice-catalog-sync-2026-03

Conversation

@powermaster888
Copy link
Copy Markdown
Contributor

Summary

Syncs the Venice model static catalog (venice-models.ts) with current Venice API data. The fallback catalog was stale — several models launched since the last update were missing, and context window values had drifted from reality.

Changes

Added 15 missing models:

  • claude-opus-4-6, claude-sonnet-4-6 (Anthropic 4.6 series)
  • openai-gpt-54, openai-gpt-53-codex, openai-gpt-4o-2024-11-20, openai-gpt-4o-mini-2024-07-18
  • gemini-3-1-pro-preview
  • kimi-k2-5, minimax-m25
  • qwen3-5-35b-a3b, qwen3-coder-480b-a35b-instruct-turbo
  • zai-org-glm-4.6, zai-org-glm-4.7-flash, zai-org-glm-5

Updated context windows to match live API:

  • grok-41-fast: 262144 → 1000000
  • claude-opus-4-5: 202752 → 198000
  • Several other models aligned to actual API-reported values

Updated model IDs to match current Venice API:

  • claude-opus-45claude-opus-4-5 (Venice now uses dash-separated format)
  • claude-sonnet-45claude-sonnet-4-5

Why

When the Venice API is unreachable, OpenClaw falls back to the static catalog. Missing entries mean users can't use newly available models in offline/degraded scenarios. Stale context windows can cause unnecessary truncation or over-allocation. Relates to #38168.

Test plan

  • vitest run src/agents/venice-models.test.ts — all 3 tests pass
  • Verified catalog entries against curl https://api.venice.ai/api/v1/models

🤖 Generated with Claude Code

@openclaw-barnacle openclaw-barnacle Bot added agents Agent runtime and tooling size: S labels Mar 6, 2026
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 61c2e31722

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

// Anthropic (via Venice)
{
id: "claude-opus-45",
id: "claude-opus-4-5",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve aliases for renamed Venice Claude model IDs

Renaming the catalog IDs to claude-opus-4-5/claude-sonnet-4-5 without keeping claude-opus-45/claude-sonnet-45 aliases breaks backward compatibility for existing configs that still pin the old Venice model refs; there is no Venice-specific normalization path (only Anthropic normalization exists in normalizeProviderModelId), so when /models discovery falls back to this static catalog those users lose catalog matches and can hit model-not-found/capability-metadata regressions despite previously valid config values.

Useful? React with 👍 / 👎.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Mar 6, 2026

Greptile Summary

This PR syncs the Venice model static fallback catalog (src/agents/venice-models.ts) by adding 15 missing models and updating context window values to match what the live Venice API now reports. It also corrects two Claude model IDs (claude-opus-45claude-opus-4-5, claude-sonnet-45claude-sonnet-4-5) and fixes a pre-existing name mismatch on minimax-m21 (previously labelled "MiniMax M2.5", now correctly "MiniMax M2.1", with a separate minimax-m25 entry added).

  • The context window rounding changes (e.g. 131072 → 128000, 262144 → 256000) are consistent throughout and align with Venice switching from binary-aligned values to rounded decimal values.
  • All 15 new model entries follow the existing catalog pattern correctly.
  • The two newly added versioned GPT-4o models (openai-gpt-4o-2024-11-20, openai-gpt-4o-mini-2024-07-18) are declared with input: ["text"] only, but GPT-4o and GPT-4o Mini are multimodal — the existing openai-gpt-52-codex entry already includes "image". This is worth confirming against the live Venice API since the "Verified catalog against live API" test plan item is unchecked.
  • The new zai-org-glm-* models are placed in the private section, consistent with the pre-existing zai-org-glm-4.7 entry; Venice may run these on its own private infrastructure.

Confidence Score: 4/5

  • Safe to merge with a minor open question about vision support for the two new versioned GPT-4o catalog entries.
  • The change is purely a static data update to a fallback catalog with no logic changes. The ID and context window corrections are well-reasoned, and the only notable concern is whether the two new GPT-4o versioned entries should include "image" input — a mismatch that would only affect offline/fallback usage. All three existing tests pass.
  • Pay attention to openai-gpt-4o-2024-11-20 and openai-gpt-4o-mini-2024-07-18 entries around lines 327–342 to verify whether Venice's proxy for these endpoints supports vision.

Last reviewed commit: 61c2e31

Comment on lines +327 to 342
id: "openai-gpt-4o-2024-11-20",
name: "GPT-4o (via Venice)",
reasoning: false,
input: ["text"],
contextWindow: 128000,
maxTokens: 8192,
privacy: "anonymized",
},
{
id: "openai-gpt-4o-mini-2024-07-18",
name: "GPT-4o Mini (via Venice)",
reasoning: false,
input: ["text"],
contextWindow: 128000,
maxTokens: 8192,
privacy: "anonymized",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing vision capability for GPT-4o models

Both openai-gpt-4o-2024-11-20 and openai-gpt-4o-mini-2024-07-18 are declared with input: ["text"] only. However, GPT-4o and GPT-4o Mini are multimodal models that support image input. The existing openai-gpt-52-codex entry in this same section already includes "image" in its input array.

If Venice's proxy for these versioned endpoints supports vision (which is worth confirming against the live API), omitting "image" here would silently prevent users from sending images to these models in offline/fallback scenarios.

Suggested change
id: "openai-gpt-4o-2024-11-20",
name: "GPT-4o (via Venice)",
reasoning: false,
input: ["text"],
contextWindow: 128000,
maxTokens: 8192,
privacy: "anonymized",
},
{
id: "openai-gpt-4o-mini-2024-07-18",
name: "GPT-4o Mini (via Venice)",
reasoning: false,
input: ["text"],
contextWindow: 128000,
maxTokens: 8192,
privacy: "anonymized",
{
id: "openai-gpt-4o-2024-11-20",
name: "GPT-4o (via Venice)",
reasoning: false,
input: ["text", "image"],
contextWindow: 128000,
maxTokens: 8192,
privacy: "anonymized",
},
{
id: "openai-gpt-4o-mini-2024-07-18",
name: "GPT-4o Mini (via Venice)",
reasoning: false,
input: ["text", "image"],
contextWindow: 128000,
maxTokens: 8192,
privacy: "anonymized",
},

This is worth verifying against curl https://api.venice.ai/api/v1/models (which is also the unchecked item in the PR test plan).

Prompt To Fix With AI
This is a comment left during a code review.
Path: src/agents/venice-models.ts
Line: 327-342

Comment:
**Missing vision capability for GPT-4o models**

Both `openai-gpt-4o-2024-11-20` and `openai-gpt-4o-mini-2024-07-18` are declared with `input: ["text"]` only. However, GPT-4o and GPT-4o Mini are multimodal models that support image input. The existing `openai-gpt-52-codex` entry in this same section already includes `"image"` in its `input` array.

If Venice's proxy for these versioned endpoints supports vision (which is worth confirming against the live API), omitting `"image"` here would silently prevent users from sending images to these models in offline/fallback scenarios.

```suggestion
  {
    id: "openai-gpt-4o-2024-11-20",
    name: "GPT-4o (via Venice)",
    reasoning: false,
    input: ["text", "image"],
    contextWindow: 128000,
    maxTokens: 8192,
    privacy: "anonymized",
  },
  {
    id: "openai-gpt-4o-mini-2024-07-18",
    name: "GPT-4o Mini (via Venice)",
    reasoning: false,
    input: ["text", "image"],
    contextWindow: 128000,
    maxTokens: 8192,
    privacy: "anonymized",
  },
```

This is worth verifying against `curl https://api.venice.ai/api/v1/models` (which is also the unchecked item in the PR test plan).

How can I resolve this? If you propose a fix, please make it concise.

@vincentkoc
Copy link
Copy Markdown
Member

Thanks for the catalog sync work here. I folded the live Venice catalog refresh into the consolidated replacement PR at #38306 alongside the #38168 runtime fixes, so we only have one active Venice fix branch to review.

Closing this as subsumed by #38306 to keep the queue clean, but the changelog credit for the catalog sync is preserved there. If you see a catalog-only detail from this branch that did not make it into #38306, call it out and I'll re-check it.

@vincentkoc vincentkoc added dedupe:child Duplicate issue/PR child in dedupe cluster close:duplicate Closed as duplicate labels Mar 6, 2026
@vincentkoc vincentkoc closed this Mar 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling close:duplicate Closed as duplicate dedupe:child Duplicate issue/PR child in dedupe cluster size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants