教程2026-11-04 · 智涌AI

用 APM 管 Agent Skills:锁版本,Dependabot 自动升级

APM 管理 Agent Skills 教程头图:终端里 apm install 写入清单与锁文件,dependabot.yml 配置 apm 生态每周更新,apm audit --ci 校验

GitHub 11 月 3 日(美国时间)宣布,Dependabot 的版本更新正式支持 Agent Package Manager(APM)。你项目里给 Copilot、Claude Code、Cursor 们装的 Skill、提示词和指令文件,从此可以写进 apm.yml 锁住版本,再交给 Dependabot 每周开 PR 升级。下面按 APM 官方文档和 GitHub 文档(2026-11-04 北京时间查阅),把装 APM、声明依赖、锁版本、开 Dependabot、在 CI 里查漂移这条链路走一遍。

APM 管的是 Agent 的「依赖」

APM 是微软开源的命令行工具,仓库 microsoft/apm,MIT 许可证,截至 2026-11-04 有 4185 个 star,最新版 v0.35.0 发布于 10 月 23 日(北京时间)。README 拿 package.json、requirements.txt 作比,它管的对象换成了 AI Agent 的配置。支持的客户端有 GitHub Copilot、Claude Code、Cursor、OpenCode、Codex、Gemini、Windsurf、Kiro 等。

常见的情况是团队里每个人手动 npx skills add,装的版本各不相同;上游 Skill 修了 bug,本地那份没人跟;新同事 clone 仓库后,Agent 配置要从头再配一遍。APM 的做法和 npm 一样,清单 apm.yml 写声明,锁文件 apm.lock.yaml 记下解析到的提交和内容哈希,apm install 在任何机器上还原同一套东西。

前置条件

第一步:装 APM,初始化清单

# macOS(Homebrew,无需额外 tap)
brew install apm

# Linux / macOS 不用 Homebrew
curl -sSL https://aka.ms/apm-unix | sh

# 或者用 pip
pip install apm-cli

apm --version
apm init my-agent && cd my-agent

apm init 只写一个文件 apm.yml。第一天要看的就三项:dependencies.apm(Skill、插件等包)、dependencies.mcp(MCP 服务)、scripts(可选)。targets: 默认是注释掉的,APM 会按仓库里已有的目录自动判断要部署给哪个客户端。Homebrew 装的用 brew upgrade apm 升级,别用 apm self-update。

第二步:声明依赖,钉住版本

可以直接用命令装,APM 会顺手写进 apm.yml:

# 装一个带版本的完整包
apm install microsoft/apm-sample-package#v1.0.0 --target copilot

# 从 npx skills add 迁过来:整包或只要其中一个 Skill
apm install vercel-labs/agent-skills
apm install vercel-labs/agent-skills --skill deploy-to-vercel

# 加一个 MCP 服务,写进所有选中的客户端
apm install --mcp io.github.github/github-mcp-server --transport http

手写清单也行,README 给的例子是这样:

name: your-project
version: 1.0.0
targets:
  - copilot
dependencies:
  apm:
    - anthropics/skills/skills/frontend-design
    - github/awesome-copilot/plugins/context-engineering
    - github/awesome-copilot/agents/api-architect.agent.md
    - microsoft/apm-sample-package#v1.0.0
  mcp:
    - name: io.github.github/github-mcp-server
      transport: http

注意这里前三条没有 # 后面的版本号。本地用没问题,可 Dependabot 不会碰没钉版本的条目,下一步会讲。官方 Quickstart 的示例输出里,一次 apm install 会把提示词放进 .github/prompts/、Skill 放进 .agents/skills/,连同包的传递依赖一起装好,并生成 apm.lock.yaml。安装时 APM 还会扫描隐藏的 Unicode 字符(零宽字符、双向控制符这类能偷偷改 Agent 行为的东西)。

哪些文件进 git,官方 Quickstart 列了一张表:

路径提交?原因
apm.yml是清单,全队共享
apm.lock.yaml是锁定提交和内容哈希,可复现
.github/、.claude/、.agents/ 等部署目录是clone 下来就能看、能审
apm_modules/否缓存,自动 gitignore,apm install 按锁文件还原

第三步:选对钉法,Dependabot 才会动

Dependabot 读的是 apm.yml 里 dependencies.apm 和 devDependencies.apm 下的 git 依赖。怎么升级,取决于你怎么钉:

钉法写法示例Dependabot 的行为
SemVer tagowner/repo#v1.0.0升到最新的 SemVer tag;支持包级 tag,如 …/skills/review#review-v1.4.0
完整 SHAowner/repo#<40 位 SHA>移到最新一个带注释、非预发布的 release tag 对应的提交,并加 # v1.4.0 注释
分支owner/repo#main只改 apm.lock.yaml 里锁的提交;必须已有锁文件
不写版本owner/repo不更新

有 apm.lock.yaml 时,Dependabot 会跑 apm lock 一起重生成;没有的话它不会替你建。所以先在本地 apm install 一次,把锁文件提交上去。

想让 Dependabot 帮你盯,就给每个第三方 Skill 写上 tag 或完整 SHA。

第四步:写 dependabot.yml

# .github/dependabot.yml
version: 2
updates:
  - package-ecosystem: "apm"
    directory: "/"          # apm.yml 所在目录
    schedule:
      interval: "weekly"
    cooldown:
      default-days: 7       # 新版本发布满 7 天才提
    groups:
      agent-context:
        patterns: ["*"]     # 所有 APM 依赖合成一个 PR

10 月 22 日 beta 阶段要加 enable-beta-ecosystems: true,现在 GitHub 文档把这个选项标成「Not currently in use」,正式版不用写。Dependabot 对版本更新默认就有 3 天冷却期,上面改成 7 天,是给上游留点时间暴露问题,Skill 的指令会直接改变 Agent 行为,晚几天升级比较稳。groups 把一堆 Skill 的升级合进一个 PR,省得每周收到一串。私有仓库里的 Skill,要在 dependabot.yml 里配 git 类型的 registry 给它访问权限。

第五步:CI 里查漂移,挡住手改

Dependabot 负责提醒升级。仓库里的文件和锁文件是否一致,要靠 APM 自带的 apm audit 来查。官方漂移检测文档推荐的做法,对提交了部署文件的仓库是这样:

# .github/workflows/apm.yml 里的 steps
- uses: actions/checkout@v4
- uses: microsoft/apm-action@v1
  with:
    setup-only: true      # 只装 CLI,不跑 apm install
- run: apm audit --ci

apm audit --ci 依次跑九项基线检查,包括锁文件是否存在、版本引用是否一致、部署文件是否齐全、内容哈希是否匹配,之后在临时目录重放一次安装,和工作区做 diff,有人手改了 .github/instructions/ 里的文件就会报出来。用 setup-only 的原因文档也写了:先跑 apm install 会把手改的托管文件恢复回去,审计就看不出来了。其他几个常用命令:

常见坑

完成标准

最后

先把你仓库里最常用的两三个 Skill 改成带 tag 的写法,跑一次 apm install 提交锁文件,再加上面那段 dependabot.yml。还没写过 Skill 的,可以从写你的第一个 Agent Skill开始;这次更新本身的快讯见 Dependabot 开始帮你更新 Agent Skills 依赖。

关注公众号「智涌AI速递」

每天的 AI 快讯、实用教程和 AI项目实测,也会同步发到微信公众号。在微信里搜索「智涌AI速递」就能关注;不用微信的话,可以用 RSS 订阅本站。