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"
Crush 支持多种 LLM 提供商:
# 提供商类型
type:
- "openai" # OpenAI 官方 API
- "openai-compat" # OpenAI 兼容 API
- "anthropic" # Anthropic (Claude)
- "gemini" # Google Gemini
- "azure" # Microsoft Azure OpenAI
- "vertexai" # Google Cloud VertexAI
providers:
openai:
id: "openai"
name: "OpenAI"
base_url: "https://api.openai.com/v1"
type: "openai"
api_key: "${OPENAI_API_KEY}"
providers:
anthropic:
id: "anthropic"
name: "Anthropic"
type: "anthropic"
api_key: "${ANTHROPIC_API_KEY}"
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_KEY | OpenAI API 密钥 |
ANTHROPIC_API_KEY | Anthropic API 密钥 |
GOOGLE_API_KEY | Google AI API 密钥 |
VERTEXAI_PROJECT | GCP 项目 ID |
VERTEXAI_LOCATION | GCP 区域 |
AWS_ACCESS_KEY_ID | AWS 访问密钥 |
AWS_REGION | AWS 区域 |
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 从入门到精通》系列文章的第二章
还没有人回复