# LLM Provider 配置 — AgentKit Server 使用
# 环境变量替换：${VAR_NAME} 在启动时由 LLMConfig.from_yaml() 处理

providers:
  deepseek:
    api_key: "${DEEPSEEK_API_KEY}"
    base_url: "https://api.deepseek.com/v1"
    models:
      deepseek-chat:
        max_tokens: 64000
        cost_per_1k_input: 0.00014
        cost_per_1k_output: 0.00028

  openai:
    api_key: "${OPENAI_API_KEY}"
    base_url: "${OPENAI_BASE_URL:-https://coding.dashscope.aliyuncs.com/v1}"
    models:
      qwen3-coder-plus:
        max_tokens: 64000
        cost_per_1k_input: 0.00014
        cost_per_1k_output: 0.00028

model_aliases:
  default: "deepseek/deepseek-chat"
  fast: "deepseek/deepseek-chat"
  powerful: "deepseek/deepseek-chat"

fallbacks:
  deepseek/deepseek-chat:
    - "openai/qwen3-coder-plus"

# 上下文压缩配置 — 长会话自动压缩历史消息，保持 Token 在预算内
# GEO Pipeline 启用后，工具输出（搜索结果、网页抓取等）会自动压缩
compression:
  enabled: false                   # 是否启用压缩（生产环境建议 true）
  provider: "headroom"             # "headroom" | "summary"
  # --- Headroom 模式（推荐，需安装 headroom-ai）---
  compressors:                     # 启用的压缩器
    - "smart_crusher"              # JSON/结构化数据压缩
    - "code_compressor"            # 代码内容压缩
  ccr_ttl: 300                     # CCR 缓存 TTL（秒）
  min_length: 500                  # 最小压缩长度（字符）
  # --- Summary 模式（无需额外依赖）---
  # max_tokens: 4000              # Token 预算
  # keep_recent: 3                # 保留最近 N 条消息
