配置模型、规则和工具
本指南介绍在 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-passwordWindows (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常见验证错误
- 缺少必填字段: 确保提供所有必填参数
- 无效值: 检查值是否匹配预期类型和格式
- 重复名称: 确保模型、规则和工具名称唯一
最佳实践
组织
- 模块化配置: 将复杂配置拆分为多个文件
- 清晰命名: 为模型、规则和工具使用描述性名称
- 注释: 添加注释解释复杂配置
安全
- 环境变量: 永远不要硬编码敏感信息
- 文件权限: 限制配置文件的访问权限
- 定期轮换: 定期轮换 API 密钥和密码
维护
- 版本控制: 在版本控制中跟踪配置更改
- 备份: 定期备份配置文件
- 文档: 记录自定义配置及其用途
完整配置示例
这是一个全面的配置示例:
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故障排除
常见问题
配置未加载
- 检查文件语法和缩进
- 验证文件位置 (.mydeskbot/config.yaml)
- 确保正确的文件权限
模型连接失败
- 验证 API 密钥正确
- 检查网络连接
- 确认模型可用性和配额
工具执行错误
- 验证工具参数正确
- 检查工具依赖是否已安装
- 确保工具执行的正确权限
下一步
配置模型、规则和工具后,探索以下指南: