Skip to content

cm-labs.md #1012

@Timbermitch

Description

@Timbermitch

APM Feedback — CM Labs (Wanda)

Team name: CM Labs
Project: Wanda — AI Data Engineer for Microsoft Fabric
Repo: https://github.com/Timbermitch/wanda/blob/main/apm.yml
Submitter: Timbermitch

What we used APM for

We used APM as the manifest layer for Wanda — an agent that investigates failed Microsoft Fabric pipelines. The apm.yml describes:

  • The agent persona (linked via AGENTS.md)
  • The MCP server config (linked via mcp.json) which exposes 4 Fabric tools
  • The Python entrypoint (src/wanda.py)
  • Capabilities and read-only Fabric permissions

This let us co-locate the agent's identity, tools, runtime, and permissions in one declarative file alongside the source code.

What worked

  • The apm.yml schema was easy to write by hand. Clear separation between metadata, runtime config, capabilities, and permissions.
  • Linking to AGENTS.md and mcp.json from a single manifest is great — it keeps the agent's persona, tools, and runtime co-located.
  • The capabilities and permissions sections felt natural for describing what Wanda does (read-only Fabric investigation) without overpromising.
  • Treating the agent as a versionable package alongside the code is the right mental model.

What could be improved

  • Documentation for apm.yml is still light. We had to look at examples in the APM repo to figure out the expected fields.
  • It wasn't obvious whether permissions are enforced at runtime or just declarative metadata.
  • The versioning convention (apiVersion: apm.github.com/v1) — we copied this from examples but couldn't find a definitive reference.
  • A schema definition (JSON Schema or similar) so editors can validate apm.yml while you write it would be a big win.
  • Example manifests for common agent shapes — read-only investigation agent, write-capable workflow agent, multi-MCP-server agent — would help newcomers.
  • Tighter integration with the Copilot SDK so the SDK can read apm.yml directly to discover MCP servers and persona, instead of needing separate config.

Overall

Useful piece of the puzzle. The single-manifest approach is the right idea — it makes agents portable and reproducible. Mostly needs more docs and tooling around the schema to feel production-ready. We'd use it again.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/docs-sitedocs/src/content (Starlight), README, doc generation.area/package-authoringapm pack/unpack, plugin authoring, vendoring guidance, bundle format.status/acceptedDirection approved, safe to start work.status/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).type/docsDocumentation change (prose, examples, generated reference).

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions