Skip to content

配置模型、规则和工具

本指南介绍在 MyDeskBot 中设置 AI 模型、定义规则和集成工具的基本配置选项,以便自定义您的 AI 辅助开发体验。

配置文件结构

MyDeskBot 使用 YAML 配置文件,具有最高的可读性和易用性:

yaml
# .mydeskbot/config.yaml
models:
  # 模型配置
rules:
  # 规则定义
tools:
  # 工具集成
preferences:
  # 用户偏好

AI 模型配置

提供商设置

使用不同的 AI 提供商及其特定要求进行配置:

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

  - name: "fast-autocomplete"
    provider: "anthropic"
    model: "claude-3-haiku"
    apiKey: "${ANTHROPIC_API_KEY}"
    role: "autocomplete"

  - name: "local-coding"
    provider: "ollama"
    model: "codellama:7b"
    baseURL: "http://localhost:11434"
    role: "chat"

模型角色

用于专门任务的不同角色:

  • chat: 一般对话和问题解决
  • autocomplete: 代码完成和建议
  • edit: 代码编辑和重构
  • apply: 将更改应用到文件
  • embeddings: 向量嵌入用于相似性搜索

高级模型设置

使用附加参数微调模型行为:

yaml
models:
  - name: "custom-model"
    provider: "openai"
    model: "gpt-4-turbo"
    apiKey: "${OPENAI_API_KEY}"
    role: "chat"
    temperature: 0.7
    maxTokens: 2048
    topP: 0.9
    frequencyPenalty: 0.5
    presencePenalty: 0.5
    stopSequences:
      - "\n\n"
      - "```"

规则配置

定义自定义规则

创建规则来指导 AI 行为并强制执行编码标准:

yaml
rules:
  - name: "security-first"
    description: "始终在代码建议中优先考虑安全"
    prompt: |
      生成代码时,始终:
      1. 使用参数化查询防止 SQL 注入
      2. 验证和清理所有用户输入
      3. 遵循最小权限原则
      4. 包含适当的错误处理而不暴露敏感信息

  - name: "performance-optimized"
    description: "生成性能感知的代码"
    prompt: |
      编写代码时,考虑:
      1. 算法效率和时间复杂度
      2. 内存使用和垃圾回收
      3. 数据库查询优化
      4. 适当情况下的缓存策略

规则组

将规则组织到不同上下文的组中:

yaml
rules:
  - name: "frontend-development"
    group: "web-development"
    description: "前端开发最佳实践"
    prompt: |
      遵循这些前端开发指南:
      1. 使用语义化 HTML
      2. 实现响应式设计
      3. 优化可访问性
      4. 遵循框架最佳实践

  - name: "backend-development"
    group: "web-development"
    description: "后端开发最佳实践"
    prompt: |
      遵循这些后端开发指南:
      1. 实现适当的身份验证和授权
      2. 使用数据库事务确保一致性
      3. 实现适当的日志记录和监控
      4. 设计 RESTful API

工具集成

内置工具

配置用于常见任务的内置工具:

yaml
tools:
  - name: "database-client"
    tool: "databaseClient"
    args:
      databaseType: "postgresql"
      serverName: "localhost"
      database: "myapp"
      username: "postgres"
      password: "${DB_PASSWORD}"

  - name: "ssh-client"
    tool: "remote_command_execution"
    args:
      serverName: "production-server"
      username: "admin"
      keyPath: "~/.ssh/id_rsa"

自定义工具

为特定项目工作流定义自定义工具:

yaml
tools:
  - name: "run-tests"
    tool: "shell_command"
    args:
      command: "npm test"
      workingDirectory: "${PROJECT_ROOT}"

  - name: "deploy-staging"
    tool: "shell_command"
    args:
      command: "./scripts/deploy-staging.sh"
      workingDirectory: "${PROJECT_ROOT}"

工具参数

向工具传递动态参数:

yaml
tools:
  - name: "file-search"
    tool: "grep_files"
    args:
      pattern: "{{query}}"
      directory: "${PROJECT_ROOT}"
      fileExtensions:
        - ".js"
        - ".ts"
        - ".py"

偏好设置配置

用户界面设置

自定义 MyDeskBot 界面:

