Microsoft presents: Agentic development with AL developer tools and ALMCP deep dive
Agentic AL development in Visual Studio Code and via the ALMCP server: agent modes, skills, tools, debugging, LSP for AL, the BCbench evaluation framework, and a BC fix workflow using a RAL loop and sub-agents. Includes demos with GitHub Copilot CLI.
- Introduction and Agenda
- Agent Modes - Agent, Ask, and Plan
- Custom Agents and Skills
- Tools and the Agentic Loop
- Tool Categories and Discovery
- Demo Setup and Agent Invocation
- Code Generation and Building
- Debugging and Troubleshooting with Agents
- ALMCP Server and Editor Support
- ALMCP with GitHub Copilot CLI Demo
- Tooling across Surfaces and LSP Introduction
- Language Server Protocol Benefits and Comparison
- LSP Configuration, Endpoints and Evaluation Framework
- Agent Evaluation Methodology and Agentic Workflows
- BC Fix Workflow Architecture and RAL Loop Technique
- Live Demo Setup and BC Fix Baseline Test Creation
- Demo Phase 4: Bug Fix Implementation and Test Verification
- Takeaways, Q&A and Agent Failure Handling
- Performance Management and Pull Request Review Workflow
- Closing Remarks
Overview
The session covers how coding agents work with AL tools. It explains Agent, Ask and Plan modes, custom agents defined in markdown files, skills loaded on demand, and the agentic loop where an agent picks tools, reads results and continues. Demos show building, publishing, debugging and troubleshooting, including access to stack frames, variables and database statistics during a debug session.
The second half covers the ALMCP server and AL CLI tool (.NET tools installable via NuGet), registering ALMCP in GitHub Copilot CLI, and the Language Server Protocol for AL. It then covers BCbench, which uses hidden tests from real commits, and a BC fix workflow built from sub-skills with a RAL loop, sub-agent context isolation, a session retrospective skill, and notes on performance profiling and pull request comments.
Key points
- Custom agents are markdown files with front matter (name, description, tools, skills, knowledge, system prompt). Skills load on demand and do not use context window space up front.
- Troubleshooting tools come from a dedicated MCP server and are only available during a debugging session. They expose source, stack frames, variables, and SQL statements and database statistics.
- ALMCP server and AL CLI are .NET tools installed via NuGet, with a pre-release flag for the latest features. In GitHub Copilot the agent may call ALC directly, so instructions may be needed to redirect it to ALMCP.
- LSP gives agents semantic endpoints such as go to definition, find references and rename. In the demo, grep missed about 80% of references to a number field on the Customer table. LSP needs a package cache path configured.
- BCbench is based on SWE bench and real commits that contain both a fix and a test. It runs the hidden tests against agent fixes and averages five runs because of LLM nondeterminism. Baseline was 67%, and adding tools raised it to 71%.
- The BC fix workflow uses a RAL loop with success criteria and a maximum number of attempts. The baseline skill creates a failing test, and the implement skill runs as a sub-agent on Claude Sonnet 4.6 to limit context rot and cost.
- Pull request comments by an agent still need human approval. Profiler reading by agents is not yet in the workflows, and a loop for pipeline gate failures would need to be added.
Features
| Feature | Status | At |
|---|---|---|
| Agent Mode | status not stated, demoed | 0:53 |
| Ask Mode | status not stated | 1:25 |
| Plan Mode | status not stated | 1:35 |
| Custom Agents | status not stated | 1:52 |
| Skills | status not stated | 2:23 |
| BC Quality Repository Skills | status not stated | 3:00 |
| Agent Tools | status not stated, demoed | 3:30 |
| Language Model Tools API | status not stated | 4:32 |
| MCP Servers for AL Development | status not stated, demoed | 4:52 |
| Build Tool | status not stated, demoed | 5:15 |
| Symbol and Relationship Tools | status not stated | 5:25 |
| Publishing and Debugging Tools | status not stated, demoed | 5:35 |
| Test Tools | status not stated | 5:45 |
| Troubleshooting Tools | status not stated, demoed | 5:55 |
| Tool Discovery and Invocation | status not stated, demoed | 6:21 |
| Approval Workflow | status not stated, demoed | 8:35 |
| Context Size Configuration | status not stated, demoed | 8:18 |
| Reasoning Model Selection | status not stated, demoed | 8:07 |
| ALMCP Server | status not stated, demoed | 14:35 |
| AL CLI Tool | status not stated, demoed | 15:17 |
| Agent database statistics access | status not stated, demoed | 13:08 |
| Agent stack trace analysis | status not stated, demoed | 13:44 |
| ALMCP GitHub Copilot integration | status not stated, demoed | 16:34 |
| Language Server Protocol (LSP) for AL | generally available (roadmap Use AL language intelligence from AI agents and other editors), demoed | 19:47 |
| LSP folding range endpoint | status not stated | 23:15 |
| BCbench evaluation framework | status not stated | 24:51 |
| Hidden test verification method | status not stated | 25:20 |
| Agentic workflow framework | status not stated, demoed | 27:37 |
| RAL loop technique | status not stated, demoed | 31:39 |
| BC fix skill | status not stated, demoed | 29:44 |
| BC fix baseline skill | status not stated, demoed | 31:49 |
| BC fix implement skill | status not stated, demoed | 36:31 |
| BC test implement agent | status not stated, demoed | 30:57 |
| AL developer session skill (BCLdev session) | status not stated, demoed | 29:44 |
| MCP tools integration | status not stated, demoed | 30:00 |
| Agent evaluation methodology | status not stated | 26:29 |
| Sub-agent context isolation | status not stated, demoed | 33:56 |
| Session retrospective skill | status not stated | 40:32 |
| Business Central performance profile tool | status not stated | 42:19 |
| Agent-assisted telemetry analysis | status not stated, demoed | 42:48 |
| Agent pull request commenting | status not stated | 43:57 |
| Custom AL code analyzers with MCP server | status not stated | 39:30 |
A status with a roadmap link comes from the Microsoft 365 roadmap feature this part of the video covers (matched by Haiku; links Opus dropped are not used); other statuses need a status word in the video itself.
AL objects mentioned
As heard in the captions. A name that matches one object page by exact type and name links to it; the others stay as named.
- page “page (shown in demo for JSON parsing)” at 7:12
- codeunit “process from JSON method” at 7:23
- other “process entry method” at 7:23
- other “trim method” at 13:56
- other “lookup method” at 10:27
- table “customer table” at 21:26
- other “AL command” at 22:12
- other “ALC” at 15:46
- other “BCLdev session” at 29:44
- other “BC fix baseline” at 31:27
- other “BC fix implement” at 30:57
- other “BC fix supplement” at 31:27
- other “BC test implement” at 30:57
Not found in BC28-30: page “page (shown in demo for JSON parsing)”, codeunit “process from JSON method”, table “customer table”.
Quotes
- 1:06 “with the agent mode, you can have this multi-step operation where you can take it from a small simple operation …”
- 1:52 “we can also make our own custom agents. The the beauty of this is that it’s all just a markdown file”
- 2:43 “it doesn’t take space in your context window. All it is from uh for loading it for the agent to begin with is a”
- 3:30 “what has been truly a gamecher with agents in comparison to the chat modes that we’ve seen in the past is their ability to”
- 3:50 “it will discover them and as soon as you give them a task it will reason over that task what it has to do”
Disclaimers in the video
- 15:17 preview: you can also specify the pre-release flag so that you get access to the latest uh bits that we’re shipping
- 32:29 preview: I’m going to skip the planning mode completely. It was shown in the keynote very fast.
- 34:30 other: It’s probably going to run on the hik model as well. I haven’t tested this one. That’s exactly why we need BCbench for this.
- 38:00 other: the part that I will um I’m going to skip I think for the pull request I have the small …
- 42:48 not-in-this-release: We are not doing this right away. We don’t have a workflow for this one but we have it in mind
- 44:39 coming-later: we need probably to add like another loop to make sure that agent can help with the failures in the gates
Presenters (as heard): Thomas, Quinton, Arthur.
