ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Agentic Awesome Skills 安装器分布优化:基于 Git partial clone 与 sparse checkout 的检索效率实测

Agentic Awesome Skills 安装器分布优化:基于 Git partial clone 与 sparse checkout 的检索效率实测 Agentic Awesome Skills 安装器分布优化基于 Git partial clone 与 sparse checkout 的检索效率实测【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,115 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址: https://gitcode.com/gh_mirrors/an/agentic-awesome-skills导读本文基于仓库维护文档 docs/maintainers/distribution-efficiency.md 及其配套测量凭证 docs/maintainers/distribution-efficiency-2026-09-05.json完整还原 Agentic Awesome Skills 安装器在main分支上的新检索策略浅克隆shallow clone partial clone--filterblob:none 稀疏检出sparse checkout三步组合在拉取同一发布版本时仅物化完整的规范skills/树而不是整个仓库。读完本文你将理解这套优化在源码中的具体实现位置、实测存储与耗时数据、一致性校验方法以及它对发布身份验证、npm 包载荷、插件分发等既有契约的取舍边界。需要先说明的是该优化目前是尚未发布的源码变更npm 上已发布的 16.7.0 仍执行旧的全量临时检出流程见 tools/bin/install.js 与 package.json 当前版本 17.4.0 的演进关系。新检索策略验证身份后只物化 skills 树安装器的新流程在 tools/bin/install.js 中完整落地核心步骤为浅克隆git clone --depth 1只取指定发布标签的单个提交partial clone--filterblob:none克隆时不下载 blob 对象按需从上游获取稀疏检出--sparse 随后的sparse-checkout set --cone skills按 cone 模式只物化skills/目录身份验证先用npm view pkgversion gitHead --json解析 npm 发布的精确提交再对克隆结果执行git rev-parse HEAD比对见 resolvePublishedGitHead 与 assertClonedReleaseIdentity精确拷贝只把用户选中的 skill 条目复制到目标目录见 installSkillsIntoTarget 与copyRecursiveSync的选择性剪枝逻辑。克隆参数由 buildCloneArgs 统一构造固定上游仓库地址、无 shell 参数注入风险sparse checkout 物化发生在发布身份验证通过之后见 main确保任何未经验证的内容都不会被提前检出。版本需求与参数细节需要Git 2.25partial clone 与 sparse checkout 功能的最低要求sparse-checkout set --cone使用 cone 模式目录选择规则--release ver安装精确 npm 版本并强制校验其发布 Git 提交属于 fail-closed 路径--tag tag则允许克隆未经验证的、可变的 Git 标签或分支安装器会显式打印警告并跳过 npm 身份校验见 main执行命令为无 shell 的参数数组形式spawnSync(cmd, args)避免 shell 注入面。参数构造在测试中有明确断言例如 installer_antigravity_guidance.test.js 验证--branch v1.2.3与--filterblob:none --sparse的组合installer_exact_selection.test.js 验证sparse-checkout set --cone skills的参数顺序。同一发布版本的存储实测对比2026-09-05维护者使用 Git 2.50.1macOS分别以全量浅克隆与部分 稀疏克隆两种策略克隆v16.7.0。两种方式都解析到同一个提交c91abcfb9c52ac8a7c1292cc0326f459106cde1d即 npm 发布包所记录的gitHead。完整命令与逐项数据记录在 docs/maintainers/distribution-efficiency-2026-09-05.json测量命令原文如下# 全量浅克隆基线 git clone --depth 1 --branch v16.7.0 https://github.com/sickn33/agentic-awesome-skills.git full # 部分 稀疏克隆候选 git clone --depth 1 --filterblob:none --sparse --branch v16.7.0 https://github.com/sickn33/agentic-awesome-skills.git sparse git -C sparse sparse-checkout set --cone skills观测结果表观测项全量浅克隆部分 稀疏克隆变化物化常规文件数22,1007,005—工作树逻辑字节283,698,31682,489,568−70.9%Git 元数据与对象字节54,658,60844,242,352−19.1%单次观测耗时25.294 s20.962 s—其中文件数与字节数的原始值均可在 docs/maintainers/distribution-efficiency-2026-09-05.json 的results数组中核对full与sparse两组记录。数据可信度边界重要这些是逻辑存储测量logical storage不是网络传输字节数wire-byte counts未计入按需拉取 blob 的网络开销耗时是单次顺序观测网络与缓存效应未受控不能视为性能承诺或基准结论由于 partial clone 的 blob 是懒加载的稀疏检出实际访问的文件集远小于全仓库因此 Git 存储的降幅19.1%小于工作树的降幅70.9%符合预期。一致性校验6993 条规范条目逐一比对优化不改变规范内容。对两个检出的工作树维护者比较了全部6,993 条规范条目canonicalEntriesCompared字段结论为常规文件字节、可执行权限位、符号链接目标完全一致canonicalModesBytesAndSymlinkTargetsEqual: true。这意味着嵌套技能与 npm 忽略的支持文件仍完整可用安装器既有的选择、审计与路径安全检查不受影响参见 install.js 中getInstallEntries、auditSkillEntries、assertSafeDestinationPath等实现稀疏检出的浅层根目录在 Git cone 模式规则下仍会物化其根级文件如package.json、skills_index.json等保证安装器读取元数据的路径不变。端到端验证真实 npm pack 与安装演练除了存储对比维护者还对候选版本执行了一次真实的npm pack/ 安装演练freshPackedInstaller记录状态passed隔离目标安装到一个隔离的临时 fixture而非个人主机targetScope明确标注选中技能mcp-builder、systematic-debugging、game-development/2d-games预览先行--dry-run让目标目录保持不存在dryRunLeftTargetAbsent: true符合安装器先预览后写盘的安全设计见 buildDryRunTargetPlan字节级一致实际安装的全部 22 个文件与全量检出的基线逐字节、逐文件模式一致技能条目数mcp-builder10 个、systematic-debugging11 个、game-development/2d-games1 个与 docs/maintainers/distribution-efficiency-2026-09-05.json 的entriesPerSkill字段一致。这证明从临时稀疏检出到目标目录的拷贝路径不会丢失或篡改任何已选技能的文件内容。npm 包内容治理拦截本地测试残留的字节码文件在最终的新包对比中发现四个未跟踪的 Python 字节码文件__pycache__等由本地辅助测试遗留。由于包显式files包含skills/根级 ignore 规则无法排除它们。为此package.json 的files选择新增了三条例外规则files: [ data/catalog.json, data/plugin-compatibility.json, data/aas-v1, schemas/aas-v1, skills, skills_index.json, tools/bin, tools/lib, !**/__pycache__/**, !**/*.pyc, !**/*.pyo ]这组规则的效果是排除**/__pycache__/**、**/*.pyc、**/*.pyo同时保留Python 源文件.py、引用文件、嵌套技能以及原生.pyd扩展。注意这里没有删除任何已跟踪的字节码文件只影响打包时的内容选择。该行为由测试 tools/scripts/tests/npm_package_contents.test.js 守护测试逻辑值得关注对真实仓库执行npm pack --dry-run --json断言打包结果中不存在任何__pycache__或.py[co]文件第 41-44 行构造一个隔离 fixture 作为负向对照仅使用根 ignore 规则时缓存文件确实会混入包第 75 行应用仓库的确切files选择后缓存文件被排除而合法样例 bundle 仍保留第 82-83 行同时断言tools/bin/install.js、aas.js、aas-mcp.js等运行必需文件在包内且非 Windows 平台下 bin 文件保持可执行位第 88-104 行。这套负向对照复现问题 精确选择修复的测试方法防止本地测试碎屑改变发布载荷它不宣称减小规范技能库规模也不改变已发布 16.7.0 包的内容。保留的契约与权衡优化在收紧检索路径的同时明确保留了以下契约发布身份在规范技能检出前、任何目标目录变更前验证若 npm 身份中的标签被移动或不可用安装仍然 fail-closed拒绝安装参见 assertClonedReleaseIdentity 的mismatch 即抛错逻辑稀疏检出失败即停止不静默回退到其他版本目标保持不动临时源码被清理见 main 的finally清理块完整规范目录仍可用于精确 ID 与既有过滤条件优化不会从选中技能 bundle 中剔除任何不方便的文件安装后的技能完全本地化后续使用不需要 Git 或网络只有首次检索、审计与安装器预览需要 registry/Git 访问插件分发及其镜像保持不变它们是独立可用的兼容面提交层的重复没有因此被移除npm 载荷大小未因本优化而减小已发布 16.7.0 包含 7,851 个文件 / 108,540,901 解包字节且新增的 bundle-inventory 元数据会增加源码包体积——不要把 Git 检索优化描述成更小的 npm 包直接安装有独立的归属清单manifest与预览不套用不可变的 Core 计划也不共享实验性事务所有权参见 writeInstallManifest 与 buildDryRunPlan 的实现。小结与复现建议总结本优化的完整链路npm 身份解析npm view … gitHead→ 浅克隆--depth 1 --branch ref→ partial clone--filterblob:none→ sparse checkout--sparsesparse-checkout set --cone skills→ 校验克隆 HEAD 与 npmgitHead一致 → 精确拷贝选中条目 → 写安装清单。每一步的安全约束无 shell 参数、路径逃逸防护、符号链接校验、清单大小上限都集中在 tools/bin/install.js 中并由 installer_exact_selection.test.js、installer_antigravity_guidance.test.js、installer_release_identity.test.js 与 npm_package_contents.test.js 共同守护。如需在自己的环境中复现测量可参考本文第二节的三条 git 命令并按 docs/maintainers/distribution-efficiency-2026-09-05.json 中的字段逐项对比工作树文件数、逻辑字节与 Git 存储字节注意将结果视为存储观测而非时序基准。有关 Git partial clone 与 cone 模式目录选择的权威语义可查阅 Git 官方git-clone与git-sparse-checkout文档npmfiles与 ignore 行为以 npm 官方package.json配置文档为准。仓库中的 Git 安装与激活脚本见 scripts/activate-skills.sh 与 scripts/activate-skills.batCLI 帮助信息可直接通过npx agentic-awesome-skills --help查看。【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,115 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址: https://gitcode.com/gh_mirrors/an/agentic-awesome-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表