microsoft/apm
Agent Package Manager
APM – 에이전트 패키지 매니저
정의
- AI 기반 코딩 에이전트(Copilot, Claude, Gemini 등)를 위한 오픈소스 의존성 매니저입니다.
npm이나pip처럼 동작하지만, 매니페스트(apm.yml)에는 에이전트 프리미티브인 스킬, 프롬프트, 플러그인, MCP 서버, 전체 에이전트 패키지가 나열됩니다.
핵심 아이디어
- 매니페스트 기반 이식성 – 하나의
apm.yml(및 잠금 파일)이 에이전트의 컨텍스트를 완전히 설명합니다.apm install을 실행하면 어떤 머신에서도 동일한 설정이 재현됩니다. - 기본 보안 – 패키지는 숨겨진 유니코드를 검사하고, 콘텐츠 해시는
apm.lock.yaml에 저장되며,apm audit명령으로 드리프트나 손상된 자산을 감지할 수 있습니다. - 정책 기반 관리 – 선택적
apm-policy.yml을 통해 조직이 소스, 범위, 프리미티브를 허용 목록에 추가할 수 있으며, CI 적용을 위해 GitHub 규칙 세트와 통합됩니다.
주요 기능
- 전이적 의존성 해결 – 패키지는 다른 패키지에 의존할 수 있으며, 잠금 파일이 전체 트리를 고정합니다.
- 플러그인 작성 – 적절한 의존성 추적을 통해 Copilot/Claude/Cursor 플러그인을 빌드하고 표준
plugin.json을 내보냅니다. - 마켓플레이스 지원 – 단일 명령으로 큐레이팅된 레지스트리에서 번들을 설치합니다.
- 패키징 –
apm pack은 배포용 zip 또는 독립형 플러그인을 생성합니다. - CI/CD 통합 – Microsoft가 유지 관리하는 GitHub Action(
microsoft/apm-action)이 감사 및 잠금 파일 검사를 자동으로 실행합니다. - SBOM 내보내기 – 잠금 파일에서 직접 CycloneDX 또는 SPDX 인벤토리를 생성합니다.
- MCP(Model Context Protocol) 서버 처리 – 매니페스트에서 원격 컨텍스트 서버를 선언하고, 설치 시 명시적 신뢰를 강제합니다.
시작하기
# macOS (Homebrew)
brew install apm
# Linux/macOS (스크립트)
curl -sSL https://aka.ms/apm-unix | sh
# Windows (PowerShell)
irm https://aka.ms/apm-windows | iex
기타 옵션: pip install apm-cli, WinGet, 또는 Scoop.
일반적인 워크플로우
# apm.yml – 저장소에 배치
name: my‑project
version: 1.0.0
dependencies:
apm:
- anthropics/skills/skills/frontend-design # 스킬 컬렉션
- github/awesome-copilot/plugins/context-engineering
- microsoft/apm-sample-package#v1.0.0
mcp:
- name: io.github.github/github-mcp-server
transport: http
# 저장소를 클론한 후
apm install # 에이전트 컨텍스트를 해석, 검증, 작성
apm compile -t copilot # .github/copilot‑instructions.md 생성
apm audit # 드리프트 또는 보안 문제 확인
사용 대상
- 재현 가능한 스킬 세트와 프롬프트가 필요한 AI 코딩 어시스턴트를 구축하는 팀.
- LLM 에이전트가 실행할 수 있는 작업에 대해 보안과 정책을 강제하려는 기업.
- 공식 패키지 형식과 의존성 그래프를 원하는 플러그인 개발자.
- 배포 전 에이전트 구성을 검증해야 하는 CI 파이프라인.
프로젝트 상태
- Microsoft 기여자(Daniel Meppiel, Sergio Sisternes)가 적극적으로 유지 관리합니다.
- 문서 사이트, 빠른 시작 가이드, 로드맵이 제공됩니다.
- macOS, Linux, Windows용 네이티브 바이너리와 패키지 매니저(Homebrew, pip, WinGet, Scoop)로 릴리스됩니다.
- 커뮤니티 채널: Discussions, GitHub Action, 로드맵 프로젝트.
모든 정보는 저장소의 README에서 직접 가져왔습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트