OpenBMB/ChatDev · error · ValueError
FileMemory requires a file memory store configuration
Error message
FileMemory requires a file memory store configuration
What it means
FileMemory requires the store config to include a FileMemoryConfig section. store.as_config(FileMemoryConfig) returning None means the MemoryStoreConfig is typed for another memory backend, so the constructor rejects it.
Source
Thrown at runtime/node/agent/memory/file_memory.py:36
MemoryItem,
MemoryWritePayload,
)
from entity.configs import MemoryStoreConfig, FileSourceConfig
from entity.configs.node.memory import FileMemoryConfig
logger = logging.getLogger(__name__)
class FileMemory(MemoryBase):
"""
File-based memory system that indexes and retrieves content from files/directories.
Supports multiple file types, chunking strategies, and incremental updates.
"""
def __init__(self, store: MemoryStoreConfig):
config = store.as_config(FileMemoryConfig)
if not config:
raise ValueError("FileMemory requires a file memory store configuration")
super().__init__(store)
if not config.file_sources:
raise ValueError("FileMemory requires at least one file_source in configuration")
self.file_config = config
self.file_sources: List[FileSourceConfig] = config.file_sources
self.index_path = self.file_config.index_path # Path to store the index
# Chunking configuration
self.chunk_size = 500 # Characters per chunk
self.chunk_overlap = 50 # Overlapping characters between chunks
# File metadata cache {file_path: {hash, chunks_count, ...}}
self.file_metadata: Dict[str, Dict[str, Any]] = {}
def load(self) -> None:
"""View on GitHub (pinned to 4fb2db0ea9)
Solutions
- Set the store type to 'file' in the memory configuration
- Prefer create_memory(store) so dispatch follows the config type
- Check for typos/case in the type string
Example fix
# before store = MemoryStoreConfig(type='simple', ...) mem = FileMemory(store) # after store = MemoryStoreConfig(type='file', file_sources=[...], ...) mem = FileMemory(store)
Defensive patterns
Strategy: validation
Validate before calling
cfg = store.as_config(FileMemoryConfig)
if cfg is None:
raise ConfigError('store type must be file for FileMemory')
mem = FileMemory(store) Prevention
- Use create_memory dispatch
- Validate memory.type matches the class
When it happens
Trigger: Instantiating FileMemory with a store config whose type is not 'file' (e.g. 'simple' or 'mem0'), or dispatching create_memory with a mismatched type string.
Common situations: Agent YAML where memory.type doesn't match the class being constructed; typos in the type field; reusing a memory block from a different template.
Related errors
- BlackboardMemory requires a blackboard memory store configur
- Mem0Memory requires a Mem0 memory store configuration
- SimpleMemory requires a simple memory store configuration
- FileMemory requires at least one file_source in configuratio
- Entry '{name}' is not a MemoryStoreRegistration
AI-assisted analysis of OpenBMB/ChatDev@4fb2db0ea9 (2026-08-27).
Data as JSON: /api/errors/ce0a7e6c67b23d21.
Report an issue: GitHub.