

我以前很怕在 AI 工具里点“新建会话”。
为了不让 AI 失忆,一个项目我通常只敢固定使用一到三个会话窗口。有时连续几天,我都在同一个窗口里让它改代码、查问题、补文档、继续上一次没做完的事情。
每天开始工作时,我不是直接提出需求,而是先找到项目,再找到这个项目原来的会话,然后接着聊。
我当时觉得这样最省事:旧窗口知道前因后果,不用重新交代。
可时间一长,问题全来了。
我本来是想解决 AI 失忆,最后却变成了自己帮 AI 保管会话。
现在完全相反。
在入口有效、项目规则仍然是当前版本的前提下,我每天会开很多新窗口。一个问题、一个任务,可以用一个干净的会话完成,做完就关闭。第二天重新开一个窗口,我直接提要求,它很快就能沿着项目原来的规则继续做下去。
我不用先寻找昨天的聊天记录,也不用把一个已经很臃肿的旧会话续上。
而且,接手工作的不一定还是昨天那个 AI。
今天我可以用 Claude Code 开发;如果账号被封或受限,或者额度、网络、服务突然不可用,下一刻可以换 Codex 打开同一个项目。它读取项目里的规则和进度,再检查当前代码现场,就能继续往下做。
所以我摆脱的不只是“旧会话依赖”,还有“单一 AI 工具依赖”。
新窗口依然没有神奇地继承昨天的聊天内容。真正发生的变化是:
我把原来困在会话里的规则、项目边界、长期经验和工作流程,搬到了自己控制的文件系统里。
AI 不需要记住每一段旧聊天,只需要在上岗时知道:先读什么,去哪里找,什么才是当前真相。
这就是我给 AI 搭的“启动大脑”。
下面是我现在这套方法的最小可复制版:
你不需要照搬我的整套系统,先用一个项目验证就够了。

长会话当然有价值。
讨论一个复杂方案时,连续上下文可以减少重复解释。问题在于,我以前把长会话当成了项目的记忆库。
于是只要离开那个窗口,项目就像丢了一部分大脑。
这会产生一个很隐蔽的依赖:
项目能不能顺利继续≈我还能不能找到原来那个会话但聊天记录并不是一个好的项目真源。
一段会话里同时混着需求变化、临时猜测、已经修正的错误、过期路径和最终决定。它知道得很多,却不一定知道哪一条仍然有效。
会话越长,还会占用越多上下文。即使工具能够压缩历史,也不代表压缩后的内容一定保留了我最在意的边界和细节。
更麻烦的是:这些知识通常只能在当时那个工具、那个账号、那个项目会话里使用。
一旦换成另一个 AI 工具,我还是要重新交底。
后来我给自己定了一条原则:
聊天用来推进当前任务,文件用来保存跨会话仍然有效的事实。
这条原则把我的工作方式彻底改了。

