Skip to content

Add agent icon authoring guidance to architect - #25

Open
alicja-gilderdale wants to merge 1 commit into
microsoft:mainfrom
alicja-gilderdale:feat/icon-authoring
Open

Add agent icon authoring guidance to architect#25
alicja-gilderdale wants to merge 1 commit into
microsoft:mainfrom
alicja-gilderdale:feat/icon-authoring

Conversation

@alicja-gilderdale

@alicja-gilderdale alicja-gilderdale commented Jul 21, 2026

Copy link
Copy Markdown

Summary

Adds authoring guidance for the agent icon to the Copilot Studio Architect agent (agents/copilot-studio-architect.md).

Motivation

The modern CLI-authoring template accepts an agent icon via a top-level icon.png file at the project root — pac copilot push encodes it as iconBase64 in the compiled bot definition and applies it to the agent identity server-side. The current architect guidance does not mention this convention, so architect-authored agents ship with the generic default icon and the maker has to upload one manually via the Copilot Studio UI after every push.

Empirically verified against a freshly authored CLI-authoring agent using the cliagent-1.0.0 template.

What changed

  • New section ## Agent Icon in agents/copilot-studio-architect.md (placed between ## Settings YAML and ## Knowledge YAML)
  • Documents the exact convention: icon.png at the project root (not assets/, not referenced from settings.mcs.yml)
  • Includes rules on format (192×192 PNG), the server-side encoding as iconBase64, and the pull/push round-trip behaviour

Verification (round-trip test)

Confirmed against a live modern agent:

  1. Uploaded a custom 192×192 PNG icon via the Copilot Studio UI
  2. pac copilot pull re-emitted the file to the project root as icon.png (3.4 KB PNG)
  3. Compiled .mcs/botdefinition.json contains "iconBase64": "iVBORw0KGgo..." — 5,037 chars of base64 encoding the PNG
  4. settings.mcs.yml was not modified — the icon is not referenced by any YAML property, the file-name convention is the entire interface
  5. Placing the same PNG at assets/icon.png (as the current architect would author) is silently ignored; the file must be at the project root for pac copilot push to pick it up

Scope

Documentation-only. No changes to plugin agents, commands, hooks, or scripts. The architect follows the guidance the next time it initializes a new agent project.

Testing

  • Existing agent files: no schema regression (only additive guidance in the architect markdown)
  • Manual verification described above
  • No new dependencies

Related work

The modern CLI-authoring template picks up icon.png from the project
root during pac copilot push and encodes it as iconBase64 in the
compiled bot definition. The architect's current guidance does not
mention this convention, so architect-authored agents ship with the
generic default icon and makers have to upload one via the UI.

This change adds a dedicated 'Agent Icon' section to
agents/copilot-studio-architect.md documenting:

- the on-disk convention: icon.png at project root (not assets/)
- 192x192 PNG format
- server-side encoding as iconBase64 in botdefinition.json
- pull/push round-trip behaviour

Verified round-trip: uploaded a custom icon via the Copilot Studio UI,
pac copilot pull emitted icon.png at the project root (3.4 KB), and the
compiled botdefinition.json contained a 5,037-char iconBase64 field.
Placing icon.png under assets/ is silently ignored.
@GiorgioUghini

Copy link
Copy Markdown
Contributor

Is this PR enough to get icons?

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