Skip to content

理解配置

本综合指南探讨了 MyDeskBot 中可用的所有配置选项,帮助您微调 AI 辅助开发环境以获得最佳性能和自定义。

配置文件位置

MyDeskBot 按以下顺序查找配置文件:

  1. 项目级别:项目根目录中的 .mydeskbot/config.yaml
  2. 用户级别:主目录中的 ~/.mydeskbot/config.yaml

项目级别配置

最常见的配置位置:

yaml
# .mydeskbot/config.yaml
# 此文件特定于您的项目
models:
  # 项目特定的模型配置
rules:
  # 项目特定的规则
tools:
  # 项目特定的工具

用户级别配置

适用于所有项目的全局设置:

yaml
# ~/.mydeskbot/config.yaml
# 这些设置适用于所有项目
preferences:
  language: "zh-CN"
  theme: "dark"
  fontSize: 14

# 新项目的默认模型
models:
  - name: "default-chat"
    provider: "openai"
    model: "gpt-4-turbo"
    apiKey: "${{ secrets.OPENAI_API_KEY }}"

完整配置架构

模型配置

详细的模型配置选项:

yaml
models:
  - name: "model-name" # 必需:唯一标识符
    provider: "openai" # 必需:提供商名称
    model: "gpt-4-turbo" # 必需:模型标识符
    apiKey: "${{ secrets.API_KEY }}" # API 密钥(使用环境变量)
    baseURL: "https://api.openai.com/v1" # 自定义端点
    role: "chat" # 角色:chat, autocomplete, edit, apply, embeddings
    temperature: 0.7 # 创造性(0.0 到 1.0)
    maxTokens: 2048 # 最大响应长度
    topP: 0.9 # 核采样
    frequencyPenalty: 0.5 # 减少重复
    presencePenalty: 0.5 # 鼓励新话题
    stopSequences: # 停止生成的令牌
      - "\n\n"
      - "```"
    contextWindow: 128000 # 上下文窗口大小
    timeout: 30 # 请求超时(秒)

规则配置

综合的规则配置:

yaml
rules:
  - name: "rule-name" # 必需:唯一标识符
    description: "规则描述" # 人类可读的描述
    prompt: "规则说明" # AI 的指令
    group: "development" # 可选:用于组织的组
    enabled: true # 启用/禁用规则
    priority: 100 # 更高数字 = 更高优先级
    conditions: # 可选:何时应用规则
      - fileType: "javascript"
      - filePath: "src/**/*.js"
    exceptions: # 可选:何时不应用规则
      - filePath: "tests/**/*.js"

工具配置

完整的工具配置选项:

yaml
tools:
  - name: "tool-name" # 必需:唯一标识符
    tool: "tool-type" # 必需:工具实现
    description: "工具描述" # 人类可读的描述
    enabled: true # 启用/禁用工具
    args: # 工具特定参数
      param1: "value1"
      param2: "${{ secrets.ENV_VAR }}"
    timeout: 30 # 工具执行超时
    retryAttempts: 3 # 重试次数
    retryDelay: 1000 # 重试之间的延迟(毫秒)

首选项配置

所有可用的首选项选项:

yaml
preferences:
  # 界面设置
  language: "zh-CN" # UI 语言
  theme: "dark" # 主题:light, dark, auto
  fontSize: 14 # 编辑器字体大小
  fontFamily: "Fira Code" # 编辑器字体系列
  lineHeight: 1.5 # 行高倍数

  # 编辑器行为
  autoSave: true # 自动保存文件
  autoIndent: true # 自动缩进代码
  bracketPairColorization: true # 括号对着色
  suggestWhileTyping: true # 输入时显示建议
  inlineSuggestions: true # 显示行内建议
  minAutoCompleteTriggerLength: 3 # 自动完成的最小字符数

  # AI 行为
  useContext: true # 使用代码上下文
  useDocumentation: true # 使用文档
  useHistory: true # 使用对话历史
  maxContextTokens: 8192 # 最大上下文令牌数
  maxHistoryItems: 10 # 包含的最大历史项目数

  # 性能
  maxParallelRequests: 5 # 最大并发 AI 请求
  requestTimeout: 30 # 请求超时(秒)
  cacheEnabled: true # 启用响应缓存
  cacheTTL: 3600 # 缓存生存时间(秒)

  # 隐私
  telemetry: false # 发送使用数据
  crashReports: true # 发送崩溃报告
  anonymousUsage: false # 发送匿名使用数据

高级配置功能

条件配置

基于条件应用设置:

yaml
# 条件模型选择
models:
  - name: "conditional-model"
    provider: "openai"
    model: "gpt-4-turbo"
    apiKey: "${{ secrets.OPENAI_API_KEY }}"
    conditions:
      - projectType: "web-application"
      - fileSize: "<100MB"

# 条件规则
rules:
  - name: "frontend-rule"
    prompt: "遵循前端最佳实践"
    conditions:
      - fileType: "javascript"
      - filePath: "src/components/**/*.js"

环境特定配置

不同环境的不同设置:

yaml
# 开发环境
development:
  models:
    - name: "dev-model"
      provider: "ollama"
      model: "llama3:8b"
      baseURL: "http://localhost:11434"
  preferences:
    telemetry: false

