Kevalo
Zonhoven, BE
Beschikbaar
NL EN
Terug naar home

Microsoft APM: AI-Agents Beheren als Softwarepakketten

Microsofts Agent Package Manager brengt de vertrouwdheid van npm en pip naar AI agent development. Ontdek hoe apm.yml transformeert hoe teams AI-mogelijkheden bouwen, delen en beheren over platformen heen.

Package managers hebben softwareontwikkeling getransformeerd. package.json voor Node.js, requirements.txt voor Python — één manifest file, één install command, reproduceerbare environments overal. Microsoft APM brengt dit model naar AI-agents.

Naarmate AI coding assistants essentiële development tools worden, wordt het beheren van hun configuraties — skills, prompts, instructions, MCP servers — steeds complexer. APM lost dit op door agent context te behandelen als versioned, executable infrastructure: declareer dependencies eenmaal, reproduceer ze overal.

Ik heb onlangs geëxperimenteerd met APM op een project op het werk, waar we dit gaan uitrollen over de verschillende teams, en later via de build pipeline. De CLI-integratie met agents werkt precies zoals gedocumenteerd — betrouwbaar, voorspelbaar, goed gedrag. Maar IntelliJ IDEA onthulde een ander verhaal. De AI Assistant-plugin of Junie-plugin gebruikten bijvoorbeeld de commando's en/of instructies niet zoals ik verwachtte. Dit resulteerde in onverwacht gedrag wanneer aangeroepen via de IDE. Ook de Junie reviewer die we gebruiken in de CI/CD-pipeline vereiste wat aangepaste configuratie om deze kloof te overbruggen. Maar die frictie is waar het echte leren gebeurt: de valkuilen begrijpen, best practices ontdekken door trial and error, zien hoe agent primitives zich daadwerkelijk gedragen in productie in plaats van in theorie. Ik sta nog aan het begin van deze reis. Er valt nog veel te ontdekken, en ik kijk ernaar uit.

Wat Is Microsoft APM?

Agent Package Manager (APM) is Microsofts open-source dependency manager voor AI-agents — npm voor agent context. Eén apm.yml manifest declareert skills, prompts, instructions, agents, hooks, plugins en MCP servers. Eén commando reproduceert de exacte setup op elke client op elke machine.

Het uitvoeren van apm install lost dependencies transitief op, creëert apm.lock.yaml met volledige commit SHA's en integrity hashes, scant op beveiligingsproblemen en configureert GitHub Copilot, Claude Code, Cursor, OpenCode, Codex, Gemini CLI en Windsurf automatisch.

Het Probleem Dat APM Oplost

Zonder APM is agent-configuratie tribal knowledge. Developers configureren AI assistants handmatig, skills worden ad-hoc geïnstalleerd zonder version tracking, en het reproduceren van agent-gedrag over machines heen is fragiel. Security scanning voor malicieuze prompts? Handmatig, op z'n best.

APM transformeert dit. Clone een repository, voer apm install uit, en elke developer krijgt byte-voor-byte identieke agent-configuratie — versioned, security-gescand, cross-platform. Dezelfde setup werkt in GitHub Copilot, Claude Code, Cursor en elke andere ondersteunde harness.

Hoe APM Werkt

Het apm.yml Manifest

Alles begint met apm.yml — een declaratief manifest dat beschrijft wat je agent nodig heeft. Het declareert de zes APM primitives: instructions, skills, prompts, agents, MCP servers en hooks. Hier een eenvoudig voorbeeld:

name: my-dev-agent
version: 1.0.0

dependencies:
  "@skills/java": "^2.1.0"
  "@mcp/filesystem": "^1.0.0"

skills:
  - source: github
    repo: company/internal-skills
    path: skills/code-review.md

mcp:
  filesystem:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"]

Dit bestand declareert Java skills van een package registry, een MCP server voor filesystem access en een custom code review skill van een internal repository. APM handelt de rest af.

Dependency Resolution

Wanneer je apm install uitvoert, doet APM het volgende:

  1. Lost alle dependencies transitief op (skills kunnen afhangen van andere skills)
  2. Downloadt packages van geconfigureerde registries of Git repositories
  3. Scant content op beveiligingsproblemen (verborgen Unicode, verdachte patronen)
  4. Creëert apm.lock.yaml met volledige 40-karakter commit SHA's
  5. Configureert gedetecteerde AI clients (Copilot, Claude, Cursor, etc.)
  6. Vraagt om toestemming voor het installeren van MCP servers

Belangrijkste Functies

