Appearance
使用 Data Structure Protocol 为 AI 构建持久化代码结构内存
解决 AI Agent 在处理大项目时因 Token 限制而频繁丢失上下文的问题:通过在 .dsp/ 目录下维护一套轻量级的持久化结构图谱,让 AI 能够快速定位依赖关系并理解代码连接的意图。
为什么需要这个技能
在大型代码库中,AI Agent 往往将大量 Token 浪费在“重新定向”上——即反复阅读文件以确认哪里定义了什么、谁依赖谁以及修改某处是否安全。
Data Structure Protocol (DSP) 不同于传统的文档或 AST dump,它将代码库建模为一个有向图。它记录的不仅是“连接”(谁导入了谁),更重要的是“理由”(为什么需要这个依赖)。通过将这种结构信息外置到 .dsp/ 目录,AI 无需将整个源码树加载到上下文窗口中,即可实现精准的导航和影响分析。
适用场景
- 超大规模项目:当项目文件多到 AI 无法一次性读取时。
- 复杂重构:需要进行影响分析,确认删除某个 API 会破坏哪些模块。
- 新成员上手:AI 需要快速引导用户理解项目模块间的逻辑关系。
- 依赖分析:在替换第三方库前,系统性地查找所有调用点及其用途。
核心工作流
1. 基础概念
- 实体 (Entity):分为
Object(模块/类/配置)和Function(导出的函数/方法)。 - 唯一标识 (UID):每个实体拥有一个稳定的 UID(如
obj-a1b2c3d4),即使文件重命名或移动,UID 保持不变。 - 关系理由 (Why):每次记录 import 时,必须附带简短的理由,说明该依赖的目的是什么。
2. 存储结构
.dsp/ 目录采用纯文本存储,每个实体拥有独立子目录:
description:实体用途(1-3 句话)。imports:依赖的 UID 列表。shared:暴露的公共 API 列表。exports/:反向索引,记录谁导入了该实体及其理由。
3. 操作流程
- 初始化:使用
dsp-cli.py脚本从入口文件开始,通过深度优先搜索 (DFS) 遍历并构建图谱。 - 同步更新:在创建新文件、新增 import 或修改公共 API 时,立即调用对应的 CLI 命令更新
.dsp/状态。 - 查询分析:通过
get-recipients查看谁在使用该模块,或使用get-path分析两个实体间的调用链路。
关键命令示例
bash
# 初始化项目
python dsp-cli.py --root . init
# 创建对象并定义函数
python dsp-cli.py --root . create-object "src/app.ts" "主应用入口"
python dsp-cli.py --root . create-function "src/app.ts#start" "启动 HTTP 服务器" --owner obj-a1b2c3d4
# 记录依赖关系(含理由)
python dsp-cli.py --root . add-import obj-a1b2c3d4 obj-deadbeef "处理 HTTP 路由"
# 影响分析:查找所有依赖某个库的模块
python dsp-cli.py --root . find-by-source "lodash"
python dsp-cli.py --root . get-recipients obj-11223344下载和安装
下载 data-structure-protocol 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