GitHub Copilot: Zero to Agents — SAP Edition Workshop
Duration: ~5 hours (deliverable as a 2-part series)
Format: Presentation + Live Demo + Hands-On
Audience: SAP developers with basic Copilot exposure (completions/chat) — ABAP, CAP/BTP, and integration engineers
Focus: Copilot customization and agentic workflows on genuinely SAP material — CAP in VS Code and ABAP in Eclipse
Repos: capire/bookshop (SAP CAP — runs locally, no backend) · ABAP samples (abap-cheat-sheets, abap-platform-refscen-flight, cloud-abap-rap)
Companion document: GitHub Copilot for SAP Developers — the lighter enablement workshop
Note: This is the deep hands-on SAP edition of Zero to Agents. It teaches the full customization stack — modes, instructions, prompts, skills, custom agents, MCP, CLI, and cloud agents — on real SAP development. The primary substrate is the SAP Cloud Application Programming Model (CAP) in VS Code (genuinely SAP, runs locally with no backend), and a dedicated section covers the same agentic stack in Eclipse over ABAP, which the GitHub Copilot for Eclipse plugin now supports (v0.20.0+).
Workshop Overview
This session takes SAP developers from casual Copilot usage to full agentic development. Starting with inline completions and chat modes, then progressing through the customization layers — instructions, prompts, agents, skills, and MCP servers — attendees build a complete understanding of how to tailor Copilot to SAP workflows. The session extends to the standalone GitHub Copilot CLI and closes with autonomous cloud agents (Coding Agent + PR Review), then shows the same stack running in Eclipse over ABAP.
The CAP bookshop is the perfect subject: a first-party SAP framework that runs entirely on your laptop with an in-memory database, so every exercise is real SAP development with no S/4HANA backend. The ABAP track uses SAP's own sample repositories, so Copilot reasons over authentic ABAP source.
Learning Objectives
- Master Copilot's three chat modes: Ask, Agent, and Plan — on a real SAP CAP service
- Create custom instructions that encode CAP and ABAP coding standards
- Build reusable prompt files and custom agents for SAP workflows
- Author Agent Skills that Copilot auto-selects for CAP-service, CDS, and ABAP tasks
- Extend Copilot with the official SAP MCP servers (Fiori, UI5, CAP) and GitHub MCP
- Use the standalone GitHub Copilot CLI as an agentic terminal on a CAP project
- Leverage cloud agents: Coding Agent for autonomous PRs and Copilot Code Review
- Run the full agentic stack in Eclipse over ABAP — with honest caveats
Prerequisites
| Requirement | Details |
|---|---|
| GitHub Account | With Copilot Pro, Business, or Enterprise license |
| VS Code | Latest stable (or Insiders for preview features) |
| Copilot Extension | GitHub Copilot + GitHub Copilot Chat extensions installed |
| Node.js | Version 18 or higher |
| SAP CDS toolkit | npm install -g @sap/cds-dk |
| Git | For cloning the demo repositories |
| GitHub Copilot CLI | Install from https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli — required for Section 8 |
| Eclipse (optional) | Eclipse 2024-09+ (2025-03+ recommended) + ABAP Development Tools (ADT) + GitHub Copilot plugin 0.20.0+ — for Section 10 |
Important: Sections 1–9 run entirely in VS Code on the CAP bookshop — no live SAP backend needed. Section 10 uses ABAP sample source in Eclipse (also backend-free); a live SAP system only adds execution, ATC, and live-data steps.
Session Agenda
| Section | Topic | Time |
|---|---|---|
| 1 | Welcome, Objectives & Two-IDE Setup | 20 min |
| 1b | Inline Completion & Inline Chat | 15 min |
| 2 | Chat Modes: Ask, Agent, Plan | 25 min |
| 2b | Slash Commands, @ Participants & # Context | 10 min |
| 3 | Custom Instructions (SAP Standards) | 30 min |
| 4 | Custom Prompt Files | 25 min |
| 5 | Agent Skills | 25 min |
| 6 | Custom Agents (Chat Modes) | 25 min |
| 🍽️ Break / Part 2 boundary | — | |
| 7 | MCP Servers: The SAP MCP Ecosystem | 35 min |
| 8 | GitHub Copilot CLI: The Agentic Terminal | 30 min |
| 9 | Cloud Agents: Coding Agent + PR Review | 20 min |
| 10 | ABAP in Eclipse: The Full Agentic Stack | 30 min |
| 11 | Wrap-Up, Customization Hierarchy Recap & Q&A | 10 min |
Total: ~300 min core (~5h) — deliver as Part 1 (§1–6) and Part 2 (§7–11), or a full day.
The "Zero to Agents" Narrative Arc
Chat Modes → Custom Instructions → Prompt Files → Agent Skills → Custom Agents → MCP → CLI → Cloud Agents → ABAP in Eclipse
(explore) (encode standards) (reusable) (auto-select) (personas) (tools) (terminal) (autonomous) (SAP core)
Each section builds on the previous one, progressively customizing Copilot from a general assistant into a specialized SAP development partner — across both VS Code (CAP) and Eclipse (ABAP).
1. Welcome, Objectives & Two-IDE Setup (20 min)
Key Points
- SAP development spans two IDEs: VS Code (CAP, BTP, side-by-side extensions) and Eclipse + ADT (ABAP)
- Copilot now supports the full agentic stack in both — we anchor hands-on on CAP, then prove it in Eclipse (Section 10)
- The CAP bookshop is a first-party SAP framework that runs locally — real SAP development, no backend
🖥️ DEMO: The CAP Bookshop
- Show capire/bookshop — the data model in
db/, services insrv/, app inapp/ - Explain the OData service and in-memory database — genuinely SAP, no S/4HANA needed
- Point out there is no
.github/customization yet — we build it across the workshop
🧪 Hands-On: Environment Setup (10 min)
Step 1: Clone & install
git clone https://github.com/capire/bookshop
cd bookshop
npm install
npm install -g @sap/cds-dk
Step 2: Run the service
cds watch
Step 3: Verify
cds watchserves the OData service (default http://localhost:4004)- The in-memory database loads sample books and authors
- VS Code: Command Palette → "Copilot" → verify the extension is active
Discussion Points
- Which SAP work do you do in VS Code vs. Eclipse today?
- What's your biggest Copilot frustration? (Common: "it doesn't know our SAP standards" — tease Section 3)
1b. Inline Completion & Inline Chat (15 min)
Key Points
- Inline completions appear as ghost text while you type; comments and nearby code shape them
- Inline chat (
Ctrl+I/Cmd+I) is best for small, focused edits in the current file - Use inline for local changes; use chat modes for broader, multi-file work
🖥️ DEMO: Comment-to-Code in the CAP Service
- Open
srv/cat-service.cds(and its handler if present) - In the handler, type a guiding comment and let Copilot complete:
// Add a handler that lowercases the book title before returning results
- Accept useful parts with
Tab; refine with inline chat (Ctrl+I):
Make this handler async and add a guard for an empty result set.
Success Criteria
- ✅ Triggered and accepted an inline completion from a comment
- ✅ Refined selected code with inline chat without leaving the editor
Discussion Points
- What gave the better suggestion — the comment, the nearby code, or both?
- Where does inline chat fit vs. full chat modes in your day?
2. Chat Modes: Ask, Agent, Plan (25 min)
Key Points
- Copilot has three chat modes, each optimized for a different task
- Modes are selected from the Copilot Chat mode picker
Mode Comparison
| Mode | Best For | Output |
|---|---|---|
| Ask | Exploring, learning, understanding code | Text explanations, snippets |
| Agent | Building, editing, running commands | File edits (single/multi), commands |
| Plan | Analyzing and proposing before coding | Implementation plans (no edits) |
🖥️ DEMO: Ask → Plan → Agent on the CAP Service
- Ask:
@workspace Explain this CAP project — the data model in db/, the services in srv/, and how they connect. - Plan:
I want to add a submitOrder action to the CatalogService. Give me a step-by-step plan before any code. - Agent:
Implement step 1 from that plan.— watch Copilot edit files and runcds watch
🧪 Hands-On: Try All Three Modes (8 min)
Exercise 1 — Ask: What entities and services does this CAP project expose?
Exercise 2 — Plan: How should I add stock tracking and an out-of-stock rule to Books?
Exercise 3 — Agent: Build and run the project, then open the served OData endpoint.
Success Criteria
- ✅ Switched between Ask, Agent, and Plan
- ✅ Received a codebase-aware answer and a plan that changed no files
- ✅ Agent mode edited files and ran a command
2b. Slash Commands, @ Participants & # Context (10 min)
Key Points
- Slash commands (
/explain,/fix,/tests,/doc) are shortcuts for common tasks @participants (@workspace,@vscode,@terminal) route to specialized handlers#variables (#file,#selection,#codebase) attach precise context
🖥️ DEMO: Context Targeting on CAP
- Select a handler →
/explain - Vague:
How does the catalog service work?— note the generic answer - Precise:
@workspace #file:srv/cat-service.cds How does the catalog service work?— note the precision
Discussion Points
- What context do you most often forget to attach?
3. Custom Instructions (SAP Standards) (30 min)
Key Points
- Custom instructions load into every interaction — always-on, invisible context
- Two types: project-wide (
.github/copilot-instructions.md) and scoped (.github/instructions/*.instructions.mdviaapplyToglobs) - This is where your team's SAP standards become durable, reviewable, and portable
🖥️ DEMO: Generate + Scope Instructions for CAP
- Chat → Gear icon → Generate Agent Instructions → save to
.github/copilot-instructions.md - Create scoped instructions for the service layer:
---
applyTo: "srv/**"
---
# CAP Service Instructions
- Expose entities through services — never query the db model directly from clients.
- Validation errors use the CAP req.error(code, message) API.
- Prefer async/await in custom handlers.
- Add OData-friendly naming and keep actions/functions explicit.
- Ask Copilot to add a service method and confirm it follows the conventions unprompted
🧪 Hands-On: Encode Your SAP Standards (12 min)
Step 1: Establish a baseline — ask How should I add a new action to the CatalogService? before instructions.
Step 2: Generate project-wide instructions (Gear → Generate Agent Instructions).
Step 3: Create .github/instructions/CAP.instructions.md with applyTo: "srv/**" and the rules above.
Step 4: Ask the same question and compare — note the CAP-specific guidance.
Success Criteria
- ✅
.github/copilot-instructions.mdexists - ✅
.github/instructions/CAP.instructions.mdexists withapplyTo: "srv/**" - ✅ A new generation followed the conventions automatically
4. Custom Prompt Files (25 min)
Key Points
- Prompt files are reusable task templates in
.github/prompts/*.prompt.md - YAML frontmatter sets
mode,description, andtools - On-demand (Run button, Command Palette, or
/namein chat) — unlike always-on instructions
🖥️ DEMO: A CAP Test-Coverage Prompt
Create .github/prompts/cap-tests.prompt.md:
---
mode: 'agent'
description: 'Generate cds.test coverage for a CAP service action'
tools: ['codebase', 'search', 'editFiles', 'runCommands']
---
# CAP Test Coverage
## Objective
Generate tests for the target action using the CAP test runtime (cds.test).
## Requirements
- Cover the happy path and the out-of-stock edge case
- Add a package.json test script if one does not exist
- Follow existing patterns in the repo
## Success Criteria
- Tests run with `npm test` and pass
Run it against the submitOrder action and watch Agent mode generate and run tests.
🧪 Hands-On: Build a Prompt File (12 min)
Exercise 1: Run the cap-tests.prompt.md above.
Exercise 2: Create security-review.prompt.md that scans the CAP service for missing validation, unhandled errors, and direct db access from handlers.
Success Criteria
- ✅ Ran a prompt file and watched a multi-step task execute
- ✅ Created and ran your own prompt file
5. Agent Skills (25 min)
Key Points
- Skills are specialized
SKILL.mdfiles Copilot auto-selects by relevance (no manual invocation) - Project-scoped (
.github/skills/<name>/) or global (~/.copilot/skills/<name>/) - Great for "when doing X, follow these steps" SAP procedures
🖥️ DEMO: A CAP Service-Creation Skill
Create .github/skills/cap-service/SKILL.md:
---
name: cap-service
description: Guide for adding CAP entities, services, and actions.
Use this when asked to add new entities, services, actions, or endpoints.
---
When adding to this CAP project:
1. Define/extend the entity in `db/` (CDS).
2. Expose it via a service in `srv/` — never the db model directly.
3. Implement custom logic in the matching `.js` handler with async/await.
4. Use req.error for validation failures.
5. Add cds.test coverage including edge cases.
Prompt: Add a Warehouses entity and expose it with stock management — watch Copilot follow the skill.
🧪 Hands-On: Author a Skill (12 min)
Exercise 1: Create the cap-service skill above and trigger it with a new-entity prompt.
Exercise 2 (bonus): Create a cds-modeling skill for CDS naming, associations, and compositions.
Success Criteria
- ✅ Created a
SKILL.mdand saw Copilot auto-select it from your prompt
6. Custom Agents (Chat Modes) (25 min)
Key Points
- Agents are persistent personas in
.github/agents/*.agent.md, selectable in the mode picker - Each can set its own
tools,description, andmodel
🖥️ DEMO: A CAP Engineer + a CDS Reviewer
- Create
.github/agents/CAPEngineer.agent.md(read/write tools) — a full-stack CAP engineer persona that follows the project conventions - Create
.github/agents/CDSReviewer.agent.md(read-only tools:codebase,search,usages,problems) — reviews services for validation, error handling, and model exposure - Show both in the mode picker; give each a task and note how the tool list controls behavior
🧪 Hands-On: Build a Reviewer Agent (10 min)
Create .github/agents/CDSReviewer.agent.md with read-only tools and a review persona, then ask it to review srv/cat-service.cds and the submitOrder handler.
Success Criteria
- ✅ Created a custom agent that appears in the mode picker
- ✅ The agent stayed in persona across the conversation
7. MCP Servers: The SAP MCP Ecosystem (35 min)
Key Points
- MCP extends Copilot with external tools; configured in
.vscode/mcp.json - SAP and the UI5 community publish official MCP servers that plug SAP tooling into Copilot
- These work in VS Code and Eclipse (Eclipse added MCP support in the plugin)
The SAP MCP Servers
| Server | Layer | What It Does |
|---|---|---|
@sap-ux/fiori-mcp-server |
Fiori elements apps | Generate/modify SAP Fiori elements UIs from prompts |
@ui5/mcp-server |
SAPUI5 / OpenUI5 | Scaffold UI5 apps, API references, guidelines, linting |
@cap-js/mcp-server |
CAP backend | Search the compiled CDS model and CAP docs |
🖥️ DEMO: Register the SAP MCP Servers + GitHub MCP
Add to .vscode/mcp.json:
{
"servers": {
"fiori-mcp": { "type": "stdio", "command": "npx", "args": ["--yes", "@sap-ux/fiori-mcp-server@latest", "fiori-mcp"] },
"ui5-mcp-server": { "type": "stdio", "command": "npx", "args": ["-y", "@ui5/mcp-server"] },
"cds-mcp": { "type": "stdio", "command": "npx", "args": ["-y", "@cap-js/mcp-server"] },
"github": { "type": "http", "url": "https://api.githubcopilot.com/mcp/" }
}
}
Then, in Agent mode: Add a SAP Fiori elements list report app for the Books entity, with an object page for details. — the CAP server grounds Copilot in the compiled model; the Fiori/UI5 servers scaffold a real, governed SAP UI.
🧪 Hands-On: SAP MCP + GitHub MCP (15 min)
Exercise 1: Register the four servers and confirm via Command Palette → MCP: List servers.
Exercise 2: Generate a Fiori elements app on the Books entity; apply UI5 guidelines/linting via the UI5 server.
Exercise 3: With GitHub MCP, create an Issue for a follow-up enhancement from chat.
Success Criteria
- ✅ SAP + GitHub MCP servers registered and visible
- ✅ Scaffolded a Fiori elements UI on the CAP service via MCP
- ✅ Created a GitHub Issue from chat
Discussion Points
- Where would an official SAP MCP server fit into your toolchain?
8. GitHub Copilot CLI: The Agentic Terminal (30 min)
Key Points
- The standalone
copilotCLI is a full agent in your terminal — plan mode, file context, tool approval,/review,/delegate - It uses the same customization files from Sections 3–6 — instructions, agents, skills, MCP all transfer
- IDE-agnostic: works the same whether your team uses VS Code or Eclipse
🖥️ DEMO: The Agentic Terminal on the CAP Project
- From a standalone terminal in the bookshop repo:
copilot - Ask:
Explain this CAP project and list all entities and services - Plan mode (Shift+Tab):
Plan how to add pagination to the Books listing - Build:
Implement the plan, following @srv/cat-service.cds /delegate Add tests for the new pagination and open a PR— hands off to the cloud Coding Agent
🧪 Hands-On: Try the CLI (15 min)
Exercise 1: Launch copilot, approve the trusted directory, ask a codebase-aware question.
Exercise 2: Use @srv/cat-service.cds file context; toggle plan mode with Shift+Tab.
Exercise 3 (bonus): /review your changes, or /delegate a task to the Coding Agent.
Success Criteria
- ✅ Launched
copilot, asked a codebase-aware question, used@filecontext and plan mode - ✅ Used at least one slash command (
/review,/context,/agent, or/usage)
9. Cloud Agents: Coding Agent + PR Review (20 min)
Key Points
- Coding Agent: assign a GitHub Issue to Copilot → it branches, implements, and opens a PR
- PR Review Agent: add Copilot as a reviewer → AI-powered review comments
- Both are github.com features — available regardless of IDE, and delegable from VS Code and Eclipse
- Your customization files (instructions, skills) apply even when Copilot codes autonomously
🖥️ DEMO: Issue → Coding Agent → PR → Review
- Create/assign an Issue:
Add input validation to submitOrder (positive integer quantity, existing book) - Assign Copilot → watch the Coding Agent branch, implement, and open a PR
- Add Copilot as a reviewer on the PR → walk through the AI review comments
Discussion Points
- What branch-protection and review gates would you require before merging autonomous PRs?
10. ABAP in Eclipse: The Full Agentic Stack (30 min)
Key Points
- The GitHub Copilot for Eclipse plugin (v0.20.0+) now carries the full agentic stack: Ask/Agent/Plan modes, custom instructions, MCP, prompt files, skills, custom agents/subagents, and delegate-to-Coding-Agent — not just completions + chat
- Everything from Sections 2–9 has an Eclipse equivalent — we prove it over real ABAP sample source (backend-free)
- Honest caveats: the model is not ABAP-fine-tuned, and agent mode on ADT's generated/virtual files can have rough edges — use the latest plugin and review every edit
Setup
Install Eclipse + ADT + the latest Copilot plugin (0.20.0+), then clone the ABAP samples (any folder) and import them (File → Import → General → Projects from Folder or Archive). See the enablement workshop's Facilitator Setup for the full walkthrough.
git clone https://github.com/SAP-samples/abap-cheat-sheets
git clone https://github.com/SAP-samples/abap-platform-refscen-flight
git clone https://github.com/SAP-samples/cloud-abap-rap
🖥️ DEMO: The Stack, in Eclipse, over ABAP
- Ask — open a class from
abap-platform-refscen-flight:What is this program doing? Draw the execution flow. - Custom instructions — add
.github/copilot-instructions.mdwith ABAP conventions (modern 7.5+ syntax, checksy-subrc) - Agent mode —
Refactor this to modern ABAP 7.5+ syntax and add a helper method, following our conventions— review each edit - Skills/prompts — reuse a
SKILL.mdfor ABAP unit tests; note MCP also works here
Success Criteria
- ✅ Ran Ask + Agent modes in Eclipse over ABAP sample source
- ✅ A custom instruction shaped the ABAP output
- ✅ Reviewed every edit (ABAP-fine-tuning + ADT virtual-file caveats respected)
Discussion Points
- Which of your ABAP workflows would benefit most from agent mode?
- What review gates (ATC, transport, code review) would you keep in place?
11. Wrap-Up, Customization Hierarchy Recap & Q&A (10 min)
The Full Stack — Across Both IDEs
CLOUD AGENTS Coding Agent (async PRs) + PR Review — github.com, any IDE
MCP SERVERS SAP Fiori / UI5 / CAP + GitHub — VS Code and Eclipse
AGENT SKILLS .github/skills/*/SKILL.md — auto-selected
CUSTOM AGENTS .github/agents/*.agent.md — personas
PROMPT FILES .github/prompts/*.prompt.md — reusable tasks
CUSTOM INSTRUCTIONS .github/copilot-instructions.md + scoped — always-on SAP standards
CHAT MODES Ask → Plan → Agent
CLI (§8): agentic terminal · Eclipse (§10): the same stack over ABAP
Key Takeaways
- Modes are the foundation — Ask to understand, Plan to design, Agent to build
- Instructions encode SAP tribal knowledge — CAP and ABAP standards, always on
- Prompts, skills, and agents make SAP workflows repeatable and shareable
- MCP connects Copilot to the SAP ecosystem (Fiori, UI5, CAP) — in both IDEs
- Cloud agents close the loop from Issue to PR to review
- Eclipse now runs the full agentic stack over ABAP — with review kept essential
What You Built Today
| Artifact | Section |
|---|---|
.github/copilot-instructions.md + CAP.instructions.md |
§3 |
.github/prompts/cap-tests.prompt.md |
§4 |
.github/skills/cap-service/SKILL.md |
§5 |
.github/agents/CDSReviewer.agent.md |
§6 |
.vscode/mcp.json with SAP + GitHub MCP |
§7 |
| CLI agentic session + a delegated PR | §8–9 |
Discussion Points
- What's the one SAP workflow you'd pilot first?
- Who are your internal champions to lead adoption?
Appendix
Key URLs
Troubleshooting
| Issue | Solution |
|---|---|
| Copilot not active | Check the extension is installed and signed in |
| MCP server won't start | MCP: List servers, verify chat.mcp.discovery.enabled is true, verify Node.js |
cds watch fails |
Run npm install and npm install -g @sap/cds-dk; check Node 18+ |
| Eclipse Copilot language server fails | Sign in to GitHub first, then restart Eclipse |
| ABAP agent mode error on ADT virtual files | Use the latest plugin (0.20.0+); spot-check on ADT editors |
Condensed Delivery (2-Part Series)
- Part 1 (~2.5h) — §1–6: modes, context, instructions, prompts, skills, custom agents (all on CAP)
- Part 2 (~2.5h) — §7–11: SAP MCP, CLI, cloud agents, ABAP in Eclipse, recap
Workshop guide for the GitHub Copilot: Zero to Agents — SAP Edition