Qoder Rules智能规则系统详解 - AI编程助手项目规范配置指南
根据 Qoder 官方文档,Rules 是一个项目特定的规则配置功能,存储在 .qoder/rules 目录中,专门应用于当前项目,优化模型适应您的编码偏好、项目框架和代码风格。
🎯 工作原理
问题背景
- 🧠 LLM局限性 - 大语言模型依赖通用知识
- 📋 缺乏上下文 - 缺少项目特定的上下文和规则
- 🎯 标准不统一 - 难以符合项目的标准和要求
解决方案
- 💡 战略性注入 - 将预定义上下文策略性地注入到提示中
- 🎯 引导AI响应 - 帮助AI响应更一致地符合项目标准
- 📊 优化适应 - 优化模型对项目需求的适应性
💾 存储与共享
存储机制
- 📁 项目目录存储 - 规则文件直接存储在项目目录中
- 🔄 版本控制共享 - 通过Git等版本控制系统与团队成员共享
- 📋 随代码库分发 - 与代码库一起分发和管理
隐私控制
- 🔒 本地规则 - 不需要共享的规则可设为本地专用
- 🚫 忽略设置 - 将
.qoder/rules目录添加到.gitignore文件
⚠️ 使用限制
字符限制
- 📊 最大字符数 - 所有活动规则文件总计最多100,000个字符
- ✂️ 超出截断 - 超出部分将被截断
- 💡 优化建议 - 保持规则简洁高效
内容限制
- 📝 仅支持自然语言 - 不支持图像或链接
- 🎯 文本描述 - 使用清晰的文本描述规则
🏷️ 规则类型
| 类型 | 描述 | 使用场景 |
|---|---|---|
| Apply Manually 手动应用 | 通过AI Chat面板或inline chat中的@rule手动应用 | 按需工作流、自定义提示 |
| Model Decision 模型决策 | AI在Agent模式下评估规则描述并决定何时应用 | 场景特定任务(如生成单元测试或代码注释) |
| Always Apply 始终应用 | 应用于所有AI Chat和Inline Chat请求 | 强制执行项目范围的标准(如编码风格或文档格式) |
| Specific Files 特定文件 | 应用于匹配通配符模式的所有文件(如.js或src/**/.ts) | 编程语言或目录特定规则 |
🎯 最佳实践
规则编写原则
- 🎯 简洁明确 - 保持规则专注且无歧义
- 📋 结构清晰 - 使用项目符号、编号列表或Markdown格式提高可读性
- 💡 包含示例 - 提供"好"的代码示例来指导模型
- 🔄 迭代优化 - 根据模型输出和反馈完善规则
规则示例
编码风格规则 (Always Apply)
## 编码风格规范
- 使用单引号而不是双引号
- 缩进使用2个空格
- 函数命名使用camelCase
- 常量使用UPPER_SNAKE_CASE
- 每行代码不超过100个字符
## 示例代码
```javascript
const API_BASE_URL = 'https://api.example.com';
const getUserData = (userId) => {
return fetch(`${API_BASE_URL}/users/${userId}`);
};
#### **单元测试规则** (Model Decision)
```markdown
## 单元测试生成规范
场景描述: "生成单元测试"
要求:
- 使用Jest框架
- 测试文件命名为 *.test.js
- 每个函数至少3个测试用例: 正常情况、边界情况、异常情况
- 使用describe和it块组织测试
- 添加有意义的测试描述
## 示例结构
```javascript
describe('getUserData', () => {
it('should return user data for valid userId', async () => {
// 正常情况测试
});
it('should handle empty userId', async () => {
// 边界情况测试
});
it('should throw error for invalid userId', async () => {
// 异常情况测试
});
});
#### **React组件规则** (Specific Files: `src/**/*.jsx`)
```markdown
## React组件开发规范
- 使用函数式组件和Hooks
- 组件名使用PascalCase
- Props使用TypeScript类型定义
- 使用默认export导出主组件
- 添加PropTypes或TypeScript类型检查
## 组件结构示例
```jsx
import React, { useState, useEffect } from 'react';
import PropTypes from 'prop-types';
const UserProfile = ({ userId, onUpdate }) => {
const [user, setUser] = useState(null);
useEffect(() => {
// 组件逻辑
}, [userId]);
return (
<div className="user-profile">
{/* 组件JSX */}
</div>
);
};
UserProfile.propTypes = {
userId: PropTypes.string.isRequired,
onUpdate: PropTypes.func
};
export default UserProfile;
## ⚙️ 配置规则
### **设置步骤**
1. 🖱️ 点击 Qoder IDE 右上角的用户图标
2. ⌨️ 或使用快捷键:
- **macOS**: `⌘ ⇧ ,`
- **Windows**: `Ctrl + Shift + ,`
3. 📋 选择 "Qoder Settings"
4. 📏 在左侧导航栏点击 "Rules"
5. ➕ 点击 "Add" 添加新规则
### **创建规则流程**
1. 📝 **输入规则名称** - 在顶部搜索栏输入唯一的规则名称并按Enter
2. 🏷️ **选择规则类型**:
- **Apply Manually** - 手动应用
- **Model Decision** - 模型决策(需输入场景描述)
- **Specific Files** - 特定文件(提供逗号分隔的文件路径通配符)
- **Always Apply** - 始终应用
3. 💾 **关闭窗口保存** - 关闭窗口自动保存更改
### **管理现有规则**
- ✏️ **编辑规则** - 点击规则页面上的编辑图标
- 🗑️ **删除规则** - 点击对应的删除图标
- 🔍 **查看规则** - 在Rules页面查看所有配置的规则
## 🚀 实际应用场景
### **团队协作**
```markdown
## 代码审查规范 (Always Apply)
- 每个PR必须包含测试用例
- 新增功能需要更新相关文档
- 遵循项目的Git提交信息格式
- 大型重构需要拆分为多个小PR
API开发
## API接口开发规范 (Specific Files: src/api/*.js)
- 使用RESTful设计原则
- 统一错误处理格式
- 添加请求参数验证
- 包含完整的JSDoc注释
数据库操作
## 数据库查询优化 (Model Decision)
场景描述: "编写数据库查询"
要求:
- 使用索引优化查询性能
- 避免N+1查询问题
- 使用参数化查询防止SQL注入
- 添加适当的错误处理
💡 高级技巧
规则优先级
- 🏆 Rules优先 - Rules比Memory具有更高优先级
- 🎯 特定优于通用 - Specific Files规则优于Always Apply
- 📊 合理组合 - 不同类型规则可以组合使用
性能优化
- 📝 精简内容 - 避免冗余和重复的规则描述
- 🎯 明确场景 - Model Decision规则的场景描述要具体
- 📊 监控效果 - 定期检查规则的应用效果并优化
Rules 功能的价值:
- 🎯 标准化 - 确保团队编码标准的一致性
- ⚡ 自动化 - 自动应用项目特定的开发规范
- 🔄 可维护 - 通过版本控制管理规则变更
- 👥 团队协作 - 共享项目开发最佳实践
Rules 让 Qoder 真正理解并遵循您的项目规范,成为符合团队标准的AI编程助手!