🛠 API Reference
Store Classes
AgentVectorDBStore
Core class for managing vector database operations.
Constructor
AgentVectorDBStore(
db_path: str = "./vector_db"
) -> AgentVectorDBStore
Parameters:
db_path
(str): Path to database directory
Returns:
AgentVectorDBStore
: Store instance
Raises:
InitializationError
: If database initialization failsPermissionError
: If directory access is denied
Methods
get_or_create_collection
Creates a new collection or returns existing one.
def get_or_create_collection(
name: str,
embedding_function: Optional[BaseEmbeddingFunction] = None,
recreate: bool = False,
schema: Optional[MemoryEntrySchema] = None
) -> AgentMemoryCollection
Parameters:
name
(str): Unique collection identifierembedding_function
(BaseEmbeddingFunction, optional): Function for generating embeddingsrecreate
(bool): If True, deletes existing collectionschema
(MemoryEntrySchema, optional): Custom schema definition
Returns:
AgentMemoryCollection
: Collection instance
Raises:
SchemaError
: If schema validation failsOperationError
: If collection creation fails
Example:
ef = DefaultTextEmbeddingFunction(dimension=384)
collection = store.get_or_create_collection(
name="agent_memories",
embedding_function=ef
)
list_collections
Returns list of available collections.
def list_collections() -> List[str]
Returns:
List[str]
: Names of available collections
Example:
collections = store.list_collections()
print(f"Available collections: {collections}")
AsyncAgentVectorDBStore
Asynchronous version of AgentVectorDBStore.
Constructor
AsyncAgentVectorDBStore(
db_path: str = "./vector_db"
) -> AsyncAgentVectorDBStore
Parameters: Same as AgentVectorDBStore
Methods
All methods are async versions of AgentVectorDBStore methods.
Collection Classes
AgentMemoryCollection
Manages memory entries within a collection.
Methods
add
Adds a single memory entry.
def add(
content: str,
type: str = "memory",
importance_score: float = 0.5,
metadata: Optional[Dict[str, Any]] = None,
vector: Optional[np.ndarray] = None
) -> Dict[str, Any]
Parameters:
content
(str): Text content of memorytype
(str): Category/type of memoryimportance_score
(float): Value between 0.0 and 1.0metadata
(Dict[str, Any], optional): Additional metadatavector
(np.ndarray, optional): Pre-computed embedding vector
Returns:
Dict[str, Any]
: Added memory entry
Raises:
SchemaError
: If data validation failsEmbeddingError
: If vector generation fails
Example:
entry = collection.add(
content="User preference noted",
type="user_pref",
importance_score=0.8,
metadata={"category": "ui", "user_id": "123"}
)
add_batch
Adds multiple memories efficiently.
def add_batch(
entries: List[Dict[str, Any]],
batch_size: int = 100
) -> List[Dict[str, Any]]
Parameters:
entries
(List[Dict]): List of memory entriesbatch_size
(int): Size of processing batches
Returns:
List[Dict]
: Added memory entries
Note: Requires minimum 8 entries for KMeans index creation
Example:
memories = [
{
"content": "First observation",
"type": "observation",
"importance_score": 0.7
},
# ... at least 7 more entries
]
results = collection.add_batch(memories)
query
Performs semantic search.
def query(
query_text: Optional[str] = None,
query_vector: Optional[np.ndarray] = None,
k: int = 5,
filter_sql: Optional[str] = None,
include_vectors: bool = False,
select_columns: Optional[List[str]] = None
) -> List[Dict[str, Any]]
Parameters:
query_text
(str, optional): Text to search forquery_vector
(np.ndarray, optional): Pre-computed query vectork
(int): Number of results to returnfilter_sql
(str, optional): SQL filter expressioninclude_vectors
(bool): Include embedding vectors in resultsselect_columns
(List[str], optional): Specific columns to return
Returns:
List[Dict]
: Matching memory entries
Example:
# Basic query
results = collection.query(
query_text="system performance",
k=3
)
# Advanced query
results = collection.query(
query_text="errors",
k=5,
filter_sql="type = 'error' AND importance_score > 0.8",
include_vectors=True
)
Embedding Functions
BaseEmbeddingFunction
Abstract base class for embedding functions.
class BaseEmbeddingFunction:
def __init__(self, dimension: int):
"""
Args:
dimension (int): Embedding vector dimension
"""
self._dimension = dimension
@property
def dimension(self) -> int:
"""Get embedding dimension"""
return self._dimension
def embed(self, texts: List[str]) -> np.ndarray:
"""
Generate embeddings for texts.
Args:
texts (List[str]): Texts to embed
Returns:
np.ndarray: Embedding vectors
Raises:
EmbeddingError: If embedding generation fails
"""
raise NotImplementedError
DefaultTextEmbeddingFunction
Default embedding implementation.
class DefaultTextEmbeddingFunction(BaseEmbeddingFunction):
def __init__(
self,
dimension: int = 384,
normalize: bool = True
):
"""
Args:
dimension (int): Embedding dimension
normalize (bool): Normalize vectors
"""
super().__init__(dimension)
self.normalize = normalize
Schema Management
MemoryEntrySchema
Base schema for memory entries.
class MemoryEntrySchema:
def __init__(
self,
vector_dimension: int,
additional_fields: Optional[Dict[str, Any]] = None
):
"""
Args:
vector_dimension (int): Embedding dimension
additional_fields (Dict): Extra schema fields
"""
Exception Classes
AgentVectorDBException
Base exception class.
class AgentVectorDBException(Exception):
"""Base exception for AgentVectorDB"""
pass
Specific Exceptions
InitializationError
: Database initialization failedSchemaError
: Schema validation failedQueryError
: Invalid queryOperationError
: Operation failedEmbeddingError
: Embedding generation failed
Type Definitions
MemoryEntry = TypedDict('MemoryEntry', {
'content': str,
'type': str,
'importance_score': float,
'metadata': Optional[Dict[str, Any]],
'vector': Optional[List[float]]
})
QueryResult = TypedDict('QueryResult', {
'content': str,
'type': str,
'_distance': float,
'metadata': Optional[Dict[str, Any]]
})
Constants
DEFAULT_DIMENSION = 384
MIN_KMEANS_ENTRIES = 8
DEFAULT_BATCH_SIZE = 100
Configuration
Logging Setup
def configure_logging(
level: str = "INFO",
log_file: Optional[str] = None,
format: str = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
) -> None:
"""
Configure logging settings.
Args:
level (str): Log level
log_file (str, optional): Log file path
format (str): Log message format
"""
For more examples and detailed usage, check the Examples section.