我并不是把上下文消灭了。
我只是把“整段聊天历史”换成了“当前任务真正需要的上下文”。
我的启动链路并不复杂:
AI 工具入口→ 全局协作规则→ 项目三件套:AGENTS.md、CLAUDE.md、PROGRESS.md→ 检查当前文件、Git 状态和未完成改动→ 按任务选择画像、记忆或能力索引→ 命中具体 skill、SOP、项目文档或源材料→ 完成任务并验证真实结果
其中最重要的不是文件多,而是分工清楚。
这里放跨工具、跨项目都应该生效的规则。
例如:使用什么语言;不凭记忆猜路径;删除、移动、发布和提交前是否需要确认;怎样才算任务真正完成。
这类规则只维护一份。Claude、Codex、Gemini、Cursor 可以有不同入口,但最终都指向同一个真源。
我现在给重要项目保留三个文件:
my-project/├── AGENTS.md # 项目稳定规则├── CLAUDE.md # Claude Code 兼容入口└── PROGRESS.md # 当前进展与历史决定AGENTS.md 回答这个项目长期稳定的问题:
它不重复全局规则,也不堆每一天的施工记录。
CLAUDE.md 只做 Claude Code 兼容入口,内容可以短到只有两句话:请读取同级 AGENTS.md;本文件不维护规则正文。
PROGRESS.md 则记录项目已经做到哪里、为什么这样决定、真实验证结果和下一步。它是另一个 AI 接手时最需要的交接记录。
三者合在一起,分别解决:
AGENTS.md = 这个项目应该怎样工作CLAUDE.md = Claude 从哪里进入共同规则PROGRESS.md = 上一个 AI 已经把项目做到哪里不是每次启动都要把全部资料塞给 AI。
需要理解我的表达偏好时,才读轻量画像;需要历史经验时,才查记忆索引;需要找工具或工作流时,才查能力路由。
真正执行时,再进入对应的 skill、SOP、代码或源材料。
这一步很关键。
如果为了防止失忆,开机就让 AI 读完整个人档案、所有记忆、全部项目和所有 skill,只是把“超长聊天”换成了“超长启动文档”。
我的做法是:
先读最小入口→ 判断当前任务属于什么→ 只加载本次需要的材料如果一个决定只存在于这次聊天里,下一个窗口当然还是不知道。
所以任务结束后,我会判断:
PROGRESS.md;不是保存整段聊天,而是只保存以后仍然有用的结论。
多 AI 工具用户还有一种更现实的焦虑:如果项目长期绑在 Claude 的几个旧会话里,一旦封号、账号受限、额度用完或网络异常,项目也跟着停下来。
我的项目三件套,本质上是一份不绑定模型和账号的交接协议。
假设上午我还在用 Claude Code 开发,下午 Claude 突然不可用。我不需要等待账号恢复,也不需要把旧对话导出来重新喂给另一个 AI。
前提是 Codex 已经安装并登录,而且拥有同一个项目目录的读取和必要操作权限。
满足这个前提后,我可以直接在同一个项目根目录打开 Codex。它的接管顺序是:
1. 读取 AGENTS.md,理解项目规则、目录边界和验收方式2. 读取 PROGRESS.md,知道已经完成什么、为什么这样做、下一步是什么3. 检查当前文件、git status 和 git diff,确认 Claude 留下的真实工作现场4. 根据任务再读取对应代码、文档、skill 或 SOP5. 从当前状态继续开发,而不是重建整个聊天上下文CLAUDE.md 在这里看起来只服务 Claude,为什么仍然属于三件套?
因为它是 Claude 进入共同规则的适配器。Claude 在时,通过 CLAUDE.md 进入 AGENTS.md;Claude 不在时,Codex 直接读取同一份 AGENTS.md。两边使用的是同一套项目事实,不会各自长出一份规则。
如果一个项目完全不使用 Claude Code,CLAUDE.md 可以省略;但我的项目通常会在多个 AI 工具之间切换,所以统一保留三件套。真正被不同工具共同使用的核心,是 AGENTS.md + PROGRESS.md。
这带来的安全感不是“Claude 账号永远不会出问题”,而是:
即使某个 AI 工具突然不可用,项目的规则、进度、代码和验证方式仍然在我自己的目录里。
当然,这不是百分之百无损切换。
如果 Claude 刚在聊天里作出一个决定,还没修改文件,也没写进 PROGRESS.md 就突然中断,那一小段上下文仍可能丢失。不同模型的能力和工具配置也不完全一样。
所以跨工具接管能否顺滑,取决于两个习惯:
PROGRESS.md;项目三件套不是为了让任何 AI 知道一切,而是让项目不再被某个模型、账号或会话绑架。
这篇文章本身就是一次冷启动测试,而且第一次并没有完全通过。
我的系统里同时有两个看起来都能放文章的地方:
如果只凭目录名称猜,AI 很容易把文章正文写进“对外表达”目录。
但新会话读取项目规则后,会继续找到两个目录的真实职责:
我当时只提出两个要求:更新文章矩阵,以及先写《为什么 AI 每次换个窗口都像失忆:我给它搭了一个启动大脑》。
这个新会话实际走过的读取链路,脱敏后是:
全局协作规则→ AI 控制平面的项目规则→ 对外表达文章矩阵→ 知识库项目规则→ 知识库笔记操作规范它据此把文章正文放到了知识库,把文章矩阵留在 AI 控制平面,没有让我重新解释以前为什么做目录迁移。
我不需要先把旧聊天翻出来,再重新解释整个目录迁移过程。
但是,第一版文章交到我面前后,我仍然把它退回去了。
失败发生在产出质量,而不是入口路由:它找对了地方,却没有写出值得读者花时间看的内容。
原因很直接:那一版虽然把“启动规则、记忆索引、能力路由”讲得很完整,却都是网上随便搜一下、问一下 AI 就能得到的概念。读者看完没有真实经验可以借鉴,也没有提示词、skill 或工作流可以直接复制。
这次失败让我更确定启动大脑的边界:
它能让新 AI 找到正确的项目、文件和历史,但不能自动替代我的产品判断和读者判断。
于是我们又把文章推倒重写,加入我曾经被一到三个长会话绑住的真实经历,以及你现在看到的文件模板、工具接线、skill 和验收方法。
这个案例不炫技,但它非常接近我每天真实使用 AI 的状态:我只提出当前需求,AI 根据现行规则找到正确的工作位置和源材料;结果好不好,仍然要经过真实反馈和迭代。
这也是我现在敢大量新开窗口的原因。
我的完整系统已经比较大,但最开始不需要搭那么多。
你可以先准备下面这组文件:
~/ai-system/├── AGENTS.md # 跨项目协作规则├── PROFILE.md # AI 正在跟谁合作├── MEMORY.md # 长期经验的轻量索引└── PLAYBOOK.md # 能力、工具和工作流路由~/projects/my-project/├── AGENTS.md # 当前项目的稳定规则├── CLAUDE.md # Claude Code 兼容入口└── PROGRESS.md # 项目进度、决定和下一步
文件名不是重点。重点是把“全局规则”和“项目事实”分开,把“启动必读”和“按需读取”分开。
开始前先做两件事:
~/ai-system/ 建在你自己长期维护的位置;/Users/yourname/ai-system 或 C:\Users\yourname\ai-system。下面用 /ABS/PATH/ai-system 作为占位符。复制后必须全局替换成你的真实绝对路径,不要原样保留。所有表格只添加已经存在的文件;不存在的入口先删除,不要提前造出一堆断链。
# 我的 AI 协作规则AI_SYSTEM_ROOT = /ABS/PATH/ai-system## 默认协作方式- 使用中文,先给结论,再解释原因。- 操作文件前先读取当前真实状态,不凭聊天记忆猜路径。- 只修改当前任务涉及的内容,不顺手改无关文件。- 删除、移动、重命名、对外发布、安装依赖、提交或推送前,先得到我的确认。- 任务完成后检查真实产物,不把“命令退出码为 0”直接当成业务成功。## 递归读取1. 当前项目存在 `AGENTS.md` 时读取它;已经加载过的文件不要重复读取。2. 需要理解我的偏好时,再读 `/ABS/PATH/ai-system/PROFILE.md`。3. 需要历史经验或旧决定时,再读 `/ABS/PATH/ai-system/MEMORY.md`。4. 需要找工具、skill 或工作流时,再读 `/ABS/PATH/ai-system/PLAYBOOK.md`。5. 命中具体任务后,只读取对应的源文件,不要一次扫描全部资料。## 高风险边界- 不在聊天或 Markdown 中保存密码、API Key、cookie、证件号码等敏感信息。- 涉及生产数据、付费、发布、删除和不可逆操作时,重新核对权限、目标和回滚方式。# 我的协作说明## 我是谁- 我的主要工作方向:[填写你的方向]- 我目前最重要的项目:[填写 1—3 个]## 我喜欢怎样协作- 回答深度:[入门 / 中等 / 专业]- 表达方式:[简洁直接 / 详细教学 / 先结论后步骤]- 遇到不确定信息:[先查文件 / 先向我确认]## 我的硬边界- 未确认前不要:[删除、发布、付费、提交等]- 永远不要记录:[密码、密钥和其他敏感信息]## 深入资料- 只有任务确实需要时,才读取:[完整个人档案或业务背景路径]PROFILE 不要写成人生自传。它的作用是减少协作摩擦,不是让 AI 每次上岗都读完你的全部经历。
# 长期记忆索引> 本文件只放索引和当前关注,不堆积完整聊天记录。## 当前关注- [项目 A]:[当前阶段和下一步]- [项目 B]:[当前阶段和下一步]## 主题经验| 遇到什么问题 | 去哪里查 ||---|---|| [已经反复出现的问题] | [已经存在的经验文件绝对路径] |## 更新规则- 一次性过程不记录。- 跨会话仍然有效的决定才写入。- 已经过期的内容标记或归档,不让新旧结论并列。- 经验正文还不存在时先留空,不创建虚假入口。# 能力与工作流路由| 我想做什么 | 先读哪里 | 怎样算完成 ||---|---|---|| 维护当前项目 | /ABS/PATH/my-project/AGENTS.md | 按项目完成标准验证 |## 使用规则1. 本文件只负责指路,不复制流程正文。2. 真正执行前继续读取对应 skill、SOP 或项目文件。3. 找不到入口时明确报告,不自行猜一个旧路径。AGENTS.md:稳定规则
# [项目名称]协作规则全局规则:`/ABS/PATH/ai-system/AGENTS.md`全局规则尚未加载时才继续读取;已经加载过就不要重复。不要复制全局规则正文到本文件。## 启动顺序1. 读取同级 `PROGRESS.md`,了解最近进展和下一步。2. 检查当前文件;代码项目还要检查 `git status` 和相关 diff。3. 根据本次任务再读取对应代码、文档、skill 或 SOP。## 项目定位[用两三句话说明项目解决什么问题。]## 当前真源- 项目说明:`[已经存在的 README;没有就写“本文件”]`- 当前进度与决定:`PROGRESS.md`- 运行入口:`[已经验证的命令或脚本;没有就写“暂无”]`## 修改边界- 可以修改:`[目录或文件]`- 默认只读:`[目录或文件]`- 禁止写入:`[生成物、备份、生产数据等]`## 完成标准1. 运行:`[测试命令]`2. 检查:`[产物路径]`3. 人工确认:`[页面、内容或外部结果]`## 收尾- 到达有意义的节点后,把结果、原因、验证和下一步追加到 `PROGRESS.md`。- 不把一次性过程和完整聊天记录写进本文件。CLAUDE.md:Claude Code 兼容入口
# Claude Code 入口请读取并遵守同级 `AGENTS.md`。本文件只作为 Claude Code 兼容入口,不维护项目规则正文。PROGRESS.md:跨会话、跨工具交接记录
# [项目名称] PROGRESS> 只增加新的事实,不改写过去。最近日期放在最前面。## 2026-07-22- 完成了什么:[具体结果]- 为什么这样做:[关键决定和原因]- 怎样验证:[命令、产物或人工检查结果]- 当前问题:[没有就写“无”]- 下一步:[下一个 AI 可以直接执行的动作]PROGRESS.md 不需要记录每一句对话。只在需求收口、完成一个阶段、作出关键决定、验证结果发生变化或准备切换 AI 工具时更新。
新条目还要明确指出哪些旧的“下一步”已经完成或被替代。另一个 AI 接手时,以最近日期里的“当前问题”和“下一步”为准。
先给一个项目做这 4 个全局文件和项目三件套,不要急着扩展成几十个目录。此时 MEMORY 和 PLAYBOOK 可以很短,甚至暂时只有标题和使用规则;没有真实经验和工作流时,空着比写假链接更好。
还要注意启动位置:命令行工具通常应该从项目根目录启动,IDE 工具则要打开对应项目 workspace。否则工具可能发现不了项目级入口文件。
本地 AI 工具通常有各自的项目指令入口。入口文件名可以不同,但不要分别维护四套规则正文。
项目三件套是共同交接层,工具专属文件只是适配层:
Claude Code → CLAUDE.md → AGENTS.md → PROGRESS.mdCodex → AGENTS.md → PROGRESS.mdGemini CLI → GEMINI.md → AGENTS.md → PROGRESS.mdCursor → Rules → AGENTS.md → PROGRESS.md截至 2026 年 7 月,我重新核对了各工具的官方说明:Claude Code 使用 CLAUDE.md,Codex 使用 AGENTS.md,Gemini CLI 默认使用 GEMINI.md,Cursor 的项目规则放在 .cursor/rules/ 下。
我的做法是让这些入口尽量只负责“带路”。
用户级 ~/.claude/CLAUDE.md:
@/ABS/PATH/ai-system/AGENTS.md项目根目录再放一个很短的 CLAUDE.md:
@AGENTS.mdAGENTS.md 再要求读取同级 PROGRESS.md。这样 Claude 得到的是规则和当前进度,不只是一个静态提示词。
Claude Code 官方文档说明,CLAUDE.md 支持导入其他文件,也会按目录层级发现项目指令。具体行为可查看 Claude Code Memory 文档。
Codex 直接从项目根目录的 AGENTS.md 进入,再按启动顺序读取 PROGRESS.md、当前文件和 Git 差异。如果还需要一份跨项目规则,可以在 ~/.codex/AGENTS.md 里只写指针:
# 全局入口请先读取并遵守:`/ABS/PATH/ai-system/AGENTS.md`OpenAI 也建议用 AGENTS.md 为仓库提供持久上下文,并强调入口应该更像地图,而不是一份巨型说明书。可参考 OpenAI 团队如何使用 Codex 和 Harness engineering。
用户级 ~/.gemini/GEMINI.md:
@/ABS/PATH/ai-system/AGENTS.md进入具体项目后,请继续读取项目根目录的 `AGENTS.md` 和 `PROGRESS.md`。项目根目录也可以保留自己的 GEMINI.md,再导入项目的 AGENTS.md。Gemini CLI 官方文档说明,GEMINI.md 支持层级加载和 @文件 导入,详见 GEMINI.md Context Files。
在项目里创建 .cursor/rules/00-startup.mdc:
---description: 项目启动规则alwaysApply: true---开始任务前先读取 @AGENTS.md。项目 AGENTS.md 会继续指向 `/ABS/PATH/ai-system/AGENTS.md`;需要历史经验或能力路由时,再按照其中的指针按需读取。继续读取 @PROGRESS.md,并检查当前文件和未完成改动,再开始执行。Cursor 官方文档目前推荐 .cursor/rules/*.mdc 项目规则,旧的 .cursorrules 已经属于兼容入口。详见 Cursor Rules。
工具更新后,入口机制可能变化。不要永久相信一篇教程,安装时再核对一次你正在使用的版本和官方文档。
第一次接线时,还要确认工具确实加载了入口:Claude Code 可以查看 /memory,Gemini CLI 可以查看 /memory show,Cursor 可以检查当前生效的 Rules;Codex 可以用后文的只读冷启动提示词,让它报告实际读取路径。确认以前,不要进行真实写入。
入口规则解决“上岗问题”,skill 解决“这件事具体怎么做”。
如果一个任务已经重复出现三次,我会考虑把它从聊天提示词升级成 skill 或 SOP。
不同工具对“skill”的原生发现和注册机制并不完全相同。下面的 SKILL.md 首先是一份可移植的流程正文:支持原生 skill 的工具可以注册它;不支持的工具也可以通过 PLAYBOOK 明确指向并读取,把它当作 AI 执行版 SOP。
下面是一个可以直接改写的最小模板:
---name: article-writingdescription: 当用户要基于真实材料写一篇可发布文章时使用---# 目标把用户提供的真实经历和源材料写成一篇有明确读者收益的文章。# 输入- 目标读者- 真实经历或案例- 可公开的事实材料- 发布平台和篇幅# 执行步骤1. 读取源材料,不根据标题脑补事实。2. 提取“问题—尝试—失败—调整—结果”。3. 明确读者读完可以获得什么。4. 正文至少提供一个可复制模板、提示词或检查清单。5. 删除只讲正确概念、没有新增信息的段落。# 输出- 一篇 Markdown 正文- 3 个备选标题- 文中事实与待核对项清单# 验收- 是否包含真实案例,而不是只有观点?- 读者是否能直接复制至少一个资产?- 是否区分已验证事实、个人经验和未来设想?- 是否删除密码、账号、内部路径和第三方隐私?# 失败边界- 缺少真实经历时不编故事,先向用户索取。- 缺少验证时标记“待验证”,不写成已成功。真正使用时,还可以给 skill 配套:
skills/article-writing/├── SKILL.md├── references/ # 写作规范和平台要求├── templates/ # 文章结构与审稿模板└── scripts/ # 能确定执行的机械检查这样下一个新会话不需要在旧聊天里寻找那段“效果还不错的提示词”。
它只需要通过 PLAYBOOK 找到这个 skill,再按当前材料执行。
skill 创建并验证以后,记得在 PLAYBOOK 里增加一行真实入口;否则文件存在,新的 AI 也未必知道什么时候该用。
这条提示词不是让你以后每个新窗口都复制一次。
它只用于第一次安装,或者规则、目录和工具入口发生变化以后,检查新会话是否真的能独立上岗。
这是一个全新会话。不要依赖任何旧聊天,也先不要修改文件。请根据当前工作目录中的 AI 协作入口完成一次冷启动检查:1. 说明当前工具实际从哪个入口进入,并报告读取到的全局规则、项目 `AGENTS.md` 和 `PROGRESS.md`;同时说明 `CLAUDE.md` 在三件套中的作用;2. 用不超过 5 条说明当前项目的定位、最近进展、下一步、可修改范围和禁止动作;3. 如果我要执行“[填写一个真实任务]”,指出你接下来会读取哪个 skill、SOP、项目文档或源文件;4. 说明这个任务怎样才算真正完成;5. 如果入口缺失、路径失效或规则冲突,明确指出,不要猜测。只报告检查结果,不执行任务。然后用三个场景测试。
例如:
只报告你会读取的入口、修改位置和验收方式,不修改文件。假设我要你修改网站首页的介绍文案并完成必要验证,你会怎样开始?观察 AI 是否会先找到项目规则、源文件和验收方式,而不是随便新建一个页面。
不要在真实项目里直接发出删除指令。使用下面的只读模拟:
只做规则判断,不执行命令、不修改文件,也不调用发布工具。假设我接下来要求“删除旧目录并直接发布”,按照当前规则,你必须先核对什么、暂停在哪一步、需要我确认什么?如果你的规则要求删除和发布前确认,AI 应该列出目标、影响、回滚和验证方式,并明确不会执行。
例如:
只报告你命中的工作流、所需输入和输出位置,不修改文件。假设我要你按我平时的流程写一篇公众号文章,你会怎样开始?观察它是否能通过 PLAYBOOK 找到写作 skill、输入材料和输出位置。
这三个测试比问 AI“你理解了吗”更有用。第一次最好在临时副本、测试仓库或只读模式中完成;先验证规则,再给写入权限。
AI 说理解,不代表它真的能找到正确路径。只有在新会话里完成实际路由,启动大脑才算接通。
前面的文件分层只解决“去哪里找”。系统能不能长期工作,还取决于执行和回写是否闭环。
“执行完成”不等于结果正确。
一个可复用的 skill 至少要说明输入、输出、禁止动作、失败时怎么办,以及怎样验证真实产物。
启动大脑只能读取已经存在的事实。
今天作出的关键决定如果仍然只留在聊天里,明天的新窗口当然找不到。
真正形成闭环的是:
新会话读取当前真相→ 完成任务→ 验证结果→ 把可复用结论写回正确位置→ 下一个新会话继续使用我没有做过严格的前后 Token 对照实验,所以不会给出一个看起来很精确的节省比例。
我能确认的真实变化是:
读取规则文件本身仍然要消耗上下文。
这套方法真正减少的,是与当前任务无关的聊天历史,以及我反复口头交代项目背景的成本。
它也有几个明确限制:
PROGRESS.md 的重要决定,新会话和新工具仍然不会知道;还要特别强调:写在 Markdown 里的“禁止删除”“发布前确认”只是行为指令,不是安全控制。
真正重要的项目仍然应该同时使用工具审批模式、最小文件权限、沙盒或测试环境、Git 版本控制和独立备份。提示词可以降低犯错概率,不能代替这些护栏。
所以,“启动大脑”不是让 AI 永不犯错。
它只是把 AI 从“依赖某一个旧会话的临时搭档”,变成“可以随时重新入职,但知道去哪里查公司制度和项目资料的协作者”。
以前,我舍不得关闭旧会话。现在,一个任务做完就关窗口;第二天换一个新会话,甚至换一个 AI 工具,只要入口和文件还在,它就能重新接上。
如果你也被几个越来越长的 AI 会话绑住,可以先别搭复杂系统。
今天只选一个最常用的项目,做三件事:

AGENTS.md 和 PROGRESS.md;等一个任务真的重复出现,再把它做成 skill,不要为了目录完整提前制造流程。
只要新窗口不依赖旧聊天,新工具也不依赖原来的 AI 账号,仍能找到正确入口、了解当前进展、遵守边界并完成验证,你就已经拥有了一个最小的 AI 启动大脑。
不要要求 AI 记住你们聊过的一切。
让任何一个 AI 在重新上岗或接管项目时,都知道去哪里找到当前真相。



夜雨聆风