Skip to content

Add Pro-Code vs Low-Code Comparison multi-agent Copilot Studio sample - #179

Open
keshavk-msft wants to merge 1 commit into
pnp:mainfrom
keshavk-msft:sample/mcs-procode-vs-lowcode-comparison
Open

Add Pro-Code vs Low-Code Comparison multi-agent Copilot Studio sample#179
keshavk-msft wants to merge 1 commit into
pnp:mainfrom
keshavk-msft:sample/mcs-procode-vs-lowcode-comparison

Conversation

@keshavk-msft

Copy link
Copy Markdown
Contributor

Summary

Adds mcs-procode-vs-lowcode-comparison, a multi-agent Copilot Studio sample.

Choosing between a pro-code and a low-code approach drives development speed, total cost of ownership, scalability, governance, and hiring — and the answer usually depends on who you ask. This agent settles it by asking both.

An orchestrator normalizes the user's question, triggers a pro-code child agent and a low-code child agent in parallel with the same prompt, then merges the two perspectives into one structured report: two comparison tables, a verdict with justification, the specific constraints that sink the losing option, the levers that would change that verdict, and an executive summary.

Agent Role
Pro-Code vs Low-Code Comparison Orchestrator — normalizes, fans out, merges
Pro code Agents Toolkit, Bot Framework, Azure Functions/App Service/Kubernetes, Graph SDKs, Azure OpenAI, AI Search, Key Vault, App Insights
Low code Copilot Studio, Agent Builder, Power Automate/Apps/BI/Pages, Dataverse, standard connectors

First sample in the repo with connected child agents

As far as I can tell this is the repo's first Copilot Studio sample that ships child agents inside the solution. Worth flagging how they are represented, since it isn't documented anywhere obvious:

  • A child agent is a botcomponent with componenttype 9 and kind: AgentDialog, named <botschema>.agent.<name>.
  • That is the same component type as system topics (kind: AdaptiveDialog) and inline skills (kind: InlineAgentSkill) — the dialog family.

Two things tripped me up that may be useful to others:

  1. pac copilot pack cannot produce this. It rejects the agents/ directory outright (Unsupported directory: agents/.), and also rejects knowledge/. Packing a workspace that has child agents silently is not an option — the command fails. pac copilot push does support agents/, so authoring the workspace as files and pushing works.

  2. Child agents are not added to the solution automatically. After pushing, they existed server-side (a fresh pac copilot clone returned them) but were absent from pac solution export. They had to be added explicitly:

    pac solution add-solution-component --solutionUniqueName ProCodeVsLowCodeComparison `
      --component pnpcmp_ProCodevsLowCodeComparison.agent.procode `
      --componentType botcomponent --AddRequiredComponents

    Note --componentType needs the name (botcomponent); passing the numeric id 10373 errors with "Component Type Id is not known".

Checks run

  • Structure matches mcs-BlogPostHelper: .cdsproj + src/Other/{Solution,Customizations}.xml + src/bots/ + src/botcomponents/ (16 components) + .vscode/ + assets/
  • src/ round-trips through pac solution pack into a valid unmanaged solution zip
  • Both child agents present and confirmed as kind: AgentDialog
  • Solution manifest is unmanaged (Managed = 0), publisher pnpcommunity / prefix pnpcmp
  • README: Contributors, Version history with a real author, Minimal path to awesome with the pac import flow, tracking image as the last line, no trailing ---, no en-us locale segments, screenshots referenced from assets/
  • assets/sample.json: name is pnp-copilot-pro-dev-mcs-procode-vs-lowcode-comparison, url/downloadUrl correct, author matches the PR author, both thumbnails resolve to committed files
  • Scanned every text file for tenant identifiers, org URLs, mailboxes, and personal names — clean. The only GUID in the solution is a stock Copilot Studio action id inside the default EndofConversation topic.

Notes for reviewers

  • Screenshots are committed under assets/ per CONTRIBUTING.md. They were cropped from the original scenario recording to remove the browser chrome, which carried environment and bot GUIDs plus the recorder's name. The orchestrator appears under its development name, Comparing Agent Production; the README notes this directly beneath the images.
  • Visitor-stats URL uses the /copilot-pro-dev-samples/samples/<folder> form, matching the large majority of existing samples. The template and the review skill omit the /samples/ segment. Happy to flip it.
  • The original internal scenario grounded both child agents in SharePoint pages on an internal Microsoft tenant. Those knowledge sources are deliberately not included, since they would not resolve for anyone outside that tenant. The comparison logic lives entirely in the agent instructions, so the sample works standalone.

A Copilot Studio orchestrator that triggers a pro-code and a low-code child agent in parallel and merges their analysis into a single structured comparison report. Shipped as an unmanaged Dataverse solution, including both child agents as AgentDialog botcomponents.
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.

1 participant