不知道大家有没有这样的经历:
项目大小增加以后,/init 生成的项目文档的长度也随之膨胀。
这对于人类和agent都不是很友好,它带来了是注意力和上下文记忆的消耗。
虽然现在LLM能力都很强,也许不会出大问题,但我仍然认为这远远不是最优解。
我们需要一个优雅的解决方案
思路与创建
于是我想到,为什么不让agent生成一个分层上下文文档呢?
就像skills一样,需要哪个,就读哪个。
我们可以把这些文档放在一个文件夹里面。
Agent就可以像找书一样,找到一个文档,读一读,再放回去。 而不是把一整本字典记下来。
这样的好处有:
- 对于同一个任务,上下文占用少,减少无用的 context
- 对于单个模块,文档可以比原来清晰很多
- 有一种类似于MoE的思路。每次只激活部分参数,使得体积可以变得很大,而不过分地增加计算压力。
我不清楚是否已经有类似的实现,但打算创建一个skill试试看。
于是,我先使用/skills下载了skill creator
再把我的需求发给glm 4.7。
然后就是一次次修改、测试,用了16.5w输出token和900w输入token。
这个倔强的模型被我纠正了很多次才最终达成了我想要的效果。
最后,我获得了一个 skill 文件夹。
读个几行看看效果,不错。
name: layered-context
description: Generate Layered Context Documents (LCD) by splitting lengthy AGENTS.md into an upper-level overview and lower-level detailed documents. Triggered when user requests "layered context" or when AGENTS.md is too long. Use for projects requiring modular documentation and optimized LLM context length.
# Layered Context Document (LCD) Generation
## Core Principles
Split AGENTS.md from a "single long document" into a multi-layer structure organized by **code modules** (horizontal splitting):
- **Layer 1 (Upper)**: Concise overview containing project introduction, architecture summary, module index (<100 lines)
- **Layer 2+ (Lower)**: Detailed documents organized by code modules (core/, modules/, components/, utils/), loaded on-demand by agent
skill 的原理是什么?
可能有人会问:Agent怎么知道还有文档需要读取呢?
- iflow的
AGENTS.md是实时加载到上下文的。 AGENTS.md里面有次级文档的引用和链接。- 就算是0对话的上下文,模型也知道可以在这些地方读取。
- 具体读不读,就是agent自己决定的了。
如果发现AGENTS.md效果不好(现在生成确实可能会不稳定)
建议强制它加入说明:
**文档设计说明**:本文档采用简洁设计以节约上下文,仅提供模块和组件的概览信息。详细实现细节、API文档和最佳实践请参阅对应的次级文档链接。
**重要提示**:如果对某个模块或组件的实现细节不确定,请务必读取对应的次级文档以获取完整信息。
本质上就是用带索引的新AGENTS.md替代了老的,它们执行的功能是一样的。
所以,请记得时不时让agent更新一下这些文档。
就像你原来/init那样。
测试一下skill
创建好了,运行一下试试看?
提示词里面详细说明了这个功能叫做LCD(Layered Context Documents)
因此只需要告诉它 请用 LCD skill优化文档 或者 请使用分层上下文文档优化。
可以看到它正确地被读取并运行了。
GLM 4.7需要处理一个中大型的项目,原来的
AGENTS.md已经膨胀到11700字。它分析了结构,阅读的相关代码,然后创建了一个模块化的文档文件夹。
看起来相当不错。
大家在这里可以看到比较完整的运行过程。
(仍然用deepseek概括了一下,原来的真的太长了)
User:请使用LCD skill优化
✦ 使用 layered-context skill 优化 AGENTS.md 文档,拆分为上层概述和下层详细文档。
✔ Skill Launch skill: layered-context
✔ Read File AGENTS.md (445 lines)
✔ list_directory js (5 items)
✦ 创建分层文档结构。
✔ Plan Updating todo list (8 pending, 1 in progress, 0 completed)
x Shell mkdir -p ... (路径错误)
✔ Shell 使用 PowerShell 命令创建文档目录
✔ Plan Updating todo list (7 pending, 1 in progress, 1 completed)
✦ 生成核心模块文档 (core/)。
✔ Write File documents\core\app-main.md
✔ Write File documents\core\constants.md
✔ Write File documents\core\event-bus.md
✔ Write File documents\core\event-manager.md
✔ Write File documents\core\file-system.md
✔ Write File documents\core\time-manager.md
✔ Plan Updating todo list (6 pending, 1 in progress, 2 completed)
✦ 生成功能模块文档 (modules/)。
✔ Write File documents\modules\animation-system.md
✔ Write File documents\modules\canvas-manager.md
✔ Write File documents\modules\canvas-switcher.md
✔ Write File documents\modules\note-interactions.md
✔ Write File documents\modules\note-manager.md
✔ Write File documents\modules\note-settings.md
✔ Write File documents\modules\selection-manager.md
✔ Write File documents\modules\ui-controller.md
✔ Plan Updating todo list (5 pending, 1 in progress, 3 completed)
✦ 生成数据层文档 (data/)。
✔ Write File documents\data\storage.md
✔ Write File documents\data\storage-strategies.md
✔ Plan Updating todo list (4 pending, 1 in progress, 4 completed)
✦ 生成工具类文档 (utils/)。
✔ Write File documents\utils\error-handler.md
✔ Write File documents\utils\panel-blocker.md
✔ Write File documents\utils\safe-dom.md
✔ Write File documents\utils\safe-storage.md
✔ Write File documents\utils\toast.md
✔ Plan Updating todo list (3 pending, 1 in progress, 5 completed)
✦ 生成 UI 组件文档 (components/)。
✔ Write File documents\components\about.md
✔ Write File documents\components\file-manager.md
✔ Write File documents\components\storage-settings.md
✔ Plan Updating todo list (2 pending, 1 in progress, 6 completed)
✦ 生成共享文档 (shared/)。
✔ Write File documents\shared\architecture.md
✔ Write File documents\shared\guidelines.md
✔ Write File documents\shared\event-naming.md
✔ Write File documents\shared\testing.md
✔ Write File documents\shared\setup.md
✔ Plan Updating todo list (1 pending, 1 in progress, 7 completed)
✦ 备份原始文件并重写上层 AGENTS.md。
✔ Shell 备份原始 AGENTS.md
✔ Write File AGENTS.md (精简为上层概述)
✔ Plan Updating todo list (0 pending, 0 in progress, 9 completed)
✦ 已完成 ScatterPads 项目的分层上下文文档(LCD)生成。
文档结构:
documents/
├── core/ # 核心模块 (6个文件)
├── modules/ # 功能模块 (8个文件)
├── data/ # 数据层 (2个文件)
├── utils/ # 工具类 (5个文件)
├── components/ # UI组件 (3个文件)
└── shared/ # 共享文档 (5个文件)
主要改进:
1. 分层结构: 单一大文档拆分为上层概述和下层详细文档。
6. 模块化组织: 文档结构与项目目录一致。
7. 精简描述: 每个模块文档保持简洁。
8. 快速导航: 上层 AGENTS.md 提供模块索引和链接。
9. 原始备份: 原始文档已备份。
使用方式:
- 修复特定模块问题 → 阅读对应下层文档。
- 查看整体架构 → 阅读上层 AGENTS.md 或 shared/ 文档。
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Type your message or @path/to/file
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
glm-4.7 77% context left | Smart mode | Thinking: Off
cwd: ~\Desktop\ScatterPads v0.6.1
我还让 iflow 自己评价了一下 skill 的生成效果:
User:问你个问题,你觉得当前项目文档清晰吗?这是我用新方法(LCD skill)生成的。你可以读读看
✦ 我来读一下项目的文档,了解一下清晰度。
✔ Read File AGENTS.md
Read all 137 lines from AGENTS.md
✔ Read File documents\shared\architecture.md
Read all 56 lines from documents/shared/architecture.md
✔ Read File documents\shared\guidelines.md
Read all 62 lines from documents/shared/guidelines.md
✔ Read File documents\core\app-main.md
Read all 23 lines from documents/core/app-main.md
✦ 再读几个模块的详细文档,看看详细程度:
✔ Read File documents\modules\canvas-manager.md
Read all 32 lines from documents/modules/canvas-manager.md
✔ Read File documents\modules\note-manager.md
Read all 27 lines from documents/modules/note-manager.md
✔ Read File documents\shared\event-naming.md
Read all 58 lines from documents/shared/event-naming.md
✦ 整体评价:非常清晰! LCD 生成的分层文档效果很好。
优点
1. 层次分明
- AGENTS.md 作为顶层索引,一目了然
- 各模块有独立详细文档,便于深入理解
- shared 文档提供全局规范(架构、规范、事件命名)
2. 信息密度合适
- 概览层:快速定位模块和功能
- 详细层:包含职责、依赖、事件、关键方法
- 没有冗余,也没有遗漏关键信息
3. 结构统一
- 每个文档都有 Overview、Key Components、Integration、Related
Documents
- 便于快速定位信息
4. 实用性强
- 包含运行命令、测试命令
- 事件命名规范清晰(module:action:target)
- 开发规范完整(代码风格、错误处理、安全)
可改进的小点
1. 模块详细文档可以更详细
- 目前 canvas-manager.md 和 note-manager.md 只列出了方法名
- 可以补充方法参数、返回值、使用示例
2. 缺少快速上手指南
- AGENTS.md 可以加一个 "5分钟快速开始" 章节
- 帮助新人快速理解项目
3. 事件流图可以更丰富
- architecture.md 的模块通信流程图很好
- 可以补充几个典型场景的事件流(如创建便签、切换画布)
✦ 总结:LCD 生成的文档结构非常清晰,分层合理,是一个很好的文档方案!
---------------------------------------------------------------------------
───────────────────────────────────────────────────────────────────────────
> Type your message or @path/to/file
───────────────────────────────────────────────────────────────────────────
glm-4.7 88% context left | Smart mode | Thinking: Off
cwd: ~\Desktop\ScatterPads v0.6.1 | ◯ AGENTS.md
感觉清晰多了。
它真的完美了吗?
在我看来,显然并没有。
可能会有很多我不清楚的问题,而且我并没有在很多项目上测试。
这只是一个初次尝试,基于现在的进展,我会给这个skill打75分。
但它确实很值得试试看,就算是玩玩而已,也是很有意思的一个skill。
如何使用?
我已经尝试把它发在了官网的工作流上面。提示正在审核。
大家也可以尝试通过这条命令安装 C:\Users\username.iflow\skills
iflow workflow add "layered-context2-onTorA"
下载以后,检查一下skill有没有,然后就可以使用了。
记得告诉它:请用 LCD skill 优化文档 。
如果有AGENTS.md,它会优先读取,然后在这个基础上修改。
如果没有,它会从头开始创建。
建议大家先/init,再用它来拆分。
通常来说,拆分的效果好于重新创建。
这是花了一个上午搓出来的。也许…大家也可以把它拉到本地,然后再用ai改一改。
适合自己项目的才是最好的。