yaml
preferences:
  language: "zh-CN"
  theme: "dark"
  fontSize: 14
  fontFamily: "Fira Code"
  autoScroll: true
  showLineNumbers: true

行为设置

控制 MyDeskBot 的行为方式:

yaml
preferences:
  autoSave: true
  autoIndent: true
  bracketPairColorization: true
  suggestWhileTyping: true
  inlineSuggestions: true
  minAutoCompleteTriggerLength: 3

环境变量

安全配置

使用环境变量处理敏感信息:

yaml
models:
  - name: "openai-model"
    provider: "openai"
    model: "gpt-4-turbo"
    apiKey: "${OPENAI_API_KEY}" # 从环境加载
    organization: "${OPENAI_ORG_ID}"

tools:
  - name: "database"
    tool: "databaseClient"
    args:
      password: "${DB_PASSWORD}" # 从环境加载
      connectionString: "${DATABASE_URL}"

设置环境变量

不同平台的不同方法:

Linux/macOS:

bash
export OPENAI_API_KEY="your-api-key-here"
export DB_PASSWORD="your-db-password"

Windows (命令提示符):

cmd
set OPENAI_API_KEY=your-api-key-here
set DB_PASSWORD=your-db-password

Windows (PowerShell):

powershell
$env:OPENAI_API_KEY="your-api-key-here"
$env:DB_PASSWORD="your-db-password"

配置验证

语法检查

验证配置文件:

bash
# 使用 CLI
mydeskbot validate-config

# 或检查特定文件
mydeskbot validate-config --file .mydeskbot/config.yaml

常见验证错误

  1. 缺少必填字段: 确保提供所有必填参数
  2. 无效值: 检查值是否匹配预期类型和格式
  3. 重复名称: 确保模型、规则和工具名称唯一

最佳实践

组织

  1. 模块化配置: 将复杂配置拆分为多个文件
  2. 清晰命名: 为模型、规则和工具使用描述性名称
  3. 注释: 添加注释解释复杂配置

安全

  1. 环境变量: 永远不要硬编码敏感信息
  2. 文件权限: 限制配置文件的访问权限
  3. 定期轮换: 定期轮换 API 密钥和密码

维护

  1. 版本控制: 在版本控制中跟踪配置更改
  2. 备份: 定期备份配置文件
  3. 文档: 记录自定义配置及其用途

完整配置示例

这是一个全面的配置示例:

yaml
# .mydeskbot/config.yaml
models:
  - name: "primary-chat"
    provider: "openai"
    model: "gpt-4-turbo"
    apiKey: "${OPENAI_API_KEY}"
    role: "chat"
    temperature: 0.7

  - name: "fast-autocomplete"
    provider: "anthropic"
    model: "claude-3-haiku"
    apiKey: "${ANTHROPIC_API_KEY}"
    role: "autocomplete"

rules:
  - name: "security-guidelines"
    description: "安全最佳实践"
    prompt: |
      始终遵循安全最佳实践:
      1. 输入验证和清理
      2. 参数化数据库查询
      3. 适当的身份验证和授权
      4. 安全的错误处理

  - name: "coding-standards"
    description: "项目编码标准"
    prompt: |
      遵循我们的编码标准:
      1. 使用一致的命名约定
      2. 编写清晰、自文档化的代码
      3. 包含适当的注释
      4. 遵循 SOLID 原则

tools:
  - name: "local-db"
    tool: "databaseClient"
    args:
      databaseType: "postgresql"
      connectionString: "${DATABASE_URL}"

  - name: "production-server"
    tool: "remote_command_execution"
    args:
      serverName: "prod-server"
      username: "admin"
      keyPath: "~/.ssh/prod_key"

preferences:
  language: "zh-CN"
  theme: "dark"
  autoSave: true
  suggestWhileTyping: true

故障排除

常见问题

配置未加载

  1. 检查文件语法和缩进
  2. 验证文件位置 (.mydeskbot/config.yaml)
  3. 确保正确的文件权限

模型连接失败

  1. 验证 API 密钥正确
  2. 检查网络连接
  3. 确认模型可用性和配额

工具执行错误

  1. 验证工具参数正确
  2. 检查工具依赖是否已安装
  3. 确保工具执行的正确权限

下一步

配置模型、规则和工具后,探索以下指南: