Skip to content

环境变量配置

MyDeskBot 通过环境变量系统提供灵活且安全的配置管理,支持本地开发的多种场景。

环境变量优先级

MyDeskBot 按以下优先级顺序查找环境变量(从高到低):

  1. ~/.mydeskbot/.env(本地用户环境文件)
  2. 工作区/.mydeskbot/.env(工作区 MyDeskBot 环境文件)
  3. 工作区/.env(工作区环境文件)
  4. 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.example

2. 使用 .env.example 作为模板

bash
# .env.example
# 复制此文件为 .env 并填入实际值

# AI 模型
OPENAI_API_KEY=your_openai_key_here
ANTHROPIC_API_KEY=your_anthropic_key_here

3. 使用明确的命名规范

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 密钥

解决方案

  1. 检查文件路径是否正确
bash
cat ~/.mydeskbot/.env
cat `工作区/.env`
  1. 确认环境变量格式正确(没有多余的空格或引号)
bash
# 正确
OPENAI_API_KEY=sk-proj-xxx

# 错误
OPENAI_API_KEY = sk-proj-xxx
OPENAI_API_KEY="sk-proj-xxx"
  1. 刷新配置使配置生效

问题 2:密钥来源不明确

症状:不确定使用了哪个环境变量值

解决方案

检查环境变量优先级,确认当前使用的密钥来源:

  1. ~/.mydeskbot/.env
  2. 工作区/.mydeskbot/.env
  3. 工作区/.env
  4. 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
# 如有需要,在此添加项目特定的环境变量

通过合理使用环境变量,您可以安全地管理敏感信息,并在不同环境之间轻松切换配置。