# 生产环境
production:
  models:
    - name: "prod-model"
      provider: "openai"
      model: "gpt-4-turbo"
      apiKey: "${{ secrets.PROD_OPENAI_API_KEY }}"
  preferences:
    telemetry: true

基于配置文件的配置

在不同的配置文件之间切换:

yaml
# 默认配置文件
default:
  preferences:
    theme: "light"

# 开发者配置文件
developer:
  preferences:
    theme: "dark"
    fontSize: 16
  models:
    - name: "dev-model"
      provider: "ollama"
      model: "codellama:7b"

# 演示配置文件
presentation:
  preferences:
    theme: "light"
    fontSize: 18
    fontFamily: "Arial"

使用以下命令切换配置文件:

bash
mydeskbot --profile developer

配置验证和调试

验证命令

检查配置是否有错误:

bash
# 验证配置
mydeskbot validate-config

# 带详细输出的验证
mydeskbot validate-config --verbose

# 验证特定文件
mydeskbot validate-config --file .mydeskbot/config.yaml

调试配置

启用调试模式以排查问题:

bash
# 启用调试日志
mydeskbot --debug

# 调试特定组件
mydeskbot --debug=models

# 保存调试日志
mydeskbot --debug --log-file debug.log

配置检查

查看当前配置:

bash
# 显示当前配置
mydeskbot config show

# 显示特定部分
mydeskbot config show models

# 导出配置
mydeskbot config export --file my-config.yaml

安全配置

安全的 API 密钥

API 密钥管理的最佳实践:

yaml
# 使用环境变量
models:
  - name: "secure-model"
    provider: "openai"
    model: "gpt-4-turbo"
    apiKey: "${{ secrets.OPENAI_API_KEY }}" # 永远不要硬编码密钥

  # 使用密钥文件
  - name: "file-key-model"
    provider: "openai"
    model: "gpt-4-turbo"
    apiKeyFile: "~/.keys/openai.key" # 将密钥存储在安全文件中

网络安全

配置安全连接:

yaml
models:
  - name: "secure-model"
    provider: "openai"
    model: "gpt-4-turbo"
    apiKey: "${{ secrets.OPENAI_API_KEY }}"
    baseURL: "https://api.openai.com/v1" # 需要 HTTPS
    proxy: "http://proxy.company.com:8080" # 公司代理
    sslVerify: true # 验证 SSL 证书

数据隐私

控制数据共享和隐私:

yaml
preferences:
  telemetry: false # 禁用使用跟踪
  crashReports: false # 禁用崩溃报告
  anonymousUsage: false # 禁用匿名使用数据
  sendCodeSnippets: false # 不在错误报告中发送代码片段

性能优化

资源管理

优化资源使用:

yaml
preferences:
  maxParallelRequests: 3 # 限制并发请求
  requestTimeout: 30 # 设置合理的超时
  cacheEnabled: true # 启用缓存
  cacheTTL: 3600 # 缓存 1 小时

# 模型特定的超时
models:
  - name: "fast-model"
    provider: "anthropic"
    model: "claude-3-haiku"
    timeout: 15 # 快速模型的超时更短

示例配置

最小配置

简单设置以便入门:

yaml
# .mydeskbot/config.yaml
models:
  - name: "default"
    provider: "openai"
    model: "gpt-4-turbo"
    apiKey: "${{ secrets.OPENAI_API_KEY }}"

preferences:
  language: "zh-CN"
  theme: "auto"

高级配置

面向高级用户的复杂设置:

yaml
# .mydeskbot/config.yaml
version: "1.0"

models:
  - name: "chat-model"
    provider: "openai"
    model: "gpt-4-turbo"
    apiKey: "${{ secrets.OPENAI_API_KEY }}"
    role: "chat"
    temperature: 0.7
    maxTokens: 2048

  - name: "autocomplete-model"
    provider: "anthropic"
    model: "claude-3-haiku"
    apiKey: "${{ secrets.ANTHROPIC_API_KEY }}"
    role: "autocomplete"
    temperature: 0.3
    maxTokens: 512

rules:
  - name: "security-first"
    description: "在所有代码中优先考虑安全性"
    prompt: |
      始终遵循安全最佳实践:
      1. 输入验证和清理
      2. 参数化数据库查询
      3. 适当的身份验证和授权
      4. 安全的错误处理,不暴露敏感信息

tools:
  - name: "database-client"
    tool: "databaseClient"
    args:
      databaseType: "postgresql"
      connectionString: "${{ secrets.DATABASE_URL }}"
    timeout: 30

preferences:
  language: "zh-CN"
  theme: "dark"
  fontSize: 14
  fontFamily: "Fira Code"
  autoSave: true
  suggestWhileTyping: true
  maxParallelRequests: 3
  cacheEnabled: true
  telemetry: false

故障排除

常见问题

配置加载问题

  1. 文件未找到:验证文件位置和权限
  2. 语法错误:检查 YAML 语法和缩进
  3. 验证失败:使用 mydeskbot validate-config 命令

模型连接问题

  1. 无效的 API 密钥:验证密钥正确并具有适当权限
  2. 网络问题:检查连接性和代理设置
  3. 速率限制:监控 API 使用情况并实施重试

性能问题

  1. 响应缓慢:检查超时设置和网络延迟
  2. 高资源使用:限制并行请求和上下文大小
  3. 内存问题:减少上下文窗口和缓存大小

下一步

掌握配置后,探索这些高级主题: