微软开源的 AI 编码代理依赖管理器,通过 apm.yml 实现技能、插件与 MCP 服务器的可移植、安全与合规分发。
APM (Agent Package Manager) 是微软推出的一款专为 AI 编码代理设计的依赖管理工具,其核心理念是将传统的软件包管理范式(类似 package.json 或 requirements.txt)引入 AI 代理环境中。项目通过单一的 apm.yml 清单文件统一管理 instructions、skills、agents、hooks 及 MCP servers 等原语,实现跨机器、跨客户端(如 GitHub Copilot、Claude Code、Cursor 等)的配置一致性与一键复现。
核心特性
- 清单可移植:
apm.yml声明所有代理原语,apm install在所有客户端和机器上复现完全一致的配置;apm.lock.yaml锁定完整依赖树与内容哈希;支持包依赖包的传递依赖解析;支持插件导出为标准plugin.json格式。 - 默认安全:将 prompt 视为可执行程序,安装时扫描隐藏 Unicode 等篡改内容;
apm.lock记录来源和内容哈希提供完整溯源;传递性 MCP 服务器需显式信任确认;apm audit可按需或 CI 模式运行安全检查。 - 策略治理:
apm-policy.yml允许安全团队定义组织允许的来源、作用域和原语;支持 enterprise → org → repo 的 tighten-only 单向继承;可接入 GitHub rulesets 与分支保护机制。 - 多端适配:支持 GitHub Copilot、Claude Code、Cursor、OpenCode、Codex CLI、Gemini、Windsurf 等客户端,自动检测并部署到对应目录;兼容 GitHub、GitLab、Bitbucket、Azure DevOps 及自托管 Git 服务器。
- 市场与打包:
apm marketplace add <registry>从策展注册中心安装插件;apm pack将配置打包为 zip 包或独立插件;提供原生 GitHub Action 支持 CI/CD 自动化。
架构与实现
- CLI 核心逻辑位于
src/apm_cli/目录,构建系统在build/目录(Makefile)。 - 解析后的原语统一存放在项目本地
.apm/目录下。 - 部署流程:读取
apm.yml→ 解析依赖树与安全扫描 → 检测本地已安装 AI 客户端 → 将原语部署到各客户端配置目录。 - 质量保障采用分层测试(unit → integration → acceptance),使用
pytest+pytest-xdist自动并行;Ruff 统一 lint 与 format,pre-commit hooks 及 CI 强制执行。 - CI/CD 分为 Tier 1(快速 unit + build)与 Tier 2(完整集成测试),启用 GitHub merge queue。
- 实验性功能通过
FLAGS字典注册,函数作用域导入避免循环依赖。 - 提供
devcontainer/目录支持容器化开发环境。
典型场景
- 团队新成员
git clone && apm install即可获取所有代理配置,多客户端自动就绪。 - 从任意仓库安装 skills、plugins、agents 并锁定版本。
- 一条命令安装 MCP 服务器并自动部署到所有检测到的客户端。
- 通过策略文件白名单化依赖来源,CI 门禁阻止违规安装。
- 支持 agentrc 生成的
.instructions.md直接打包为 APM 包,无需转换。
项目状态:v0.12.1,共 50 个 release,1100+ commits,主要语言 Python(96.9%),MIT 许可证。