Cross-Platform Ondersteuning

Eén manifest, elk platform. APM compileert primitives naar harness-specifieke formaten — .github/instructions/ voor Copilot, .cursor/rules/ voor Cursor, enzovoort. Je apm.yml werkt over GitHub Copilot, Claude Code, Cursor, OpenCode, Codex, Gemini CLI en Windsurf heen zonder aanpassingen.

Security Scanning

Elke apm install scant packages automatisch op:

  • Verborgen Unicode — Tekens die onschadelijk lijken maar agent-gedrag kunnen veranderen
  • Integrity hashes — Lockfile-verificatie om tampering te detecteren
  • MCP server gating — Transitieve MCP servers vereisen expliciete trust prompts
  • Kritieke bevindingen — Packages met ernstige beveiligingsproblemen worden automatisch geblokkeerd

Dependency Source Locking met apm-policy.yml

Enterprise security teams controleren exact welke sources, scopes en primitives de organisatie toestaat. Opgeslagen in <org>/.github/apm-policy.yml, handhaaft dit governance file policy bij install time met tighten-only inheritance: enterprise → organisatie → repository.

version: 1

# Vergrendel naar interne GitLab alleen
allowed_sources:
  - type: git
    host: gitlab.company.com
    org: company/*
    require_auth: true

  - type: registry
    url: https://registry.company.com
    require_signing: true

# Blokkeer publieke sources
blocked_sources:
  - type: git
    host: github.com
    reason: "Use internal mirror only"

# Security requirements
security:
  require_lockfile: true
  require_integrity_hashes: true
  block_unsigned_packages: true
  scan_for_unicode: true

Handhaving: Elke apm install valideert dependency sources tegen de policy, inclusief transitieve MCP servers. Dependencies van niet-toegestane sources worden onmiddellijk geblokkeerd. Policy violations worden gelogd naar audit trails.

Voor organisaties met on-premise GitLab of GitHub Enterprise biedt dit volledige supply chain controle: agents kunnen alleen content installeren van intern beoordeelde repositories.

APM Primitives

APM handelt zes core primitives af, elk opgeslagen in .apm/ subdirectories en gecompileerd naar harness-specifieke formaten voor je AI clients:

Instructions

Always-on regels gekoppeld aan file globs die coding standards, architectural patterns of teamconventies handhaven. Opgeslagen in .apm/instructions/, worden ze gecompileerd naar formaten zoals .github/instructions/ of .cursor/rules/ afhankelijk van je harness.

Use cases: CQRS-patronen, multi-tenancy standaarden, code style enforcement, naming conventions.

Skills

Multi-file capabilities waarbij SKILL.md dient als entry point. Skills zijn model-invoked guides die agents runtime selecteren op basis van het description-veld in hun frontmatter. Opgeslagen in .apm/skills/<name>/.

Elke skill moet onder 500 regels en 5.000 tokens blijven. Voor uitgebreide context, gebruik references/ subdirectories die de skill body expliciet kan laden.

Voorbeeld: Een code-review skill activeert wanneer een agent ziet 'the user asks for code review or PR feedback'.

Prompts

Herbruikbare templates met .prompt.md-extensies, opgeslagen in .apm/prompts/. Prompts worden opgeroepen via scripts of CLI-commando's, niet automatisch geactiveerd.

Use cases: /document, /refactor, /write-tests — voorgedefinieerde workflows die developers on-demand triggeren.

Agents

Named agent-definities in .apm/agents/ met .agent.md-bestanden. Elke agent specificeert model selectie, system prompt en tool whitelist voor een bepaald expertise domein.

Voorbeelden: @api-architect, @security-expert, @performance-specialist — expliciet opgeroepen via @agent-name.

MCP Servers

Tool providers gedeclareerd in apm.yml onder mcp:. APM installeert ze automatisch in elke gedetecteerde AI client, beheert lifecycle, configuratie en authenticatie. Transitieve MCP servers vereisen expliciete trust prompts voor security.

Mogelijkheden: Filesystem operations, database queries, API-integraties (GitHub, Jira, Slack), search en indexing.

Hooks

Lifecycle event handlers opgeslagen in .apm/hooks/ die uitvoeren tijdens pre-install, post-install, compile of run operations.

Use cases: Environment validation, custom configuratie, integratie met bestaande toolchains.

Of je nu de AI assistant van één developer beheert of agent-mogelijkheden standaardiseert over een enterprise heen, APM maakt AI agent-configuratie net zo reproduceerbaar en onderhoudbaar als je application dependencies.
Terug naar boven