Configuration Files
DeerFlow uses two main configuration files:config.yaml
Core application settings including models, tools, sandbox, and system behavior
extensions_config.json
Extensions configuration for MCP servers and skills enable/disable states
File Locations
Main Configuration (config.yaml)
DeerFlow resolvesconfig.yaml in the following priority order:
1
Explicit Path Parameter
If you pass a
config_path argument when loading configuration programmatically2
DEER_FLOW_CONFIG_PATH Environment Variable
Set this variable to specify a custom config location:
3
Current Working Directory
Checks for
config.yaml in the directory where DeerFlow is run4
Parent Directory Fallback
If not found in CWD, checks the parent directory
Extensions Configuration (extensions_config.json)
Extensions configuration follows a similar priority order:1
DEER_FLOW_EXTENSIONS_CONFIG_PATH Environment Variable
2
Current Working Directory
Checks for
extensions_config.json in CWD3
Parent Directory
Falls back to parent directory if not found
4
Backward Compatibility
Also checks for legacy
mcp_config.json filenameExtensions configuration is optional. If no file is found, DeerFlow continues with an empty extensions config
Data Directory (DEER_FLOW_HOME)
DeerFlow stores persistent data (memory, threads, agent configurations) in a base directory resolved in this order:1
DEER_FLOW_HOME Environment Variable
2
Local Development Detection
If running from the
backend/ directory, uses .deer-flow/ in that directory3
Default User Home
Falls back to
~/.deer-flow/Directory Structure
The data directory (DEER_FLOW_HOME) has the following structure:
Environment Variable Resolution
Both configuration files support environment variable resolution using the$VAR_NAME syntax:
config.yaml
extensions_config.json
Configuration Loading
Configuration is loaded once at startup and cached as a singleton:Hot Reloading
You can reload configuration without restarting the application:Hot reloading is useful during development or when updating API keys without downtime
Configuration Validation
DeerFlow uses Pydantic for configuration validation. Invalid configurations will raise detailed validation errors at startup:Getting Started
1
Copy Example Configuration
2
Set Environment Variables
Create a
.env file or export variables:3
Customize Configuration
Edit
config.yaml to configure models, tools, and sandbox settings4
Enable Extensions
Edit
extensions_config.json to enable/disable MCP servers and skillsNext Steps
Models Configuration
Configure LLM models and providers
Sandbox Modes
Set up local, Docker, or Kubernetes sandboxes
Skills & MCP
Configure skills and MCP servers
Memory Configuration
Set up the memory system