Hawa Code 支持记忆功能,可以跨会话记住用户偏好,比如开发语言、项目架构、代码风格等。记忆系统会自动将这些信息注入到每次对话中,帮助 Hawa Code 更好地理解你的需求。
记忆类型
Hawa Code 的记忆系统分为 5 种类型,按优先级从高到低排列:
| 优先级 | 记忆类型 | 文件路径 | 作用范围 |
|---|---|---|---|
| 1 | 企业策略 | macOS: /Library/Application Support/hawacode/HAWA.mdLinux: /etc/hawacode/HAWA.mdWindows: C:\ProgramData\hawacode\HAWA.md |
系统级全局策略,适用于企业部署 |
| 2 | 用户记忆 | ~/.hcode/HAWA.md |
用户级别全局记忆,适用于所有项目 |
| 3 | 用户规则 | ~/.hcode/rules/**/*.md |
用户级别的规则文件,支持路径匹配 |
| 4 | 项目记忆 | {项目路径}/HAWA.md{项目路径}/.hcode/HAWA.md |
项目级别的记忆文件 |
| 5 | 项目规则 | {项目路径}/.hcode/rules/**/*.md |
项目级别的规则文件,支持路径匹配 |
记忆文件格式
记忆文件使用 Markdown 格式,可以包含任意文本内容:
# 我的偏好设置 |
路径匹配规则(Rules)
规则文件支持通过 YAML frontmatter 中的 paths 字段来定义匹配模式,实现针对特定文件或目录的个性化规则。
规则文件格式
--- |
路径匹配语法
paths 字段支持 glob 模式匹配:
| 模式 | 说明 | 示例 |
|---|---|---|
* |
匹配任意字符(不包括路径分隔符) | *.js 匹配所有 JS 文件 |
** |
匹配任意层级目录 | src/**/*.ts 匹配 src 目录及其子目录下的所有 ts 文件 |
? |
匹配单个字符 | file?.txt 匹配 file1.txt, fileA.txt 等 |
! |
排除模式 | !**/*.test.ts 排除测试文件 |
多个路径模式
支持同时定义多个路径模式:
--- |
也支持逗号分隔的字符串格式:
--- |
规则触发机制
- 全局记忆(Enterprise Policy、User Memory、Project Memory、无 paths 的 Rules):在每次对话开始时自动加载
- 路径特定规则(带 paths 的 Rules):按需自动触发加载。
使用建议
1. 用户记忆(~/.hcode/HAWA.md)
适合存放个人通用的偏好设置:
- 个人代码风格偏好
- 常用的技术栈
- 个人开发习惯
2. 项目记忆(项目路径/HAWA.md)
适合存放项目特定的信息:
- 项目架构说明
- 项目技术规范
- 项目目录结构约定
3. 规则文件(rules/*.md)
适合存放针对特定文件类型的规则:
- API 开发规范
- 组件编写规范
- 测试文件规范
- 配置文件规范
示例
用户记忆示例
文件: ~/.hcode/HAWA.md
# 我的开发偏好 |
项目记忆示例
文件: 项目路径/HAWA.md
# 项目规范 |
路径规则示例
文件: .hcode/rules/api.md
--- |
文件: .hcode/rules/react.md
--- |
注意事项
- 文件编码: 记忆文件必须使用 UTF-8 编码
- 文件格式: 必须是有效的 Markdown 格式
- 路径匹配: 规则文件中的
paths字段是可选的,如果没有定义则作为全局规则加载 - 性能考虑: 避免在记忆文件中存放过多内容,建议只存放关键偏好和规则