What data should you store in Milvus for agentic RAG?

Store embeddings, metadata, and document references in Milvus; store raw documents and large files externally to minimize collection size.

Milvus storage:

1. Vector embeddings: Dense embeddings (768–1536 dims) from OpenAI, Anthropic, or open-source models. This is the core retrieval data.

2. Metadata fields:

  • Document ID, source, ingestion timestamp
  • Document type (contract, invoice, email, code)
  • Author, department, classification level (security sensitive)
  • Date ranges, version numbers
  • Agent accessibility flags (“compliance_agent=true”)

3. Sparse embeddings: BM25/keyword vectors for hybrid search. Store alongside dense embeddings.

4. Summary tokens: If documents are chunked, store chunk summaries (50–100 tokens) in a text field. Agents use summaries to decide relevance.

External storage (S3, GCS):

  • Full document text
  • Images, PDFs, binary files
  • Large attachments
  • Historical versions

Milvus retrieves document IDs + metadata; agents fetch full content from external storage if needed.

Data example: json { "id": "doc_12345", "embedding": [0.23, -0.15, …], "sparse_embedding": {"invoice": 0.8, "payment": 0.6}, "metadata": { "source": "s3://bucket/invoices/INV-2025-00142", "doc_type": "invoice", "date": 1700000000, "agent_filter": ["finance", “audit”] }, "summary": “Invoice for 500 units of SKU-X, $50k, Q3 2025” }

This design keeps Milvus fast and scalable while agents access rich context.

Related Resources:

Like the article? Spread the word