技能创建分享:分层上下文(LCD skills)

不知道大家有没有这样的经历:

项目大小增加以后,/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怎么知道还有文档需要读取呢?

  1. iflow的 AGENTS.md 是实时加载到上下文的。
  2. AGENTS.md 里面有次级文档的引用和链接。
  3. 就算是0对话的上下文,模型也知道可以在这些地方读取。
  4. 具体读不读,就是agent自己决定的了。

如果发现AGENTS.md效果不好(现在生成确实可能会不稳定)
建议强制它加入说明:

**文档设计说明**:本文档采用简洁设计以节约上下文,仅提供模块和组件的概览信息。详细实现细节、API文档和最佳实践请参阅对应的次级文档链接。
**重要提示**:如果对某个模块或组件的实现细节不确定,请务必读取对应的次级文档以获取完整信息。

本质上就是用带索引的新AGENTS.md替代了老的,它们执行的功能是一样的。

所以,请记得时不时让agent更新一下这些文档。
就像你原来/init那样。

测试一下skill

创建好了,运行一下试试看?
提示词里面详细说明了这个功能叫做LCD(Layered Context Documents)
因此只需要告诉它 请用 LCD skill优化文档 或者 请使用分层上下文文档优化


可以看到它正确地被读取并运行了。
GLM 4.7需要处理一个中大型的项目,原来的AGENTS.md已经膨胀到11700字。
它分析了结构,阅读的相关代码,然后创建了一个模块化的文档文件夹。
看起来相当不错。
大家在这里可以看到比较完整的运行过程。:backhand_index_pointing_down:
(仍然用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改一改。
适合自己项目的才是最好的。

5 个赞

不愧是大佬!高产!高质!疯狂打call

1 个赞

这不就是spec规范吗,按照那个走流程

如果我没理解错的话,理论上确实是这个意思。
我对它进行了skill包装,然后可以通过skill来激活这个流程。
主要是 这个流程 个人认为在一些大的项目里面,挺有必要的
所以就尝试制作了一个skill

:drooling_face: 学习一下

mark 学习!