Back to Tools
🕸️

Weaviate

Vector Database

Weaviate is an open-source vector database that stores both objects and vectors, allowing for combining vector search with structured filtering.

Weaviate B.V.
9k stars
100k+/month
Open Source / Cloud
Pricing Model
100k+/month
Downloads
Vector Database
Category
Memory Capabilities
How Weaviate handles agent memory
  • GraphQL API for complex queries
  • Multi-modal vector search
  • Automatic vectorization modules
  • Hybrid search capabilities
  • Real-time data ingestion
Key Features
GraphQL query interface
Built-in ML model integration
Multi-tenancy support
Horizontal scaling
Rich filtering capabilities
Common Use Cases
Knowledge graphs with vectors
Multi-modal search applications
Enterprise search solutions
Recommendation engines
Content management systems
Installation
docker run -p 8080:8080 semitechnologies/weaviate
Quick Start
import weaviate

# Connect to Weaviate
client = weaviate.Client("http://localhost:8080")

# Create schema
schema = {
    "class": "Memory",
    "properties": [
        {"name": "content", "dataType": ["text"]},
        {"name": "type", "dataType": ["string"]},
        {"name": "timestamp", "dataType": ["date"]}
    ]
}
client.schema.create_class(schema)

# Add memory
client.data_object.create({
    "content": "User prefers technical details",
    "type": "preference",
    "timestamp": "2025-01-06T10:00:00Z"
}, "Memory")

# Query with GraphQL
result = client.query.get("Memory", ["content", "type"]).with_near_text({
    "concepts": ["user preferences"]
}).do()