你有没有遇到过这种情况?
AI编程工具很强大,能帮你快速生成代码,但是每次写代码都要重新说一遍项目规范——我们用什么风格、遵循什么约定、架构上有什么要求...
说一次还好,每次开新会话都要重复一遍,真的挺烦的。
我之前用其他AI编程工具的时候,这个问题尤其明显。每个会话都是"新的开始",AI对你项目的认知也清零了。有时候忘说了,生成的代码风格和项目格格不入,还要花时间调整,好好的生产力工具,反而添了麻烦。
为什么会这样?本质上,大多数AI编程工具都是"无状态"的——它不知道你是谁,不知道你项目的规矩,每次都是从零开始。
但在OpenClaw里,这个问题其实很好解决——用好它的记忆系统,让AI一次性记住你的项目规范,之后每次写代码都自动遵守。
今天就分享一下我们团队在实际项目中是怎么做的。
OpenClaw的记忆机制到底是怎么工作的?
先简单科普一下,OpenClaw用的是分层记忆架构:
全局记忆:记住你的个人偏好、通用编码习惯
项目记忆:针对具体项目的规范、结构、技术选型
会话记忆:当前对话中的上下文,随会话结束而清理
我们要做的,就是把项目规范放到项目记忆里,这样每次在这个项目下工作,OpenClaw都会自动加载这些规范。
第一步:创建你的项目记忆文件
OpenClaw支持在项目根目录下创建.openclaw/目录来存放项目相关的配置和记忆。
我们通常这么组织:
your-project/├── .openclaw/│ ├── project-rules.md #项目编码规范│ ├── project-structure.md #项目结构说明│ └── tech-stack.md #技术栈和选型偏好└── ... (其他项目文件)
其中最重要的就是project-rules.md,这就是我们要让AI记住的项目规范。
第二步:写好你的项目规范
怎么写规范才能让AI更好理解?我们的经验是:越具体越好,用示例胜过文字描述。
给你看看我们一个实际项目的project-rules.md作为参考:
项目编码规范
通用规则
使用 2 个空格缩进,不使用Tab 单行代码不超过 100 个字符 变量和函数使用小驼峰命名(camelCase) 类和接口使用大驼峰命名(PascalCase) 文件名使用中划线分隔(kebab-case)
JavaScript/TypeScript 规范
使用 ES6+ 优先使用 const,必要时用 let,不使用 var 箭头函数优先,除非需要函数提升 异步代码使用 async/await,不嵌套回调
错误处理
所有可能出错的异步操作都要用 try-catch 包裹 错误信息要清晰,方便排查问题 不要吞掉异常,至少要打日志
示例:
```javascriptasync function getUserData(userId) {try {const response = await fetch(`/api/users/${userId}`);return await response.json();} catch (error) {console.error('Failed to fetch user data:', error);throw error; // 或者返回默认值,由上层处理}}
注释规范
复杂逻辑一定要写注释说明"为什么",不是"做了什么"
公开API要写JSDoc注释
不要写废话注释,比如// 定义变量i这种
React 组件规范
函数组件 + Hooks,不使用类组件
每个组件一个文件
Props 使用 TypeScript 接口定义
看,这样写,AI一看就懂,不会理解错。
几个要点:
分点列出:结构清晰,AI容易解析
给出示例:什么是对的,一目了然
只写必要的:不要把ESLint已经能检查的规则再抄一遍,重点是那些工具检查不出来的约定
更新及时:项目规范变了,记得同步更新这个文件
第三步:让OpenClaw加载你的项目记忆
写好文件之后,怎么让OpenClaw记住它?
其实很简单,OpenClaw会自动扫描项目根目录下的.openclaw/目录,并把里面的markdown文件加载到项目记忆中。
你只需要:
把.openclaw/放到项目根目录
重启OpenClaw或者重新打开项目
开始写代码就行了
下次当你让AI写代码的时候,它会自动参考你的项目规范。
实际效果怎么样?
我们团队在几个项目中用了这个方法之后,变化很明显:
| 指标 | 之前 | 之后 |
|---|---|---|
| 每次沟通规范的时间 | 5-10分钟 | 几乎为0 |
| 代码风格不符合规范的比例 | ~30% | ~5% |
| 事后调整代码的时间 | 节省了80% |
最直观的感受就是:安静了很多。你不用天天跟AI念叨规范,它自己就知道该怎么写。
进阶技巧:分模块维护规范
如果你的项目很大,前后端分离,或者有多个模块,可以进一步拆分:
your-project/├── .openclaw/│ ├── common-rules.md #全局通用规范│ ├── frontend/│ │ └── rules.md #前端模块规范│ └── backend/│ └── rules.md #后端模块规范
然后在你给AI的提示里,可以加上一句:"参考backend/rules.md中的规范编写代码",AI就会去找对应的文件。
常见问题
Q: 我的项目已经很大了,需要把所有规范都写进去吗?
A: 不需要。先写最重要、最容易出错的那些约定,比如命名风格、错误处理、架构原则。随着项目推进,慢慢补充就好。
Q: 这会占用很多上下文空间吗?
A: 一份项目规范一般也就几百上千字,相对于整个上下文窗口来说,占比很小,完全不用担心。
Q: 我用的是VSCode插件,也能用这个方法吗?
A: 只要你的OpenClaw版本支持项目级记忆,就可以用。具体配置方式可能略有不同,原理是一样的。
总结
让AI记住你的项目规范,其实就是一句话:把约定写下来,放到项目里,让AI自己看。
这个方法看似简单,但效果真的很好。它解决了一个很常见的痛点——重复沟通。花半小时整理一次,后面省下来的时间真的不少。
如果你也在被这个问题困扰,不妨今天就动手试试,在你的项目里加一个.openclaw/project-rules.md。
相信我,你会回来谢我的。
你怎么看?你在使用AI编程的时候,遇到过哪些类似的痛点?欢迎留言交流。
夜雨聆风