Storage Configuration
AgentMap provides a unified storage service system supporting multiple backends including CSV files, JSON documents, vector databases, Firebase, and cloud storage providers. This guide covers complete storage configuration with authentication, optimization, and best practices.
📋 Storage Configuration Overview
Storage configuration is defined in a separate YAML file (typically agentmap_config_storage.yaml
) and supports:
- Local Storage: CSV, JSON, File storage with intelligent management
- Vector Databases: Pinecone, Supabase Vector, local vector storage
- Key-Value Stores: Redis, local JSON, in-memory storage
- Firebase: Firestore, Realtime Database, Cloud Storage
- Cloud Storage: Azure Blob, AWS S3, Google Cloud Storage
- Memory Storage: High-performance in-memory operations
🗂️ Complete Storage Configuration Structure
# CSV storage configuration
csv:
default_directory: "data/csv"
# Enable automatic CSV file creation on write operations
auto_create_files: false
collections:
users: "data/csv/users.csv"
products: "data/csv/products.csv"
orders: "data/csv/orders.csv"
# JSON document storage
json:
default_directory: "data/json"
encoding: "utf-8"
indent: 2
collections:
configs: "data/json/configs.json"
user_profiles: "data/json/profiles.json"
# Vector database storage
vector:
default_provider: "local"
collections:
documents:
provider: "pinecone"
index_name: "document-index"
namespace: "general"
dimension: 1536
metric: "cosine"
api_key: "env:PINECONE_API_KEY"
# Key-value storage
kv:
default_provider: "local"
collections:
cache:
provider: "redis"
connection: "env:REDIS_URL"
prefix: "agentmap:"
# Firebase configuration
firebase:
default_project: "env:FIREBASE_DEFAULT_PROJECT"
auth:
service_account_key: "env:FIREBASE_SERVICE_ACCOUNT"
firestore:
collections:
users:
collection_path: "users"
# File storage configuration
file:
default_directory: "data/files"
encoding: "utf-8"
allow_binary: true
chunk_size: 1000
chunk_overlap: 200
# Memory storage (high-performance)
memory:
default_ttl: 3600 # Time to live in seconds
max_size: 10000 # Maximum number of items
cleanup_interval: 300 # Cleanup interval in seconds
📄 CSV Storage Configuration
CSV storage provides pandas-based operations with intelligent ID field detection and multiple output formats.
Basic CSV Configuration
csv:
# Default directory for CSV files
default_directory: "data/csv"
# Optional: Global encoding setting
encoding: "utf-8"
# File creation behavior
auto_create_files: false # Enable automatic CSV file creation on write operations
# Named CSV collections
collections:
# Simple filename mapping
users: "data/csv/users.csv"
products: "data/csv/products.csv"
orders: "data/csv/orders.csv"
# Subdirectory organization
customers: "data/csv/customers/info.csv"
transactions: "data/csv/financial/transactions.csv"
# Log files
app_logs: "logs/app_events.csv"
audit_logs: "logs/audit/security_events.csv"
Advanced CSV Configuration
csv:
default_directory: "data/csv"
# Global CSV options
options:
encoding: "utf-8"
delimiter: ","
quotechar: '"'
escapechar: null
# Collection-specific configurations
collections:
# Standard configuration
users:
path: "data/csv/users.csv"
encoding: "utf-8"
# Custom delimiter and encoding
legacy_data:
path: "imports/legacy.txt"
delimiter: "|"
encoding: "latin-1"
# Large dataset optimization
large_dataset:
path: "data/csv/big_data.csv"
chunk_size: 10000
low_memory: true
# Custom ID field specification
products:
path: "data/csv/products.csv"
id_field: "sku" # Use SKU as identifier instead of auto-detection
# Business identifier examples
employees:
path: "data/csv/employees.csv"
id_field: "employee_id"
stocks:
path: "data/csv/stocks.csv"
id_field: "ticker_symbol"
CSV Auto-Creation Behavior
CSV Storage Service can automatically create CSV files that don't exist when write operations are performed. This behavior is controlled by the auto_create_files
configuration option:
csv:
default_directory: "data/csv"
auto_create_files: true # Enable automatic CSV file creation on write
Key Features:
- When
auto_create_files: true
, missing CSV files are automatically created during write operations - When
auto_create_files: false
(default), write operations to non-existent files will fail with a clear error message - File structure is determined by the data being written
- Directories are always created automatically regardless of this setting
- Default value is
false
for backward compatibility
Example Error Message (when disabled):
CSV file does not exist: data/csv/new_file.csv. Enable auto_create_files: true in CSV config to create automatically.
CSV ID Field Detection
AgentMap automatically detects ID fields using smart logic:
Automatic Detection Priority:
- Exact match:
"id"
(case insensitive) - Ends with
_id
:user_id
,customer_id
,order_id
- Starts with
id_
:id_user
,id_customer
- First column position if multiple candidates exist
Explicit ID Field Override:
csv:
collections:
# Business identifiers require explicit configuration
products:
path: "products.csv"
id_field: "sku" # Product SKU as identifier
users:
path: "users.csv"
id_field: "email" # Email as identifier
stocks:
path: "stocks.csv"
id_field: "ticker" # Stock ticker symbol