import { Callout } from "nextra/components";

# Configuration Reference

This page is the complete reference for all top-level fields in `config.yaml`.

<Callout type="info">
  See <code>config.example.yaml</code> in the repository root for a fully
  commented example with all available options.
</Callout>

## Top-level fields

| Field                  | Type          | Description                                     |
| ---------------------- | ------------- | ----------------------------------------------- |
| `config_version`       | `int`         | Config schema version (current: 6)              |
| `log_level`            | `str`         | Log verbosity: `debug`/`info`/`warning`/`error` |
| `models`               | `list`        | Available LLM model configurations              |
| `image_generate_model` | `str \| list` | Model name to use for image generation          |
| `token_usage`          | `object`      | Token usage tracking config                     |
| `tools`                | `list`        | Available tool configurations                   |
| `tool_groups`          | `list`        | Named groupings of tools                        |
| `tool_search`          | `object`      | Deferred tool loading config                    |
| `sandbox`              | `object`      | Sandbox provider and options                    |
| `skills`               | `object`      | Skills directory and container path             |
| `skill_evolution`      | `object`      | Agent-managed skill creation                    |
| `subagents`            | `object`      | Subagent timeouts and max turns                 |
| `acp_agents`           | `dict`        | External ACP agent configurations               |
| `memory`               | `object`      | Cross-session memory storage                    |
| `summarization`        | `object`      | Conversation summarization                      |
| `title`                | `object`      | Automatic thread title generation               |
| `checkpointer`         | `object`      | Thread state persistence                        |
| `guardrails`           | `object`      | Tool call authorization                         |
| `uploads`              | `object`      | File upload settings                            |
| `channels`             | `list`        | IM channel integrations                         |

## models

```yaml
models:
  - name: gpt-4o # Model identifier (referenced in requests)
    use: langchain_openai:ChatOpenAI # Python class path
    model: gpt-4o # Model name passed to the LLM
    api_key: $OPENAI_API_KEY # API key (env var interpolation supported)
    base_url: null # Optional: custom endpoint URL
    request_timeout: 600.0 # Request timeout in seconds
    max_retries: 2 # Number of retries on failure
    supports_vision: true # Whether to enable vision capabilities
    thinking_enabled: false # Whether to enable extended thinking
    # Any additional fields are passed through to the model constructor
```

## sandbox

```yaml
sandbox:
  # Local (default, no container isolation)
  use: deerflow.sandbox.local:LocalSandboxProvider
  allow_host_bash: false
  bash_output_max_chars: 20000
  read_file_output_max_chars: 50000
  ls_output_max_chars: 20000

  # Container-based
  # use: deerflow.community.aio_sandbox:AioSandboxProvider
  # image: enterprise-public-cn-beijing.cr.volces.com/vefaas-public/all-in-one-sandbox:latest
  # replicas: 3
  # idle_timeout: 600
```

## memory

```yaml
memory:
  enabled: true
  storage_path: memory.json
  debounce_seconds: 30
  max_facts: 100
  fact_confidence_threshold: 0.7
  injection_enabled: true
  max_injection_tokens: 2000
  model_name: null
```

## summarization

```yaml
summarization:
  enabled: true
  model_name: null
  trigger:
    - type: tokens
      value: 15564
  keep:
    type: messages
    value: 10
  trim_tokens_to_summarize: 15564
  summary_prompt: null
```

## checkpointer

```yaml
checkpointer:
  type: sqlite # sqlite | redis | postgres
  connection_string: .deer-flow/checkpoints.db
```

## subagents

```yaml
subagents:
  timeout_seconds: 900
  agents:
    general-purpose:
      timeout_seconds: 1800
      max_turns: 160
    bash:
      timeout_seconds: 300
      max_turns: 80
```

See the dedicated documentation page for each feature for full field descriptions.
