fix(docs): correct embeddings provider count and guard the table against drift

The refreshed provider table said 12 embedders; EmbedderFactory registers 11.
The other three rows were right, so the table drifted silently again inside the
commit that was fixing it drifting.

Add tests/test_agents_md_provider_counts.py, which parses the AGENTS.md provider
table and asserts each documented count equals len(<Factory>.provider_to_class).
Verified it fails on the 12 and passes on 11.
This commit is contained in:
kartik-mem0
2026-08-12 19:30:30 +05:30
parent 49df324d99
commit 809bccfbe7
2 changed files with 38 additions and 1 deletions
+1 -1
View File
@@ -342,7 +342,7 @@ The SDK uses a consistent plugin architecture across 4 categories. Each category
|----------|-------|---------|
| **LLMs** | 18 | OpenAI, Anthropic, AWS Bedrock, Azure OpenAI, Gemini, Groq, Ollama, Together, DeepSeek, vLLM, LiteLLM, LM Studio, xAI |
| **Vector Stores** | 25 | Qdrant, Pinecone, Chroma, Weaviate, Milvus, MongoDB, Redis, Elasticsearch, pgvector, Supabase, Faiss, S3 Vectors |
| **Embeddings** | 12 | OpenAI, Azure OpenAI, Gemini, HuggingFace, FastEmbed, Together, AWS Bedrock, Ollama, Vertex AI |
| **Embeddings** | 11 | OpenAI, Azure OpenAI, Gemini, HuggingFace, FastEmbed, Together, AWS Bedrock, Ollama, Vertex AI |
| **Rerankers** | 5 | Cohere, HuggingFace, LLM-based, Sentence Transformer, Zero Entropy |
### Two Usage Modes
+37
View File
@@ -0,0 +1,37 @@
"""Drift test: the provider counts in AGENTS.md must match the factory registries."""
import re
from pathlib import Path
import pytest
from mem0.utils.factory import (
EmbedderFactory,
LlmFactory,
RerankerFactory,
VectorStoreFactory,
)
AGENTS_MD = Path(__file__).resolve().parents[1] / "AGENTS.md"
ROW_TO_FACTORY = {
"LLMs": LlmFactory,
"Vector Stores": VectorStoreFactory,
"Embeddings": EmbedderFactory,
"Rerankers": RerankerFactory,
}
def _documented_counts() -> dict[str, int]:
rows = re.findall(r"^\|\s*\*\*(.+?)\*\*\s*\|\s*(\d+)\s*\|", AGENTS_MD.read_text(), re.M)
return {name: int(count) for name, count in rows}
@pytest.mark.parametrize("row_name,factory", ROW_TO_FACTORY.items())
def test_documented_count_matches_registry(row_name, factory):
documented = _documented_counts()
assert row_name in documented, f"AGENTS.md provider table has no {row_name!r} row"
assert documented[row_name] == len(factory.provider_to_class), (
f"AGENTS.md says {documented[row_name]} {row_name} but "
f"{factory.__name__}.provider_to_class has {len(factory.provider_to_class)}"
)