Default direct Venice to chat completions

Set the shipped direct Venice chat provider default to use Agent Zero's chat-completions transport while preserving the existing Venice API base and disabled Venice system prompt injection.\n\nAdd a focused regression check that direct venice gets the chat default, a0_venice and embeddings stay untouched, and explicit model kwargs can still override the provider default.

Alessandro committed Jul 7, 2026 at 16:52 UTC 67895f7b44033397c8e151279e9425f4a5714f34
2 files changed +29
conf/model_providers.yaml
+1
@@ -173,6 +173,7 @@ chat:
173 models_list:
174 endpoint_url: "https://api.venice.ai/api/v1/models"
175 kwargs:
176 + a0_api_mode: chat
177 api_base: https://api.venice.ai/api/v1
178 venice_parameters:
179 include_venice_system_prompt: false
tests/test_model_config_api_keys.py
+28
@@ -270,6 +270,34 @@ def test_ollama_cloud_provider_config_requires_key_and_base_url():
270 assert "api_key_mode" not in ollama_cloud
271
272
273 +def test_direct_venice_chat_provider_defaults_to_chat_completions(monkeypatch):
274 + import yaml
275 +
276 + monkeypatch.setattr(models, "get_api_key", lambda provider: "None")
277 +
278 + provider_path = PROJECT_ROOT / "conf/model_providers.yaml"
279 + provider_config = yaml.safe_load(provider_path.read_text(encoding="utf-8"))
280 +
281 + venice = provider_config["chat"]["venice"]
282 + assert venice["kwargs"]["a0_api_mode"] == "chat"
283 + assert venice["kwargs"]["api_base"] == "https://api.venice.ai/api/v1"
284 + assert venice["kwargs"]["venice_parameters"] == {
285 + "include_venice_system_prompt": False
286 + }
287 + assert "a0_api_mode" not in provider_config["chat"]["a0_venice"]["kwargs"]
288 + assert "a0_api_mode" not in provider_config["embedding"]["venice"]["kwargs"]
289 +
290 + model = models.get_chat_model("venice", "llama-3.3-70b")
291 + assert model.kwargs["a0_api_mode"] == "chat"
292 +
293 + custom = models.get_chat_model(
294 + "venice",
295 + "llama-3.3-70b",
296 + a0_api_mode="responses",
297 + )
298 + assert custom.kwargs["a0_api_mode"] == "responses"
299 +
300 +
301 def test_missing_api_key_banner_does_not_include_auto_modal_metadata(monkeypatch):
302 from plugins._model_config.helpers import model_config
303