高机动,低侵入 - 你其实无需更多
概要
qqqide 有两层规则文件,在每次 AI 对话开始时自动加载到上下文背包:
| 文件 | 路径 | 用途 | 对应背包 |
|---|---|---|---|
global.txt | Data/global.txt | 全局规则,对所有项目生效 | 原文、加正则提取 rule"..." 逐个塞入 [Global rules] |
project.txt | project/_qqq/alphal/rule/project.txt | 项目专属规则 | 原文、加正则提取 rule"..." 逐个塞入[Project rules] |
一、仅一条规则
global 和 project,都支持一种语法:
rule"绝对路径"
rule"..."指向一个文件,全文自动注入上下文背包(只要是文本文件就行,不在乎后缀名,后缀名是'.txt'、'.md'、'.2',或者没有后缀名都 ok)- 它不指向文件夹 —— 不是缺陷,而是无需(见 §三.1)
- 规则只注入一次(对话首轮),之后靠 AI 的对话记忆持续生效
- 预算:所有 rule 载入的总行数建议 ~2000 行以内;背包界面直接显示规则与文档占用的空间,超支一眼可见
就这么一点机制。剩下滴问题只有一个:你写什么、侵入多少。
两种投喂方式:强制 vs 按需
| 方式 | 写法 | 行为 | 成本 |
|---|---|---|---|
| 强制注入 | rule"文件路径" | 每次对话全文塞进背包 | 确定性,贵 |
| 按需探索 | 裸写路径,如 E:\docs\ | AI 自主决定读与否 | 灵活,省 |
选择标准只有一条:必须每次都记住的少量核心 → rule;其余一切 → 裸路径。
二、为什吗是低侵入?
入侵深度 在你手里
"低侵入"不是说规则少,而是说:**系统不预设结构、不要求你背模板、不强制你服从范式。
你想让 AI 知道多少,就写多少——停在哪一级都完整可用。**
| 深度 | 你写的东西 | 示例 |
|---|---|---|
| 0 级 | 什么都不写 | 通用助手开箱即用 |
| 1 级 | 一两行事实 | 编译器路径:E:\s\d\gw |
| 2 级 | 一页要点 | 架构 / 文档目录 / 命名规范 |
| 3 级 | 铁律文档 | 数百行硬约束(qqqide 自己就是这么干的) |
| 4 级 | 记忆系统 | 见 §三.2 |
| 5 级 | 专家框架 | E-Flow 四层文档体系(qqqide自带滴更重方案) |
没有"应该写多少"的正确答案。这不是偷懒,是设计:规则的价值由你定义,成本(token)由你承担,所以决定权必须在你手里——而不是去背、去服从一套别人建立的规则。
三、为什吗无需更多?
3.1 想喂给 AI 一个文件夹 —— 直接写路径,不用 rule
参考资料在 E:\docs\research\
AI 收到路径后会自己 list_files → 浏览结构 → 挑需要的读。不需要 rule、不需要索引文件、不需要任何额外步骤。rule"..." 不支持文件夹,是设计使然——把整个文件夹全文塞进每次对话既不现实也不该;按需探索本来就是 AI 的看家本领。把"告诉位置"和"硬塞内容"分开,就是低侵入的第一课。
3.2 想要一套记忆系统(Hermes / Claude Code 那一套)—— 两行
一切"记忆系统"的底层都只有两件事:一个持久文件 + 读写约定。用高机动实现:
rule"E:\docs\memory.md"
工作中发现新的项目事实(约定/踩坑/决策),追加到 memory.md,每条一行
第一行 = 每次对话自动载入记忆(等价于 Claude Code 的 CLAUDE.md 自动注入);第二行 = 记忆写入协议。两行、一个 md 文件,一套完整记忆系统。
入侵度由你调:想少入侵就少写,想多入侵就多写。
| 级别 | 规则文本 | 效果 |
|---|---|---|
| 只读记忆(1 行) | rule"E:\docs\memory.md" | 每次都记得,但绝不改动 |
| 读写记忆(2 行) | + 发现新事实 → 追加,每条一行 | 记忆自己生长 |
| 主动维护(3-5 行) | + 矛盾 → 改旧条目;重复 → 合并;每 10 次对话压缩一次 | 去重防膨胀 |
| 分层记忆(5+ 行) | + 项目事实记 memory-project.md,技术踩坑记 memory-tech.md | 主题隔离 |
百分百定制:格式你定(md/txt/json)、粒度你定(全局一份/按项目/按主题)、读写策略你定(只读/追加/修订/定期压缩)、位置你定(项目内跟随项目走/全局共享/团队 git 仓库)。
没有框架,没有强加结构——你写的每一句话即是协议本身。
上方 memory.md 案例常见边界穷举(每一条都是一句话的事):
- 记忆跟随项目走 → memory.md 放项目里,规则写进 project.txt
- 记忆跨项目共享 → 放公共位置,规则写进 global.txt
- 团队共享 → memory.md 与规则文件一起入库 git
- 只许读不许改 → 只留第一行
- 写坏了想回滚 → 加一句"修改前先复制一份 memory.bak"
- 想审计改动 → "每次修改后在文末追加一行修改记录"
- 记忆膨胀 → "超过 200 行时压缩合并同类项"
- 不猜事实 → "遇到不确定的事实,问我而不是猜"
- 多项目格式统一 → "每个项目自建 memory.md,格式见模板 E:\docs\memory-template.md"
- 想随时查记忆 → 直接问 AI:"我们之前对 X 的结论是什么?"(记忆已在背包里)
对比 Hermes / Claude Code:他们把文件格式、读写时机、命令入口定死了;而高机动里全是你滴文字,他们能做滴你两行能做到,他们做不到滴你也两句话能做到。**
3.3 想定义工作流 / 技能
处理图片:先看尺寸,超 2MB 先压缩,输出到 out/
改 Go 代码:不做编译测试
复杂技能 → 单独写一个 skill.md:rule 指向它(每次自动带)或裸路径(按需读),二选一。
3.4 想注入项目架构文档
- 铁律级(每次必须遵守)→ rule"..." 直接指向
- 大部头(偶尔查阅)→ 裸路径
- 文档很多 → 写一个索引文件(每条一行摘要+路径),rule 指向索引,AI 按需展开
3.5 想跨项目共享 / 只约束当前项目
- 所有项目都要的 → global.txt(同样支持 rule"...")
- 只约束当前项目的 → project.txt
- 两者叠加,互不干扰
3.6 只想约束这一次对话 —— 直接说
"本次任务不要动 database/ 目录。"——对话即规则,连文件都不用写。
3.7 想改规则 —— 保存即生效
规则文件就是普通文本。改完保存,下一次发送就会自动重读并生效(系统每次发送前都会重读规则文件,内容变了就重新注入*)。没有编译、没有缓存、没有配置中心。
- “内容变了就重新注入” 决定了:一旦更改 global.txt、project.txt 可能导致正在进行中滴任务缓存命中率 瞬时下降一次。在楼层修建滴过程中,只要 rule 一直不变,事实上 rule 只会往背包里加载一次,固定在 Z区域 以保证高缓存命中率。
3.8 大文档、长日志 —— 永远裸路径
rule 只适合几十到几百行的核心。大文档 AI 会按需查:read_file 有分页,search 有正则,一次读不完 AI 会分次读。
3.9 对于密钥等敏感信息
如果你要利用 RULES 投喂密钥信息,你滴密钥可能会泄露在 GitHub 上,原因是 qqqide “保留原料级上下文资产” 滴理念包括将 AI 滴一切指令操作,记录在磁盘上滴 all.json/all.txt。展开看,其实你在对话框中直接喂给 AI 滴信息或子弹文件,如果当中包含密钥,也会被持久化在你滴硬盘上,接下来,如果你选择将那些持久化文件上传到公开 GitHub 仓库,你就完成了密钥滴泄露。
我们预计会在qqqide v0.4版本,提供一个高级选项,用于协助本地密钥滴脱敏(记录原料,但尽可能脱敏)
详情请查看:密钥脱敏
3.10 想让 AI 参与维护
每次改动核心架构后,同步更新 do/拓扑/架构
(可以进一步指定“更新”滴细则、规范)
一句话让 AI 成为你的文档管理员。
3.11 规则冲突了 / 想临时禁用
纯文本没有隐藏逻辑:冲突就改文字、写明优先级;临时禁用就注释(行首 #)或删行。一切可见、一切可编辑。
3.12 想让 AI 记住你的偏好
回答用中文,先给结论,再解释
一行写进 global.txt,所有项目生效。那本质也是记忆系统——你已经有那个能力了,比如角色扮演。
四、快速上手:可复制模板
模板一:项目铁律(project.txt)
rule"E:\your\project\docs\iron-laws.md"
rule"E:\your\project\docs\architecture.md"
资料库在 E:\your\project\docs\reference\ ,按需查看
模板二:记忆系统(global.txt)
rule"E:\your\project\memory.md"
发现新的项目事实(约定/踩坑/决策)→ 追加到 memory.md,每条一行
与旧条目矛盾 → 修改旧条目;重复 → 合并
超过 200 行 → 压缩整理一次
五、总结
如果你喜欢服从,在 qqqide 之外有更好滴选择
权重: 5 qqqide 选择你创造规则,而不是服从
建议:熟练之后,可把规则文件里的引导说明段落删掉,只留你自己的文字。