microsoft / microsoft/apm

cm-labs.md

Open Beginner friendly
#1,012 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

area/docs-site area/package-authoring triage/recommended type/docs
Dominant language
Python
Stars
3.9k
Forks
365
Avg merge
1d 17h
Merged PRs (30d)
132

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Use the issue title, cm-labs.md, as the target filename and review the supplied APM Feedback content before checking how similar feedback entries are organized in the repository. Done means the CM Labs submission is recorded accurately, including its references to apm.yml, AGENTS.md, mcp.json, and src/wanda.py.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, yaml
Domain
content, documentation
Issue type
Documentation
Difficulty
1/5
Estimated time
Under an hour
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
75/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.