如何用项目规则给 AI 划定编码边界

文章目录

    • [📌 技术名片](#📌 技术名片)
      • [💡 一句话理解](#💡 一句话理解)
    • [一、 主流 AI 编程工具如何定义项目规则](#一、 主流 AI 编程工具如何定义项目规则)
    • [二、 如何编写一份高约束力的 Python 规则文件](#二、 如何编写一份高约束力的 Python 规则文件)
      • [示例:Python 项目规则文件](#示例:Python 项目规则文件)
    • 三、项目规则是护栏,不是编译器
    • 结语

上一篇我们讨论了一个核心原则:

先定义边界和规则,再让 AI 在边界内发挥能力。

那么问题来了:

这些架构规则,怎样才能真正交给 AI?

答案就是本文的主题------Project Rules(项目规则)


📌 技术名片

项目规则(Project Rules)

指通过项目级规则文件,将项目的技术栈、架构边界、编码规范和安全要求持续提供给 AI。

不同 AI 编程工具可能将其称为 Rules、Instructions、Custom Instructions 等,但核心目的相同:

告诉 AI 这个项目应该怎么写,以及哪些边界不能突破。

💡 一句话理解

项目规则就像放在施工现场入口处的《施工规范》。

AI 是施工队,架构是图纸,而 Rules 则明确告诉它:

哪些墙能拆、哪些层不能跨、材料用什么标准、完工后必须通过什么验收。

这些规则会作为持久化的项目上下文或指令参与 AI 编码过程,持续影响代码生成、修改和 Agent 行为


一、 主流 AI 编程工具如何定义项目规则

不同工具的文件名和规则机制有所不同,但本质是一致的:

把原本依赖工程师记忆的规范,变成 AI 可以持续读取的项目约束。

以下是当前最主流的配置方式:

工具 常见项目规则文件 主要作用
Cursor .cursor/rules/*.mdc 项目级 / 路径级规则
GitHub Copilot .github/copilot-instructions.md 仓库级规则
GitHub Copilot .github/instructions/*.instructions.md 路径级规则
Windsurf .windsurf/rules/*.md 工作区 / 路径级规则
通用 Agent AGENTS.md 项目或目录级规则

二、 如何编写一份高约束力的 Python 规则文件

AI 需要的是具体、明确、可判断是否违反的规则。

markdown 复制代码
❌ 模糊规则:

- 请保持代码优雅、低耦合。

✅ 明确规则:

- `routers/` 只负责 HTTP 请求与响应,不得直接访问数据库。

一份标准的 Python 工程规则文件建议包含以下 4 个核心模块:

模块 回答的问题
项目上下文(Project Context) 这是一个什么项目?
架构边界(Architecture Boundaries) 什么代码应该放在哪里?
编码规范(Coding Standards) 代码应该怎么写?
校验与安全(Validation & Safety) 哪些事情不能做?

示例:Python 项目规则文件

markdown 复制代码
生成或修改代码时,应遵循以下项目规则。


## 1. 项目上下文

技术栈:

- Python 3.11+
- FastAPI
- Pydantic v2
- SQLAlchemy 2.x
- Pytest

优先保证:

- 职责清晰
- 类型安全
- 可测试
- 低耦合

除非明确需要,不要引入新的第三方依赖。


## 2. 架构边界

项目采用:

Router → Service → Repository → Database

职责:

- `routers/`:处理 HTTP 请求、参数校验和响应
- `services/`:处理业务逻辑
- `repositories/`:负责数据库访问
- `schemas/`:定义 Pydantic 输入输出模型
- `models/`:定义数据库 ORM Model

禁止:

- Router 直接访问数据库
- Service 直接执行 SQL
- Repository 包含业务逻辑
- Repository 反向调用 Service
- Service 依赖 Router


## 3. 编码规范

- 公共函数提供完整 Type Hints
- API 输入输出使用 Pydantic 校验
- 数据库、HTTP Client 等外部依赖通过参数或依赖注入提供
- I/O 操作优先使用 `async / await`
- 禁止硬编码 API Key、密码等敏感配置
- 优先复用现有组件,避免重复代码
- 不要为了"以后可能需要"而过度设计


## 4. 校验与安全

- 所有外部输入必须进行校验
- 禁止使用 `except Exception: pass` 静默吞掉异常
- 数据库使用 ORM 或参数化查询
- 禁止将密码、Token、API Key 写入源码或日志
- 谨慎使用 `shell=True`、`eval()`、`exec()` 等高风险操作


## AI 修改代码时

修改代码前:

1. 先判断代码属于哪一层
2. 检查项目中是否已有可复用实现
3. 只修改完成当前任务所必需的代码

如果用户要求与现有架构冲突:

**先指出冲突和风险,再给出符合现有架构的实现方案。**

很多先进的Agent已经内置强化了项目规则,在实际使用时请酌情删减。


三、项目规则是护栏,不是编译器

需要特别注意:

项目规则可以提高 AI 输出的一致性,但不能保证 AI 100% 遵守。

真正可靠的工程约束应该是:

text 复制代码
AI 生成代码
     ↓
Lint(代码规范检查)
     ↓
Type Check(类型检查)
     ↓
Unit Tests(单元测试)
     ↓
Security Check(安全检查)
     ↓
CI(自动执行上述检查)
     ↓
通过 → 允许合并
失败 → 拒绝合并

项目规则负责告诉 AI 应该怎么做,测试检查工具负责检查它到底有没有做到。

不同 AI 编程工具已经内置了不同程度的代码规范、上下文管理和安全机制,因此实际项目不必机械照搬模板。只保留真正需要 AI 长期遵守的规则即可。

项目规则不是越多越好,而是越明确、越稳定、越贴合项目越好。


结语

项目规则 / Project Rules 的价值,不是让 AI "写得更漂亮",而是让它持续按照同一套工程规则工作

它把原本存在于架构师脑中的约定:项目上下文、架构边界、编码规范、校验与安全

转化成 AI 可以持续读取的项目上下文。

架构负责定义边界,项目规则负责把边界告诉 AI,测试检查工具确保边界没有被突破。


🪐祝您好运🪐

相关推荐
优氙费控2 小时前
报销审核效率低?AI费用审核正在改变财务工作方式
大数据·人工智能
神奇霸王龙2 小时前
MCP 微软教材背书:5 国产基座 Agent 承接力实测
microsoft·ai·ai作画·agent·ai编程·ai写作·mcp
云边云科技_云网融合2 小时前
金融医疗混合云组网如何满足数据安全与合规要求?
大数据·人工智能·物联网
开开心心就好2 小时前
视频播放器完美解码集成三款播放器切换使用
前端·人工智能·智能手机·电脑·音视频·virtualenv·pygame
hzcj8882 小时前
汇正财经:出海数据向好,创新药热度高
大数据·人工智能
鲜于言悠9052 小时前
一文讲透Agent评测:从短程评测走向长程评测
人工智能
@Mr_LiuYang3 小时前
大模型提示注入攻防实验--《深入理解 AI Agent:设计原理与工程实践 》实验2-5
人工智能·大模型·提示词注入·攻防实验
Qyr993 小时前
重载机器人传输单元:工业自动化的“移动基石”与市场增长新引擎
人工智能
leory3 小时前
01 - Function Calling 机制
人工智能