配置参考手册

OpenClaw平台使用 config.yaml 作为核心配置文件,支持对全局设置、Agent行为、模型管理、工具集成、存储后端和日志系统进行全面控制。本手册将逐一详解每个配置段的所有可用选项。

全局配置(global)

全局配置段定义了平台级别的基础参数,这些参数影响整个OpenClaw实例的运行行为:

global:
  # 平台名称,用于标识和日志显示
  name: "my-openclaw-instance"

  # 运行模式:development / staging / production
  mode: production

  # 默认语言(影响系统提示词和日志)
  language: zh-CN

  # 时区设置
  timezone: Asia/Shanghai

  # API服务监听地址和端口
  api:
    host: 0.0.0.0
    port: 8080
    workers: 4
    timeout: 120

  # 安全配置
  security:
    api_key_required: true
    rate_limit: 1000/min
    cors_origins:
      - "https://your-domain.com"
    tls:
      enabled: true
      cert_file: /etc/ssl/certs/openclaw.crt
      key_file: /etc/ssl/private/openclaw.key

  # 功能开关
  features:
    web_dashboard: true
    plugin_system: true
    metrics_export: true

核心概念:运行模式

mode 字段决定了平台的安全策略和性能优化方向。在 production 模式下,OpenClaw会自动启用更严格的输入验证、请求限流和错误隔离机制。在 development 模式下,会启用热重载和详细的调试信息。

Agent配置(agents)

Agent配置段定义了智能体的默认行为和运行时参数:

agents:
  # Agent默认配置
  defaults:
    max_steps: 50
    timeout: 300
    retry_policy:
      max_retries: 3
      backoff_factor: 2.0
      retryable_errors:
        - timeout
        - rate_limit

    # 上下文窗口管理
    context:
      max_tokens: 8192
      summary_strategy: sliding_window
      reserved_tokens: 2048

    # 记忆配置
    memory:
      type: hybrid
      short_term:
        max_entries: 100
        ttl: 3600
      long_term:
        backend: vector_store
        embedding_model: text-embedding-3-small
        similarity_threshold: 0.75

  # 特定Agent覆盖配置
  overrides:
    research_agent:
      max_steps: 100
      tools:
        - web_search
        - document_reader
        - code_executor
    coding_agent:
      max_steps: 200
      tools:
        - file_editor
        - terminal
        - linter

模型配置(models)

模型配置段管理所有AI模型的连接和参数设置:

models:
  # LLM模型配置
  llm:
    default: gpt-4o
    providers:
      openai:
        api_key: ${OPENAI_API_KEY}
        base_url: https://api.openai.com/v1
        models:
          - id: gpt-4o
            max_tokens: 128000
            temperature: 0.7
          - id: gpt-4o-mini
            max_tokens: 128000
            temperature: 0.5
      anthropic:
        api_key: ${ANTHROPIC_API_KEY}
        models:
          - id: claude-3-5-sonnet
            max_tokens: 200000
      local:
        type: ollama
        base_url: http://localhost:11434
        models:
          - id: llama3.1
            max_tokens: 8192

  # 嵌入模型配置
  embeddings:
    default: text-embedding-3-small
    providers:
      openai:
        api_key: ${OPENAI_API_KEY}
        model: text-embedding-3-small
        dimensions: 1536

工具配置(tools)

工具配置段定义了Agent可以调用的外部工具和内置工具:

tools:
  # 内置工具配置
  builtin:
    web_search:
      enabled: true
      provider: serper
      api_key: ${SERPER_API_KEY}
      max_results: 10
    code_executor:
      enabled: true
      runtime: python
      timeout: 60
      sandbox: true
    file_system:
      enabled: true
      allowed_paths:
        - /data/workspace
        - /tmp/openclaw

  # 自定义工具注册
  custom:
    - name: database_query
      type: sql
      connection: ${DATABASE_URL}
      read_only: true
    - name: send_notification
      type: webhook
      url: https://hooks.slack.com/services/xxx
      method: POST

存储配置(storage)

存储配置段管理数据持久化和向量存储后端:

storage:
  # 关系型数据库(元数据和配置存储)
  database:
    type: postgresql
    host: localhost
    port: 5432
    name: openclaw
    user: openclaw
    password: ${DB_PASSWORD}
    pool_size: 20
    ssl: true

  # 向量存储(Agent记忆和知识检索)
  vector_store:
    type: qdrant
    host: localhost
    port: 6333
    collection: openclaw_memory
    distance: cosine

  # 对象存储(文件和大文档)
  object_store:
    type: s3
    bucket: openclaw-data
    region: cn-north-1
    endpoint: ${S3_ENDPOINT}
    access_key: ${S3_ACCESS_KEY}
    secret_key: ${S3_SECRET_KEY}

日志配置(logging)

日志配置段控制日志输出格式、级别和目标:

logging:
  # 全局日志级别
  level: INFO

  # 日志格式
  format: json
  timestamp_format: ISO8601

  # 输出目标
  outputs:
    - type: console
      level: DEBUG
      colorize: true
    - type: file
      path: /var/log/openclaw/openclaw.log
      level: INFO
      rotation:
        max_size: 100MB
        max_files: 10
    - type: elasticsearch
      hosts:
        - http://es-node1:9200
      index: openclaw-logs
      level: WARNING

  # 模块级别日志控制
  module_levels:
    openclaw.agent: DEBUG
    openclaw.model: INFO
    openclaw.tool: WARNING
    openclaw.security: DEBUG

环境变量

OpenClaw支持通过环境变量覆盖配置文件中的任何值。环境变量的命名规则是将配置路径中的点号替换为下划线,并添加 OPENCLAW_ 前缀:

# 覆盖 global.api.port
export OPENCLAW_GLOBAL_API_PORT=9090

# 覆盖 models.llm.default
export OPENCLAW_MODELS_LLM_DEFAULT=gpt-4o

# 覆盖 storage.database.host
export OPENCLAW_STORAGE_DATABASE_HOST=db.example.com

# 直接使用环境变量引用(在config.yaml中)
# 使用 ${VAR_NAME} 语法引用环境变量
# 使用 ${VAR_NAME:-default_value} 提供默认值

提示:配置优先级

OpenClaw的配置优先级从高到低为:命令行参数 > 环境变量 > config.yaml配置文件 > 默认值。这意味着您可以通过环境变量灵活地覆盖任何配置项,而无需修改配置文件。

配置验证

OpenClaw内置了配置验证工具,可以在启动前检查配置文件的完整性和正确性:

# 验证配置文件
openclaw config validate --file /etc/openclaw/config.yaml

# 生成配置模板
openclaw config generate --mode production > config.yaml

# 查看当前生效配置(合并所有来源)
openclaw config show

# 对比两个配置文件的差异
openclaw config diff base.yaml override.yaml

配置验证器会检查以下内容:必填字段是否缺失、数据类型是否正确、枚举值是否合法、引用路径是否可达、安全配置是否满足最低要求。在生产模式下,任何验证错误都会阻止服务启动,确保系统始终在已知正确的配置下运行。

警告:安全配置

在生产环境中,切勿将API密钥或数据库密码硬编码在配置文件中。始终使用环境变量或密钥管理服务(如Vault、AWS Secrets Manager)来管理敏感信息。