Symbol Delta Ledger
用符号图和按需源码窗口压缩编码代理的代码上下文。
按维度查看评分与理由
证据显示产品默认在本地运行,原始源码窗口受策略约束,运行执行面可限制可执行文件、工作目录、环境、并发和超时;更新工作流也使用了明确的 contents:read 与 issues:write 权限。记忆功能声明为可选,HTTP、stdio、索引和工作流写入等外部效果有基本说明。扣分原因是未提供相关策略、记忆协议、运行时实现或确认流程正文,无法确认所有有副作用操作均需用户批准;回滚仅有版本、增量和备份字样,没有清晰的恢复步骤。依赖方面有固定版本、overrides、npm audit、补丁跟踪和安全事故记录,但安装包含多个 postinstall/native 包,且更新检查中的 npm audit 允许失败后继续。敏感数据规则证据薄弱,测试夹具还会把 paymentToken 拼入审计字符串。来源可追溯到仓库、具名许可人和联系邮箱,但 package author 为空,发布者身份仍未知。
项目提供大量单元、集成、属性、原生、压力、变异和契约测试入口,也记录了具体故障消息、根因、修复与复现命令;可选依赖和回退路径表明对部分环境缺失有所考虑。扣分主要来自证据内部不一致:package 和 README 要求 Node 24,而工作流说明仍称 CI 使用 Node 20;多项修复明确标为尚待托管验证,并记录过原生崩溃、竞态、重复主键和固定临时路径问题。未给出核心实现和实际执行结果,因此不能确认普通运行下的一致性。故障诊断材料较好,但不能证明所有用户可见失败都具有同等质量。
README 清楚覆盖调试、评审、实现、仓库探索、PR 风险、实时索引和多种客户端场景,并区分 flat、gateway、legacy 与 Code Mode,受众和使用情境充分。能力边界通过策略门控源码窗口、可选记忆、provider-first 回退和不同传输方式得到一定说明。扣分是工具请求响应、触发条件、语言覆盖和配置细节主要只由未提供正文的链接指向,无法完整检查触发精度。环境适配包含 stdio、HTTP、Windows/Linux 线索和可选原生组件,但 Node 版本冲突以及已记录的 Windows/native 脆弱性降低了环境适配可信度。
README 的导航、任务导向文档表和生成工具清单形成了很强的信息架构;全局安装、初始化、doctor、stdio 启动和非交互安装均有直接示例。产品名、CLI 名、工具命名空间和 package 名稳定一致。许可文件完整说明内部商业使用、非商业分发、商业许可、贡献、专利、终止、担保和责任条款,因此许可获满分,尽管元数据标为 SEE LICENSE 且外部元数据为 NOASSERTION。扣分在于 FAQ、完整故障排除和配置示例正文未包含;已知限制主要散落在内部 CI 记录中;有包版本和大量日期化维护记录,但没有正式变更日志。维护入口有 issues、具名许可人和邮箱,但 package author 为空,且发布者未获企业注册验证。
卡片、符号搜索、图切片、任务上下文和有界源码窗口构成可直接供编码代理消费的输出设计;相较整文件读取,符号图和渐进式披露具有明确的潜在增量价值。扣分是所给文件没有展示实际 MCP 响应样例、质量评测结果或基准数据,只能看到测试和 benchmark 脚本名称。节省 token、加速工作流和改善输出属于合理但未量化的主张;Node 24、索引数据库、原生依赖和后台准备成本也没有与收益进行实证比较。
主张可部分追踪到生成工具清单、参考文档链接、测试脚本、基准脚本以及包含运行号、作业号、提交、错误文本和验证命令的维护记录。README、package 和故障记录对本地 MCP、索引、依赖与测试面形成一定交叉印证。扣分是多数链接目标和核心源码未提供,徽章和脚本名称本身不能证明测试通过或性能主张成立;Node 20/24 的冲突也削弱交叉一致性。事实与推断的分离表现突出:记录明确使用 confirmed、hypothesis、high confidence 和 hosted validation pending,并保留失败证据及尚未验证的状态。
- 这是仅基于所给文件的静态审查;未执行安装、测试、审计、基准或 MCP 调用。
- 在部署前核对 Node 版本:README/package 要求 Node 24,但工作流说明仍记载 Node 20,可能是过期文档或实际 CI 偏差。
- 检查 postinstall 脚本、原生和可选依赖的下载、构建及网络行为,并在隔离环境中验证供应链来源。
- 不要把仓库中的 npm audit、CI 徽章或测试脚本名称视为当前修订已通过验证;多项记录仍明确等待托管验证。
- 在处理真实仓库前确认索引、HTTP、遥测、记忆、缓存和日志的存储位置、保留期及敏感信息过滤规则。
- 测试夹具将 paymentToken 写入审计字符串;即使只是夹具,也应确认生产输出不会记录令牌或其他秘密。
- 许可不是标准开源许可;商业分发、嵌入或向第三方提供付费服务前需要单独商业许可。
这个 Agent 能做什么,适合哪些场景?
Symbol Delta Ledger(SDL-MCP)是一个在本地运行的代码上下文预算层,通过 Model Context Protocol 向编码代理提供仓库信息。它使用 tree-sitter 建立符号、关系和精简元数据索引,并可通过 provider-first 索引接收 SCIP 与语言提供程序事实。代理可以先检索符号卡片、任务化上下文或图切片,再按策略逐级获取骨架、热点路径和有界源码窗口。系统还提供版本差异包、影响范围追踪、拉取请求风险分析、实时草稿覆盖层以及可选的开发记忆。它以 Node.js 24 或更高版本运行,支持 stdio 与 HTTP;HTTP 部署还包含图查看器和可观测性仪表板。
SDL-MCP 读取本地代码仓库,以 tree-sitter 解析结构,并将符号、签名、摘要、关系及检索元数据写入符号图;覆盖文件时还可接收 SCIP、LSP 或其他语言提供程序提供的事实。代理通过符号搜索、sdl.context、sdl.retrieve、图切片或相应的 flat/gateway 工具获取预算受控的上下文,并在需要时请求由策略控制的源码窗口。保存前的草稿缓冲区可进入 live overlay;保存后,系统排队执行定向协调,只发布最新的已保存代次。它能够比较已索引版本、生成 delta packs、追踪 blast radius,并由 sdl.pr.risk.analyze汇总变更证据和测试建议。服务可以通过 stdio 或 HTTP 暴露 MCP;工具界面可选择 38 工具的 Flat 模式、6 工具的 Gateway 模式、42 工具的 Gateway with legacy 模式,或包含 7 个任务型工具的 Code Mode exclusive。
- 维护大型代码库的开发者希望先定位相关符号和依赖关系,再决定是否读取完整源码。
- 进行缺陷排查的编码代理需要围绕起始符号构建有预算限制的子图,并按需扩展遗漏关系。
- 审查拉取请求的团队希望比较索引版本、追踪受影响符号,并获得基于变更证据的测试建议。
- 使用支持 MCP 的本地开发工作流,希望通过 stdio 接入仓库上下文而不部署远程服务。
- 运行 HTTP 部署的团队需要在提供代码检索服务的同时使用图查看器和可观测性仪表板。
- 需要在文件保存前处理编辑器草稿的工作流,可利用 live overlay 检索尚未落盘的缓冲区更新。
这个 Agent 有哪些优点和局限?
- 以符号卡片和逐级检索代替默认读取完整文件,可明确控制交给编码代理的源码范围。
- 图切片沿仓库关系而非目录边界构建任务相关子图,并支持通过 spillover 刷新或扩展。
- 可结合 tree-sitter、SCIP、LSP 和语言提供程序事实,在覆盖存在时使用更精确的交叉引用,并对未覆盖文件回退到常规路径。
- 同时提供 stdio 与 HTTP,并可在 Flat、Gateway 和 Code Mode 等不同工具表面之间选择。
- 版本差异、影响范围追踪和
sdl.pr.risk.analyze将变更证据与测试建议纳入代码审查流程。
- 要求 Node.js 24 或更高版本,采用较旧 Node.js 运行时的环境必须升级或隔离部署。
- 使用前必须初始化并索引每个仓库;SCIP、LSP 或解析器准备也会带来额外配置和后台处理成本。
- 原始源码窗口受策略控制,配置过严可能限制检索,而配置、执行目录、环境变量、并发和超时规则都需要维护。
- 开发记忆默认不是强制功能,启用后还需理解其存储规则和仓库链接行为。
- 仓库标记为 source-available;内部使用、运行和修改由 Community License 允许,但将其出售、捆绑、嵌入或分发到商业化产品前需要商业许可。
如何安装或部署这个 Agent?
前置条件:安装 Node.js 24 或更高版本,并在要索引的仓库中运行命令。交互式首次安装:
npx create-sdl-mcp标准全局安装与 stdio 启动:
npm install -g sdl-mcp
cd <repository>
sdl-mcp init
sdl-mcp doctor
sdl-mcp serve --stdio非交互初始化并自动建立索引可使用:
sdl-mcp init -y --auto-index来源未说明需要 API 密钥或其他凭据。
如何使用这个 Agent?
进入目标仓库后,先运行 sdl-mcp init 创建配置,再用 sdl-mcp doctor 检查环境,最后以 sdl-mcp serve --stdio 启动 MCP 服务并让支持 MCP 的客户端连接。检索时应先使用符号搜索、任务化上下文或图切片,再根据任务需要升级到 cards、skeletons、hot paths 和策略控制的源码窗口。需要更紧凑的工具注册界面时可选 Gateway 模式;偏好直接工具名时可用 Flat 模式;Code Mode exclusive 提供 sdl.action.search、sdl.context、sdl.file、sdl.info、sdl.manual、sdl.retrieve 和 sdl.workflow。来源确认支持 HTTP 传输,但未给出可复制的 HTTP 启动命令或具体客户端配置。