Skip to content

feat(ci): add prompt-agent e2e tests for copilot harness toolbox and skill samples - #1127

Merged
Zhijie Huang (hund030) merged 4 commits into
mainfrom
feat/prompt-agents-copilot-harness-e2e
Nov 10, 2026
Merged

Zhijie Huang (hund030) merged 4 commits into
mainfrom
feat/prompt-agents-copilot-harness-e2e

Conversation

@hund030

Copy link
Copy Markdown
Contributor

Summary

Enable prompt-agent cloud E2E CI coverage for the Microsoft Copilot harness toolbox and skill samples introduced in #1075 (04-foundry-toolbox, 05-skills, and microsoft-copilot-harness/quickstart-web-research).

Changes

  • .azure-pipelines/scripts/prompt-agents/prompt_agent_helpers.py: support plural toolboxes:, microsoft_copilot_toolset_preview / web_search tools, isolated azure.ai.skill archive renaming (ci-e2e-sk-<nonce>), and endpoint-scoped toolbox MCP connection verification (toolbox_connection_name, connection_absent, skill_absent).
  • .azure-pipelines/scripts/prompt-agents/run-prompt-agent.sh & cleanup-prompt-agent.sh: enable AZD_ALPHA_ENABLE_AGENTS_MANAGED_HARNESS=true, deploy and verify owned azure.ai.skill services, and delete/verify absence of owned skills and auto-created toolbox MCP connections during teardown and recovery.
  • .azure-pipelines/prompt-agent-tests/cli/** & blacklist.json: add test-spec.yml contracts and remove 04-foundry-toolbox, 05-skills, and microsoft-copilot-harness/quickstart-web-research from blacklist.json.
  • samples/cli/prompt-agents/microsoft-copilot-harness/quickstart-web-research/azure.yaml & provision-prompt-agent.sh: pin azure.ai.skills: '>=1.0.0-beta.8' so azd init installs the skills extension, and allow doc-only infra.path directories during disposable provisioning.

Manual Validation

  • Ran run-prompt-agent.sh and cleanup-prompt-agent.sh live against a Sweden Central Foundry project (gpt-5.4-mini) for samples/cli/prompt-agents/04-foundry-toolbox, samples/cli/prompt-agents/05-skills, and samples/cli/prompt-agents/microsoft-copilot-harness/quickstart-web-research; all three deployed, passed their test-spec.yml assertions, and verified absent cleanup for the temporary agent, toolbox, skill, and toolbox MCP connection.

…skill samples

- extend the prompt-agent CI runner and recovery script to manage plural `toolboxes:`, endpoint-scoped toolbox MCP connections, and `azure.ai.skill` resources
- add `test-spec.yml` contracts and enable `04-foundry-toolbox`, `05-skills`, and `microsoft-copilot-harness/quickstart-web-research` in the managed E2E matrix
…hecks

- verify preflight absence and post-deploy metadata for endpoint-scoped toolbox MCP connections, and accept `null` from empty `azd ai connection list`
- enforce mutually exclusive toolbox vs. skill topology in `verify_adopted()` and reject symlinks in source skill bundles before workspace copy
…ble regex

- rebind the verified toolbox MCP connection to `project-managed-identity` before CI invocation so app-only service principal callers do not fail on `UserEntraToken` OBO exchange
- use word-boundary anchors in `quickstart-web-research/test-spec.yml` so labeled fields match when streamed immediately after a pre-tool preamble
@hund030
Zhijie Huang (hund030) marked this pull request as ready for review November 10, 2026 03:06
Copilot AI balanced review requested due to automatic review settings November 10, 2026 03:06

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The manifest rewrite can follow an absolute symlink and overwrite a shared source manifest, while a crash before ownership is saved can block recovery cleanup and leave the toolbox deployed.

2 open issues
What changed in this PR

Extends prompt-agent cloud E2E CI to cover the Copilot harness toolbox, skills, and web-research samples introduced in #1075.

Changes:

  • Adds test contracts and enables CI discovery for three previously excluded samples.
  • Extends deployment, attachment verification, and cleanup to owned skills and toolbox MCP connections.
  • Updates provisioning compatibility, extension requirements, lifecycle tests, and cancellation time.
File Description
samples/​cli/​prompt-agents/​microsoft-copilot-harness/​quickstart-web-research/​azure.yaml Requires the skills extension.
samples/​cli/​prompt-agents/​AGENTS.md Removes file-based skills from unsupported capabilities.
.azure-pipelines/​scripts/​prompt-agents/​tests/​test_prompt_agent_recovery.py Covers skill and connection recovery safeguards.
.azure-pipelines/​scripts/​prompt-agents/​tests/​test_prompt_agent_pipeline.py Updates cancellation-budget expectations.
.azure-pipelines/​scripts/​prompt-agents/​tests/​test_prompt_agent_lifecycle.py Covers managed-resource deployment and cleanup.
.azure-pipelines/​scripts/​prompt-agents/​tests/​test_prompt_agent_helpers.py Tests validation, ownership, and skill-bundle handling.
.azure-pipelines/​scripts/​prompt-agents/​run-prompt-agent.sh Deploys and cleans up skills and toolbox connections.
.azure-pipelines/​scripts/​prompt-agents/​README.md Documents expanded adapter capabilities and cleanup.
.azure-pipelines/​scripts/​prompt-agents/​provision-prompt-agent.sh Allows documentation-only infrastructure directories.
.azure-pipelines/​scripts/​prompt-agents/​prompt_agent_helpers.py Adds managed-resource validation and isolated skill naming.
.azure-pipelines/​scripts/​prompt-agents/​cleanup-prompt-agent.sh Recovers owned skills and toolbox connections.
.azure-pipelines/​scripts/​prompt-agents/​blacklist.json Enables the three samples for CI discovery.
.azure-pipelines/​prompt-agents-samples-ci.yml Increases cancellation time for cleanup.
.azure-pipelines/​prompt-agent-tests/​cli/​microsoft-copilot-harness/​quickstart-web-research/​test-spec.yml Adds official-source research assertions.
.azure-pipelines/​prompt-agent-tests/​cli/​05-skills/​test-spec.yml Checks required travel-guide sections.
.azure-pipelines/​prompt-agent-tests/​cli/​04-foundry-toolbox/​test-spec.yml Adds web-search response assertions.

Review effort: Balanced

@hund030
Zhijie Huang (hund030) enabled auto-merge (squash) November 10, 2026 04:27
@hund030
Zhijie Huang (hund030) merged commit 4da4629 into main Nov 10, 2026
35 of 36 checks passed
@hund030
Zhijie Huang (hund030) deleted the feat/prompt-agents-copilot-harness-e2e branch November 10, 2026 05:03

This branch was successfully deployed

1 active deployment
L4-validation — 02940d59 Deployed Nov 10, 2026 by hund030 via trusted #920
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.

3 participants