环境变量配置
MyDeskBot 通过环境变量系统提供灵活且安全的配置管理,支持本地开发的多种场景。
环境变量优先级
MyDeskBot 按以下优先级顺序查找环境变量(从高到低):
~/.mydeskbot/.env(本地用户环境文件)工作区/.mydeskbot/.env(工作区 MyDeskBot 环境文件)工作区/.env(工作区环境文件)process.env(系统环境变量)
配置文件位置
全局配置
| 文件路径 | 用途 | 说明 |
|---|---|---|
~/.mydeskbot/.env | 本地用户环境变量 | 存储 API 密钥等个人配置 |
项目配置
| 文件路径 | 用途 | 示例 |
|---|---|---|
工作区/.mydeskbot/.env | 工作区级环境变量 | 项目特定的配置 |
工作区/.env | 项目根环境变量 | 数据库连接等 |
使用场景
场景 1:配置 AI 模型 API 密钥
步骤 1:在 ~/.mydeskbot/.env 中添加密钥
bash
# ~/.mydeskbot/.env
OPENAI_API_KEY=sk-proj-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
GROQ_API_KEY=gsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx步骤 2:在配置文件中使用 secrets 模板
yaml
# ~/.mydeskbot/config.yaml 或 `工作区/.mydeskbot/config.yaml`
models:
- name: GPT-4
provider: openai
model: gpt-4
apiKey: ${{ secrets.OPENAI_API_KEY }}
- name: Claude 3 Sonnet
provider: anthropic
model: claude-3-sonnet-20240229
apiKey: ${{ secrets.ANTHROPIC_API_KEY }}注意:
secrets.是配置文件中的前缀标识,用于告知 MyDeskBot 这是一个需要从环境变量中读取的密钥。在.env文件中,环境变量的名称不需要加secrets.前缀,直接使用OPENAI_API_KEY即可。
步骤 3:刷新配置,即可使用配置的模型
场景 2:配置 SSH 服务器连接
注意:SSH 配置主要通过 ~/.ssh/config 完成。MyDeskBot 的 remoteCommandExecution 工具只在没有提供密码或密钥路径时使用 process.env.SSH_AUTH_SOCK 进行 SSH agent 认证。
步骤 1:在 ~/.ssh/config 中配置服务器
bash
# ~/.ssh/config
Host production-server
HostName 192.168.1.100
User deploy
Port 22
IdentityFile ~/.ssh/id_rsa步骤 2:在对话中使用自然语言管理服务器
"检查 production-server 的系统状态和服务运行情况。"
该工具会自动使用你的 SSH 配置,如果需要会使用 SSH_AUTH_SOCK 环境变量。
常用环境变量
AI 模型提供商
bash
# OpenAI
OPENAI_API_KEY=sk-proj-...
# Anthropic
ANTHROPIC_API_KEY=sk-ant-...
# Groq
GROQ_API_KEY=gsk_...
# Google
GOOGLE_API_KEY=AIzaSy...
# Cohere
COHERE_API_KEY=...
# Together AI
TOGETHER_API_KEY=...
# Hugging Face
HUGGINGFACE_API_KEY=hf_...
# Ollama(本地)
OLLAMA_API_BASE=http://localhost:11434系统配置
bash
# MyDeskBot 系统变量
CONTINUE_GLOBAL_DIR=/path/to/custom/global/dir
CONTROL_PLANE_ENV=local|staging|test|production
NODE_ENV=development|production|test
CONTINUE_DEVELOPMENT=true|false
# 调试
VERBOSE_FETCH=1
DEBUG=*安全最佳实践
1. 永远不要提交 .env 文件
bash
# 确保 .gitignore 包含以下内容
.env
.env.*
.env.local
!.env.example2. 使用 .env.example 作为模板
bash
# .env.example
# 复制此文件为 .env 并填入实际值
# AI 模型
OPENAI_API_KEY=your_openai_key_here
ANTHROPIC_API_KEY=your_anthropic_key_here3. 使用明确的命名规范
bash
# 好的命名
OPENAI_API_KEY=sk-proj-xxx
ANTHROPIC_API_KEY=sk-ant-xxx
# 避免使用
API_KEY=...
TOKEN=...
PASSWORD=...4. 环境分离
bash
# 开发环境使用本地模型
# ~/.mydeskbot/.env (开发)
OLLAMA_API_BASE=http://localhost:11434
# 生产环境使用云服务
# ~/.mydeskbot/.env (生产)
ANTHROPIC_API_KEY=sk-ant-...故障排除
问题 1:环境变量未生效
症状:MyDeskBot 提示找不到 API 密钥
解决方案:
- 检查文件路径是否正确
bash
cat ~/.mydeskbot/.env
cat `工作区/.env`- 确认环境变量格式正确(没有多余的空格或引号)
bash
# 正确
OPENAI_API_KEY=sk-proj-xxx
# 错误
OPENAI_API_KEY = sk-proj-xxx
OPENAI_API_KEY="sk-proj-xxx"- 刷新配置使配置生效
问题 2:密钥来源不明确
症状:不确定使用了哪个环境变量值
解决方案:
检查环境变量优先级,确认当前使用的密钥来源:
- ~/.mydeskbot/.env
- 工作区/.mydeskbot/.env
- 工作区/.env
- process.env
附录:完整配置示例
完整的 ~/.mydeskbot/.env 示例
bash
# MyDeskBot 系统配置
CONTINUE_GLOBAL_DIR=/Users/username/.mydeskbot
NODE_ENV=development
# AI 模型 API 密钥
OPENAI_API_KEY=sk-proj-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
GROQ_API_KEY=gsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# 本地 Ollama
OLLAMA_API_BASE=http://localhost:11434
# 调试
VERBOSE_FETCH=1完整的项目 .env 示例
bash
# 如有需要,在此添加项目特定的环境变量通过合理使用环境变量,您可以安全地管理敏感信息,并在不同环境之间轻松切换配置。