-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: ABX
-
None
-
Python Drivers
-
None
-
None
-
None
-
None
-
None
-
None
TL;DR
CrewAI's Voyage AI embedder defaults to the old voyage-2 model. Voyage already accepts any model name we pass, so this is just a default-value change: update it to voyage-4 (Voyage's current recommended general-purpose model) so zero-config users get modern embeddings.
Context
CrewAI's RAG layer turns text into embeddings via a provider. When a user picks Voyage AI without naming a model, it falls back to a hardcoded voyage-2 — an old-generation model. The provider passes the model string straight through to the Voyage SDK with no allowlist, so voyage-4 already works; there's nothing to "add support" for. The stale default lives in three spots plus the docs:
- voyageai_provider.py (field default)
- types.py (type annotation)
- embedding_callable.py (runtime fallback)
- Docs: https://docs.crewai.com/en/tools/ai-ml/ragtool — source ragtool.mdx
Acceptance Criteria
- [ ] The default Voyage AI model is voyage-4 in all three places it's currently voyage-2 (field default, type annotation, runtime fallback).
- [ ] Zero-config Voyage users get voyage-4; explicitly naming a model (e.g. voyage-code-4) still passes through unchanged.
- [ ] Existing Voyage tests pass, updated only where they assume voyage-2 as the default.
- [ ] Docs list voyage-4 as the default and refresh the model options list.