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()