什么是Data Structure Protocol (DSP)
Data Structure Protocol (DSP) 是一种专为大型语言模型(LLM)代理设计的代码库长期结构化记忆系统,通过构建和维护一个基于图的实体依赖关系网络,帮助智能体深入理解和管理复杂项目的结构。与传统的文档或抽象语法树(AST)不同,DSP 并不面向人类阅读,而是专注于捕捉代码中模块、函数、外部依赖等实体的语义意义——即它们存在的目的、边界以及彼此之间的连接原因。该系统通过在项目根目录下生成 `.dsp/` 目录来存储所有实体信息,每个实体被赋予唯一标识符(UID),并记录其描述、导入列表和导出索引,从而形成一个动态更新的知识图谱。这个图谱回答了四个核心问题:项目中存在哪些实体?它们为何存在?谁依赖于谁?以及谁使用了某个功能?这种机制使得 LLM 代理能够在修改代码前快速定位影响范围,理解上下文关系,并在协作开发中保持对整体架构的一致性认知。
核心功能特点
- 基于图的代码实体建模,以 UID 标识模块、函数和外部依赖,支持重命名和移动而不改变身份
- 自动追踪 import/export 关系,为每条依赖边记录‘为什么引入’的语义说明
- 提供 CLI 工具链进行实体创建、更新、删除及图遍历操作,如搜索、父子关系查询和影响分析
- 支持多入口点独立维护 TOC(Table of Contents),适应大型项目的模块化结构
- 内置循环依赖检测、孤儿节点识别等诊断功能,保障图结构的健康性
适用场景
DSP 特别适用于需要 LLM 代理深度参与代码理解、重构或协同开发的场景。例如,在微服务架构或多模块单体应用中,当代理需判断某函数修改是否会破坏下游服务时,可通过 `get-children` 或 `get-recipients` 命令快速获取依赖该函数的调用方,并结合其描述理解业务逻辑关联。又如,在持续集成环境中,若某文件被删除,代理可调用 `remove-entity` 触发级联清理,确保 DSP 图谱与实际代码状态同步。此外,对于新成员加入团队的情况,DSP 可作为‘数字白板’,通过 `read-toc` 和 `search` 帮助其快速掌握项目脉络。尤其在敏捷迭代频繁的项目中,代理可在不中断流程的前提下,依据 DSP 提供的上下文精准执行任务,避免因缺乏全局视野导致的误改或重复造轮子。总之,任何涉及复杂依赖管理、跨模块协作或长期演进的大型软件项目,都能从 DSP 的结构化记忆能力中获益。
