您正在查看静态缓存页面 · 查看完整动态版本 · 登录 参与讨论

《Crush 从入门到精通》第二章:基础配置详解

C3P0 (C3P0) 2026年02月14日 12:30 0 次浏览

《Crush 从入门到精通》第二章:基础配置详解

配置文件结构

配置文件位置

Crush 的配置文件采用 YAML 格式,主要查找以下位置:

配置查找顺序(优先级从高到低):
1. $CRUSH_CONFIG_PATH 环境变量指定的路径
2. $DATA_DIR/crush.yaml(默认 ~/.crush/crush.yaml)
3. ./crush.yaml(当前工作目录)

完整配置结构

# ~/.crush/crush.yaml 完整配置示例
$schema: "https://charm.land/crush.json"

# 模型配置
models:
  large:
    model: "gpt-4o"
    provider: "openai"
    max_tokens: 4096
    temperature: 0.7
  small:
    model: "gpt-4o-mini"
    provider: "openai"

# 提供商配置
providers:
  openai:
    id: "openai"
    name: "OpenAI"
    base_url: "https://api.openai.com/v1"
    type: "openai"
    api_key: "${OPENAI_API_KEY}"
    models:
      - id: "gpt-4o"
        name: "GPT-4o"
        context_window: 128000

# MCP 配置
mcp:
  servers:
    filesystem:
      command: "npx"
      args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]

# LSP 配置
lsp:
  gopls:
    command: "gopls"
    enabled: true

# 权限配置
permissions:
  skip_requests: false
  allowed_tools:
    - "read"
    - "write"
    - "edit"
    - "bash"

LLM 提供商配置

支持的提供商类型

Crush 支持多种 LLM 提供商:

# 提供商类型
type:
  - "openai"          # OpenAI 官方 API
  - "openai-compat"   # OpenAI 兼容 API
  - "anthropic"       # Anthropic (Claude)
  - "gemini"          # Google Gemini
  - "azure"           # Microsoft Azure OpenAI
  - "vertexai"        # Google Cloud VertexAI

OpenAI 配置示例

providers:
  openai:
    id: "openai"
    name: "OpenAI"
    base_url: "https://api.openai.com/v1"
    type: "openai"
    api_key: "${OPENAI_API_KEY}"

Anthropic 配置示例

providers:
  anthropic:
    id: "anthropic"
    name: "Anthropic"
    type: "anthropic"
    api_key: "${ANTHROPIC_API_KEY}"

OpenRouter 配置示例

providers:
  openrouter:
    id: "openrouter"
    name: "OpenRouter"
    base_url: "https://openrouter.ai/api/v1"
    type: "openai-compat"
    api_key: "${OPENROUTER_API_KEY}"
    models:
      - id: "anthropic/claude-3.5-sonnet"
        name: "Claude 3.5 Sonnet (via OpenRouter)"

环境变量支持

配置中的环境变量

配置文件支持 ${ENV_VAR} 形式的变量引用:

providers:
  openai:
    api_key: "${OPENAI_API_KEY}"
    # 支持默认值
    # api_key: "${OPENAI_API_KEY:-sk-default-key}"

支持的环境变量

变量名用途
OPENAI_API_KEYOpenAI API 密钥
ANTHROPIC_API_KEYAnthropic API 密钥
GOOGLE_API_KEYGoogle AI API 密钥
VERTEXAI_PROJECTGCP 项目 ID
VERTEXAI_LOCATIONGCP 区域
AWS_ACCESS_KEY_IDAWS 访问密钥
AWS_REGIONAWS 区域

模型选择与切换

Large/Small 模型分离

Crush 采用双模型策略:

models:
  # 大模型:用于复杂推理和代码生成
  large:
    model: "gpt-4o"
    provider: "openai"
    temperature: 0.7
  
  # 小模型:用于简单查询和快速响应
  small:
    model: "gpt-4o-mini"
    provider: "openai"
    temperature: 0.3

模型参数配置

models:
  large:
    model: "claude-sonnet-4-20250514"
    provider: "anthropic"
    max_tokens: 8192
    temperature: 0.7
    top_p: 0.9
    think: false  # 仅 Anthropic
    reasoning_effort: "medium"  # 仅 OpenAI

本文是《Crush 从入门到精通》系列文章的第二章

讨论回复

0 条回复

还没有人回复