关于 agent-package-manager
agent-package-manager 是一项技能,指导 Agent 完成 APM 仓库设置、依赖管理、验证与分发,并强调先检查配置和依赖解析状态再修改。
主要功能
- 01检查 APM 文件与配置
- 02管理清单和依赖
- 03预览并验证包变更
- 04验证编译与脚本
- 05指导运行时和打包流程
适用场景
- 01在仓库中初始化 APM
- 02添加或更新 Agent 包
- 03处理安装与策略问题
- 04准备可复现的团队或 CI 交付
MCP 相关
该技能指导使用 APM 命令发现和选择 MCP 服务,并说明如何在 dependencies.mcp 中声明它们。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ webmaxru/ ai-native-dev --skill agent-package-manager安装后在 Claude Code 中输入/agent-package-manager确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/apm.yml.templatereferences/command-workflows.mdmanifest-and-lockfile.mdtroubleshooting.md详细介绍
Agent Package Manager
流程
步骤 1:评估仓库和所需的 APM 结果
- 检查仓库根目录中是否有
apm.yml、apm.lock.yaml、.github/、.claude/、.codex/、.cursor/、.gemini/、.grok/、.opencode/、.windsurf/、.kiro/和apm_modules/。 - 执行
apm --version和apm config,确认已安装的 CLI 和当前配置。 - 如果存在
apm.yml,请先阅读references/manifest-and-lockfile.md,再更改依赖项、脚本或编译设置。 - 如果请求涉及安装、更新、清理或移除软件包,请先阅读
references/command-workflows.md,再执行 APM 命令。 - 如果不存在
apm.yml,且用户希望在仓库中使用 APM,请通过apm init或apm init --yes初始化项目。 - 如果仓库已使用其他 Agent 配置流程,且用户未要求迁移,则将更改限制在所请求的 APM 范围内,而不是替换现有设置。
步骤 2:有针对性地调整或修复清单
- 如果仓库需要全新或修复后的清单结构,请阅读
assets/apm.yml.template。 - 保留顶层的
name和version;这两个字段是必需的契约字段。 - 在
dependencies.apm下添加 APM 软件包依赖项,在dependencies.mcp下添加 MCP 服务。 - 安装后,优先在
apm.yml中使用规范的依赖项格式。对于托管在 GitHub 上的技能和软件包,默认使用仓库简写格式owner/repo/path,例如webmaxru/web-ai-agent-skills/skills/webmcp;仅在必要时保留显式的path、ref和alias。 - 当可复现性比自动跟进更新更重要时,为团队共享的软件包使用固定的 ref。
- 仅在本地开发仍在进行时保留本地路径依赖。建议分发捆绑包前,请将其替换为远程引用。
- 如果请求包含脚本,请在
scripts下定义,并通过apm list、apm preview或apm run验证每个脚本都可以预览或执行。 步骤 3:通过验证管理依赖,而非凭猜测 - 如果仓库中已安装软件包,请使用
apm install --dry-run、apm uninstall --dry-run或apm prune --dry-run预览有风险的更改。 - 根据请求范围,使用
apm install、apm install <package>、apm install --update或apm deps update安装或更新软件包。 - 运行
apm install --update或apm deps update后,请确认锁文件中的resolved_commit确实发生了变化。如果软件包来自过期缓存,请按照references/troubleshooting.md中的“更新后软件包过期”工作流处理。 - 如果请求是从某个仓库安装单个 skill,请提供具体到该 skill 目录的软件包路径,而不是含糊的仅仓库占位符,例如
apm install webmaxru/web-ai-agent-skills/skills/webmcp。 - 更改依赖后,使用
apm deps list、apm deps tree或apm deps info <package>验证解析后的状态。 - 将
apm.lock.yaml视为已解析提交和已部署文件的事实来源。建议提交该文件,以确保团队和 CI 的可复现性。 - 如果仓库需要发现或选择 MCP,请先使用
apm mcp list、apm mcp search <query>和apm mcp show <server>,再手动编辑 MCP 条目。 - 如果安装输出报告冲突或跳过的文件,请先阅读
references/troubleshooting.md,再尝试使用强制选项重试。 - 如果仓库使用来自自身的软件包(自引用依赖),请提醒用户,必须先提交并推送更改,APM 才能获取这些内容。请阅读
references/troubleshooting.md中的“自引用依赖”部分。 - 请注意,
apm install会在部署前扫描软件包中的安全威胁,包括隐藏 Unicode 字符和内容哈希验证。默认情况下,它还会阻止传递依赖中的 MCP 服务,除非这些服务已在dependencies.mcp中明确声明或受信任;无需选择加入。如果扫描发出警告或阻止安装,请处理被标记的内容,而不要绕过检查。 - 如果仓库所属组织强制执行
apm-policy.yml,则会在安装时应用策略,并可在默认的传递依赖 MCP 阻止规则之上增加进一步限制,包括限制依赖来源。如果策略阻止了安装,请检查策略文件或联系组织管理员;不要尝试绕过强制执行。
步骤 4:仅在有帮助时编译和验证
- 更改编译策略或目标选择之前,请阅读
references/command-workflows.md。 - 如果目标是确保原语正确,而非生成输出,请使用
apm compile --validate进行验证。 - 进行大规模编译更改或检查放置决策时,请先使用
apm compile --dry-run。 - 请说明,
apm install已会为受支持的工具部署提示词、Agent、skills、钩子和 MCP 集成;apm compile主要用于生成AGENTS.md或CLAUDE.md等指令文件。 - 如果仓库服务于多个运行时或工具系列,请使用明确的目标。
- 让
compilation.exclude与构建目录和依赖目录保持一致,避免编译时重新扫描生成的输出。 - 如果项目在编写期间需要持续重新生成内容,只有在一次性验证流程通过后,才使用
apm compile --watch。 第 5 步:专业地运行脚本、管理运行时和分发流程 - 在调用项目脚本前,先使用
apm list列出脚本。 - 在自动化或调试工作流中使用
apm run <script> -p key=value前,先使用apm preview <script> -p key=value预览由提示词驱动的脚本。 - 如果仓库依赖 APM 管理的运行时,请使用
apm runtime status、apm runtime list和apm runtime setup <runtime>。 - 如果目标是 CI 扇出、气隙环境交付或发布可追溯性,请阅读
references/command-workflows.md;只有在成功安装并生成apm.lock.yaml和已部署文件后,才使用apm pack。 - 仅将
apm unpack用于提取先前打包的内容,不要将其作为编写依赖的替代方案。 - 如果重复安装造成了本可避免的 CI 成本或网络风险,请推荐
apm-action或预构建包。
错误处理
- 如果缺少
apm,请先安装或更新,然后使用apm --version验证,再编辑项目文件。 - 如果组织策略(
apm-policy.yml)阻止了apm install,不要绕过策略;请报告阻止情况,并请求管理员调整策略或将该依赖加入允许列表。 - 如果
apm install报告身份验证失败,请阅读references/troubleshooting.md,修复主机身份验证后再重试。 - 如果
apm install报告文件冲突,请检查诊断摘要;必要时使用--verbose重试,并且仅在明确需要覆盖本地文件时使用--force。 - 如果用户的工具链不需要
apm compile,请避免将其作为无谓工作添加;优先采用更轻量的仅安装流程。 - 如果
apm pack因缺少apm.lock.yaml或缺少已部署文件而失败,请重新运行apm install后再试。 - 如果仓库依赖本地路径包,在这些依赖被替换为远程引用之前,不要推荐
apm pack。
评论
支持 Markdown