Skip to content

Add MicroHack 13: Frontier Operations: Agents That Do the Work - #593

Merged
Marco Weber (qxsch) merged 74 commits into
microsoft:mainfrom
Digvijay:feature/frontier-operations-agents
Nov 2, 2026
Merged

Marco Weber (qxsch) merged 74 commits into
microsoft:mainfrom
Digvijay:feature/frontier-operations-agents

Conversation

@Digvijay

Copy link
Copy Markdown

What

New MicroHack in 03-Azure/01-04-AI/13_Frontier_Operations: Frontier Operations: Agents That Do the Work.

Participants pick a fictional company (distribution, telco, energy, insurance or retail) and hand its monthly reconciliation to an agent built on the Microsoft Copilot harness in Foundry. Low-code, in the Foundry portal, with a few pasted commands in Cloud Shell.

Challenge What they build
1 A harness agent that reads files, runs Python in its workspace and returns a finished workbook
2 A skill with the team's reconciliation rules, scored before and after
3 Subagents, one per partner, combined into one workbook
4 An OpenAPI tool to the ERP with the API key kept in a Foundry connection
5 Browser automation in a partner portal with no API, with approval and a check of what the agent submitted
6 Network egress rules (audit, then enforce), the agent's own identity with least privilege, and traces
7 Two models compared on time, accuracy and cost per run, and the business case
8 (stretch) The same agent, skill and tools as code with the Azure Developer CLI
Finish A process canvas and a first skill for a process from the participant's own organisation

Contents

  • Five fictional industry packs: partner statements, ERP data, a partner portal and expected results, including a hidden instruction for the safety challenge.
  • Setup tool (python3 -m frontierops): setup, grant-agent, publish-skill, get-skill, copy-agent, score, download and status. Every command is explained in the challenge where it is used.
  • Mock ERP API (API key) and partner web portal (no API) on Azure Functions Flex Consumption.
  • Lab automation: infra/main.bicep and labautomation/ (Foundry with gpt-5.4-mini and gpt-5.4, Playwright Workspaces browser connection, Storage, Functions, Application Insights connected to the project).
  • Coach walkthroughs with measured results per challenge, expected results per pack and troubleshooting.
  • Executive one-pager, Codespaces devcontainer (.devcontainer/03-azure-01-04-ai-13-frontier-operations) and the hack's line in 03-Azure/01-04-AI/Readme.md.

Validation

  • Full participant run through the portal on a live lab in uksouth, challenge by challenge; the screenshots come from that run, with personal and tenant details blurred.
  • 83 tests (setup tool, scorer, ERP and portal app, content and template checks).
  • az bicep build clean; the lab was deployed, used end to end and removed.

Known limits, documented in the challenges and walkthroughs:

  • Cloud Shell's built-in sign-in cannot get tokens for Microsoft Graph or Foundry data plane calls, so Challenge 1 starts with az login --use-device-code.
  • An agent keeps the skill version it was given; after republishing a skill, remove and add it again.
  • Harness agents have no browser Live View; Challenge 5 uses the Playwright browser activity log. Browser sessions are billed until closed, so the instructions tell the agent to close the browser.
  • gpt-5.4 needs about 150K TPM per lab for Challenge 7; the lab automation README covers the quota request.

Digvijay Chauhan and others added 30 commits October 31, 2026 16:01
…, setup tool, README, challenge 1

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Challenges 2-8 and the finish, with screenshot placeholders for the guided run
- frontierops publish-skill (SKILL.md package, made default) and score (answer key)
- Starter SKILL.md and process canvas templates
- Walkthroughs with measured results; expected results generated from the packs
- Lab automation and data READMEs, scenario diagram, content tests
- Codespaces config with azd for the stretch challenge; AI Readme entry

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…reenshots

Cloud Shell can't get a token for https://ai.azure.com, so grant-agent finds the agent identity in Entra by name.
publish-skill explains the one-time az login it needs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… values

Setup saves the dashboard values, so grant-agent, publish-skill and score need no IDs.
Each command in the challenges now says what it does and why.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… and Foundry

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reads the agent identity from Foundry first, Entra last; --identity skips the lookup.
The role check filters by scope instead of resolving the assignee in Entra.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… access

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… creates

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ooks

The playground's file reference doesn't download, so frontierops download fetches the newest file
an agent handed back into Cloud Shell. score places cells by address and quotes the agent's own category.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ed scores

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… lesson

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Digvijay Chauhan and others added 25 commits November 1, 2026 00:25
…office and traces

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…s edited skills

Cloud Shell without storage forgets files; Foundry holds the master copy of the skill.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…iew; skill versions warning

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…iew; skill versions warning

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…s tools

The portal warns that gpt-5.4 doesn't support the harness tools and would remove them; through the API
the same agent works on gpt-5.4.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…n one partner

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ipants can use

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…n files in the checkout

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…rness only at creation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…metadata)

The portal flags a Playwright connection without metadata.resourceId as a deprecated preview connection.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…; one updated one-pager

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Frosted-glass redaction of user name, account, tenant label, avatar, subscription and tenant IDs in 19 screenshots.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
….ps1, keyed ERP API key

- labautomation/shared-deploy-lab.ps1 registers the resource providers that infra/main.bicep deploys (including Microsoft.LoadTestService for Playwright), once per subscription before the labs start, and waits for them. Best-effort: a provider that cannot be registered is reported with the fix command instead of stopping every lab.
- deploy-lab.ps1 derives the ERP API key with New-MhhStablePassword -Purpose 'erp-api-key' instead of the unkeyed Get-MhhStableHash, so it cannot be worked out from the subscription, resource group or attendee IDs. Still stable across re-runs.
- dev/run-local.ps1 supplies New-MhhStablePassword and runs the shared hook first. README updated.
- Tested: dev/run-local.ps1 twice (2.6 and 2.0 min, same values); app setting and Foundry connection hold the same key; the ERP returns 401 without it and accepts it.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Summary sheet of the workbook the agent returned (30 of 30 on the distribution pack), replacing the last screenshot placeholder.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Digvijay
Digvijay (Digvijay) force-pushed the feature/frontier-operations-agents branch from 8e508c6 to d85e22c Compare November 2, 2026 01:19
Wider partner column so the names are readable.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Digvijay
Digvijay (Digvijay) marked this pull request as ready for review November 2, 2026 01:23
@Digvijay

Copy link
Copy Markdown
Author

Marco Weber (@qxsch) could you review this when you have time? Hack 13 (Frontier Operations) is complete: every challenge run in the portal with screenshots, 83 tests, and provisioning tested with the helper module from the adminpwsh image and with dev/run-local.ps1. The ERP API key now comes from New-MhhStablePassword. Thank you!

@qxsch
Marco Weber (qxsch) merged commit 9df3acb into microsoft:main Nov 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants