理解配置
本综合指南探讨了 MyDeskBot 中可用的所有配置选项,帮助您微调 AI 辅助开发环境以获得最佳性能和自定义。
配置文件位置
MyDeskBot 按以下顺序查找配置文件:
- 项目级别:项目根目录中的
.mydeskbot/config.yaml - 用户级别:主目录中的
~/.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故障排除
常见问题
配置加载问题
- 文件未找到:验证文件位置和权限
- 语法错误:检查 YAML 语法和缩进
- 验证失败:使用
mydeskbot validate-config命令
模型连接问题
- 无效的 API 密钥:验证密钥正确并具有适当权限
- 网络问题:检查连接性和代理设置
- 速率限制:监控 API 使用情况并实施重试
性能问题
- 响应缓慢:检查超时设置和网络延迟
- 高资源使用:限制并行请求和上下文大小
- 内存问题:减少上下文窗口和缓存大小
下一步
掌握配置后,探索这些高级主题: