From 34b6a1a7ec946861144fd2b7527c66cf5fcd3a3b Mon Sep 17 00:00:00 2001 From: Alejandro Lopez Date: Tue, 22 Sep 2026 14:05:46 -0500 Subject: [PATCH] Correct Agent 365 Lifecycle Atlas setup and runtime-integration guidance Update the atlas's 365 setup all and observability content and add a runtime-integration diagram, grounded in public Microsoft Learn and the pinned public microsoft/Agent365-devTools source. - Runtime-config sync depends on detecting a supported project (with a config-file directory fallback), not on a project-path flag; only --agent-registration-only deliberately skips it, so the config-free path can still write configuration. - Scope the setup sequence diagram, heading, and accessible description to the default standard-agent, non-AI-teammate path; clarify --aiteammate provisions only the blueprint and permissions during setup. - Clarify language-specific generated defaults: .NET TokenValidation.Enabled=false and EnableAgent365Exporter ??= false (explicit values preserved); Node.js/Python ENABLE_A365_OBSERVABILITY_EXPORTER=false; written config is not proof the SDK, token validation, or exporter is active. - Bind gen_ai.agent.id to the agent's authenticated appId / OAuth client_id, never the Entra object or blueprint ID; add per-request identity resolution for shared multi-instance hosts. - Add a "What changes in my code?" runtime-integration architecture diagram and illustrative code-area table describing customer-hosted integration boundaries. - Label the package lifecycle as Microsoft 365 package distribution. - Bump version to 1.3.0 and update the changelog and review dates. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../agent-365-lifecycle-atlas/CHANGELOG.md | 22 + .../agent-365-lifecycle-atlas/README.md | 22 +- .../agent-365-lifecycle-atlas/index.html | 534 +++++++++++++++++- 3 files changed, 573 insertions(+), 5 deletions(-) diff --git a/copilot-agent-strategy/agent-365-lifecycle-atlas/CHANGELOG.md b/copilot-agent-strategy/agent-365-lifecycle-atlas/CHANGELOG.md index 28df7c2..2591ed2 100644 --- a/copilot-agent-strategy/agent-365-lifecycle-atlas/CHANGELOG.md +++ b/copilot-agent-strategy/agent-365-lifecycle-atlas/CHANGELOG.md @@ -2,6 +2,28 @@ All notable changes to the Agent 365 Lifecycle Atlas are documented here. +## 1.3.0 - 2026-09-22 + +- Corrected `a365 setup all` runtime-configuration synchronization: it depends on + detecting a supported project (with a configuration-file-directory fallback), + not on a project-path flag alone, so the config-free path can still write + configuration and only `--agent-registration-only` deliberately skips it. +- Scoped the setup sequence diagram, heading, and accessible description to the + default standard-agent, non-AI-teammate path, and clarified that `--aiteammate` + provisions only the blueprint and permissions during setup. +- Clarified language-specific generated defaults: .NET `TokenValidation.Enabled = + false` and `EnableAgent365Exporter ??= false` (explicit values preserved); + Node.js/Python `ENABLE_A365_OBSERVABILITY_EXPORTER=false`. Noted that written + configuration does not prove the SDK, token validation, or exporter is active. +- Corrected observability identity binding so `gen_ai.agent.id` equals the agent's + authenticated `appId` / OAuth `client_id`, never the Entra object or blueprint + ID, and added per-request identity resolution for shared multi-instance hosts. +- Added a "What changes in my code?" runtime-integration architecture diagram and + illustrative code-area table describing customer-hosted integration boundaries. +- Labeled the package lifecycle specifically as Microsoft 365 package distribution. +- Corrections grounded in public Microsoft Learn and the pinned public + `microsoft/Agent365-devTools` source reviewed on September 22, 2026. + ## 1.2.3 - 2026-09-16 - Aligned connected-platform registry sync labels with the public Microsoft diff --git a/copilot-agent-strategy/agent-365-lifecycle-atlas/README.md b/copilot-agent-strategy/agent-365-lifecycle-atlas/README.md index c19740a..71f60c4 100644 --- a/copilot-agent-strategy/agent-365-lifecycle-atlas/README.md +++ b/copilot-agent-strategy/agent-365-lifecycle-atlas/README.md @@ -6,9 +6,9 @@ summary: >- Explore Agent 365 lifecycles, discovery, identity, tooling, telemetry, admin actions, and 18 public API endpoints in one atlas. author: Alejandro Lopez -version: 1.2.3 +version: 1.3.0 published: "2026-09-10" -updated: "2026-09-16" +updated: "2026-09-22" tags: - agent-365 - architecture @@ -59,6 +59,24 @@ The atlas keeps generally available, preview, and beta capabilities visibly separate. Preview and beta details must be checked against current Microsoft documentation for the target tenant, cloud, and scenario before implementation. +## September 22, 2026 runtime-integration update + +This update corrects the `a365 setup all` runtime-configuration behavior and adds +a "What changes in my code?" runtime-integration diagram. Runtime-config +synchronization now depends on detecting a supported project (with a +configuration-file-directory fallback), not simply on a project-path flag, so the +config-free path can still write configuration; only `--agent-registration-only` +deliberately skips it. The setup sequence is scoped to the default standard-agent, +non-AI-teammate path. Language-specific generated defaults are clarified: .NET sets +`TokenValidation.Enabled = false` and applies `EnableAgent365Exporter ??= false` +(preserving explicit values), while Node.js and Python set +`ENABLE_A365_OBSERVABILITY_EXPORTER=false`. The observability guidance now binds +`gen_ai.agent.id` to the agent's authenticated `appId` / OAuth `client_id` rather +than the Entra object or blueprint ID, with per-request identity resolution for +shared multi-instance hosts. Package lifecycle is labeled Microsoft 365 package +distribution. These corrections are grounded in public Microsoft Learn and the +pinned public `microsoft/Agent365-devTools` source reviewed on September 22, 2026. + ## September 16, 2026 setup update This additive update explains the seven stages behind `a365 setup all`, including diff --git a/copilot-agent-strategy/agent-365-lifecycle-atlas/index.html b/copilot-agent-strategy/agent-365-lifecycle-atlas/index.html index 2ef4821..35e90b2 100644 --- a/copilot-agent-strategy/agent-365-lifecycle-atlas/index.html +++ b/copilot-agent-strategy/agent-365-lifecycle-atlas/index.html @@ -461,15 +461,543 @@ a365 cleanup instance a365 cleanup blueprint a365 cleanup azure -a365 cleanup
AI-guided skills in the current quickstart wrap these commands: a365-setup, make-a365-agent, make-ai-teammate, instrument-observability, add-workiq-tools, test-local. They are workflow automation, not additional control-plane resources.
CLI auth: uses the Microsoft-managed enterprise application when available. Native Windows uses WAM; WSL / macOS / Linux use device code.
05A

Behind a365 setup all — provisioning identity, binding code

a365 setup all does not upload, relocate, or run the agent’s code. It builds a chain of references: hosted code → runtime SDK configuration → the Entra Agent Identity Blueprint credential and application ID → a child agent identity → an Agent 365 registration → an optional Microsoft 365 messaging callback and, separately, a catalog package. The URL is never registered globally: it is a routing destination tied to the named blueprint, tenant, and identity, and the hosted app must still implement the expected messaging route and validate the tokens it receives (token flows, SDK & CLI).

The runtime-config write is conditional. With a project path configured, setup updates the .NET appsettings.json or the Node/Python .env at the end of the run. The config-free path a365 setup all --agent-name "<name>" has no project to synchronize and skips that step — it still provisions identity and permissions.

Current public source behavior — not a universal guarantee. The documented workflow is the Learn setup reference (checked 2026-09-16, page updated 2026-09-01) [32]. The step-by-step implementation below was traced in the public microsoft/Agent365-devTools source at pinned commit 08e48a9 (2026-09-11) [36]. The NuGet package (observed 1.1.221) exposes no reliable source-commit mapping, so this is current public source behavior, not guaranteed for every installed binary. When troubleshooting, record a365 --version and read a365 setup all --help for the flags your build supports.

The setup sequence — seven steps

Solid arrows are calls the CLI drives; dashed arrows are returns. Two OPT frames mark work that only happens under a condition. The dashed banner is a different lifecycle that setup does not perform.

What a365 setup all does, step by stepA sequence with five participants left to right: Developer plus the a365 CLI (the operator that drives every step); Microsoft Entra ID; the Agent Identity API; Agent 365 registration; and your Local project holding runtime configuration and hosted code. Numbered steps flow top to bottom. Step 1 the CLI creates or reuses the Entra Agent Identity Blueprint application and adds its api URI and delegated scope. Step 2 it creates the tenant blueprint service principal, a client secret, and inheritable permissions; Entra returns the blueprint IDs and credential, stored in a365.generated.config.json. Step 3 admin consent and app-role grants are completed by a Global Administrator or handed off. Step 4 a child agent identity service principal is created, returning agenticAppId. Step 5, the highlighted primary step, registers the agent and returns agentRegistrationId. Step 6 is optional and only runs with the m365 flag: it registers the HTTPS messaging callback for this blueprint and tenant. Step 7 is optional and only runs when a project path is configured: the CLI syncs the .NET appsettings.json or the Node and Python .env file. A separate dashed banner at the bottom shows that publish, manifest upload, catalog availability, and runtime deployment are a distinct lifecycle, not part of setup all.Developer + a365 CLIOPERATORMicrosoft Entra IDDIRECTORYAgent Identity APIIDENTITYAgent 365 registrationCONTROL PLANELocal projectYOUR HOSTOPT[ --m365 opt-in · endpoint may defer ]OPT[ project path configured · else skipped ]Create / reuse Blueprint app1Principal · secret · inheritable perms2Blueprint IDs + credentialAdmin consent / grants3Create child agent identity4agenticAppId (child SP object ID)Register agent → agentRegistrationId5Register HTTPS callback6Sync appsettings.json / .env7Separate lifecycle — NOT a365 setup allDeploy & host separately | publish → ZIP → admin upload → availability / approval

Source: Agent 365 CLI setup reference [32], CLI reference [9], and the pinned public DevTools source [36]. Placeholder identifiers only — no tenant data.

Step detail

#OperationAuthority / actorCreated or updatedPersists in
1Find or create Blueprint application (adds api://{blueprintAppId} and the access_agent_as_user delegated scope)Agent ID Developer or higherMultitenant Entra Agent Identity Blueprint application; sponsor/owner and manager relationships attemptedBlueprint app ID + object ID
2Create tenant principal, client secret, and inheritable permissionsBlueprint owner / authorized callerTenant-local blueprint service principal, a generated credential, and the blueprint inheritablePermissions policya365.generated.config.json + Entra
3Complete admin consent / app-role grantsGlobal Administrator, or deferred handoffDelegated admin consent and, for S2S, application-role assignments on the blueprint principalBlueprint principal grants (or Action Required)
4Create child agent identityAuthorized operatorChild microsoft.graph.agentIdentity service principal linked to the blueprintagenticAppId (child SP object ID)
5Register the agentOperator with registration permissionAgent 365 registration record linking blueprint and identityagentRegistrationId
6Optional (--m365): register the HTTPS messaging callbackOperatorAssociates blueprint + tenant + endpoint through the Microsoft 365 messaging platformGenerated endpoint state
7Optional (project configured): synchronize runtime configurationLocal CLI processUpdates .NET appsettings.json or Node/Python .envLocal project files
Staged, not strictly linear. The blueprint-interior work (identifier URI, scope, principal, secret, inheritance) is grouped, and re-runs reconcile or skip parts — do not read the seven steps as a fixed chronology. --aiteammate provisions only the blueprint and permissions during setup; it does not by itself create a mailbox, Teams presence, or full user-backed experience (later AI-teammate workflow, Frontier preview). --authmode obo (default) keeps a human token subject; s2s uses application permissions; both configures each. Agentic-User is a separate user-backed scenario, not a spelling of OBO or S2S [4].

Object & ID binding — how the code binds to the Blueprint

The customer question — “how does it bind a custom agent to the Entra Blueprint?” — is answered by these identifiers. Setup writes them into runtime configuration; a365 publish later stamps one into the package manifest.

ID / propertyWhat it isWhere it binds
agentBlueprintIdBlueprint application (client) IDRuntime Connections.ServiceConnection.Settings.ClientId and AgentId, the token audience, and manifest.json agentIdentityBlueprintId (written later by a365 publish)
agentBlueprintObjectIdDirectory object ID of the app registrationApplication operations — credentials, owners
agentBlueprintServicePrincipalObjectIdTenant-local service-principal object IDPermission grants and app-role assignments target this principal
agenticAppIdChild agent identity SP object ID returned/stored by the current CLI (despite the property name — not the blueprint client ID)Observability AgentId; the child identity’s own grants and inheritance
agentRegistrationIdAgent 365 registration-record IDRegistration lookup and reuse — neither the blueprint ID nor the identity object ID
clientAppIdThe CLI’s human-operator management client-app IDSigns the operator in and calls management APIs — not the runtime agent identity
tenantIdEntra tenantPrincipal, identity, grants, registration, and the runtime authority endpoint
messagingEndpointHTTPS callback, usually ending /api/messagesOnly with --m365: routes Microsoft 365 traffic for this blueprint + tenant — not a generic, automatic URL binding

The endpoint is a routing destination for the named blueprint, tenant, and identity; the hosted app must expose and adopt the expected SDK-validated messaging route, not arbitrary generated logic. See §03 Identity and §04 Token flows. Source [4].

Runtime configuration written by setup

Not a production recipe — harden before external traffic. The pinned source writes TokenValidation.Enabled = false and EnableAgent365Exporter = false, and the runtime secret lands in plaintext in .env / appsettings.json (the generated a365.generated.config.json secret is DPAPI-protected only on Windows; plaintext elsewhere). Before any external traffic, deliberately enable and configure token validation, wire real instrumentation, and use managed secret storage, or replace shared-secret authentication with a supported managed-identity/federated-credential configuration (conditional, not automatic). Setup does not provision a host or install the SDK, and the CLI warns not to commit these files. Runtime configuration source.

Keys the CLI updates (placeholder identifiers only) — Credential protection source:

KeyValue / note
Connections.ServiceConnection.SettingsAuthType, AuthorityEndpoint (tenant), ClientId and AgentId = blueprint app ID, ClientSecret (plaintext when synchronized; protect in deployment), Scopes
ConnectionsMapMaps every service URL to the connection
TokenValidationAudiences = blueprint app ID, TenantId — Enabled written false by the pinned source
Agent365ObservabilityAgentId (child identity), AgentBlueprintId, ClientId, TenantId
EnableAgent365ExporterWritten false by the pinned source

Permissions — three separate layers

LayerWhat it does
1 · DeclarationSetup computes the needed resources/scopes from built-in Graph requirements, ToolingManifest.json (MCP audiences), Observability, Power Platform, an optional Messaging Bot, and customBlueprintPermissions. This grants nothing by itself.
2 · Inheritable permissionsConfigures the blueprint so child agent identities can inherit allowed scopes and app roles. A correct inheritance policy can still have nothing effective to inherit.
3 · Grants / admin consentDelegated admin consent (and, for S2S, app-role assignments) against the blueprint principal. A Global Administrator can complete this during setup; a non-GA receives consent URLs and an Action Required handoff.

An authorized developer can build much of the structure, but only a tenant admin turns intent into tenant-wide consent. Work IQ / MCP scopes declared in the manifest are not granted — run a365 setup permissions mcp after approval (§06 MCP tooling); the runtime code still loads the tools separately.

Representative Microsoft Graph calls

Representative of the setup path in the pinned source — not the complete call set (lookups, OAuth-grant inspection, app-role assignment, and endpoint registration also occur). Several live operations use Graph beta; do not rewrite them as v1.0 equivalents. This does not change the §09 endpoint catalog.

OperationMethod & pathSurface
Create blueprint applicationPOST https://graph.microsoft.com/beta/applicationsbeta
Create tenant blueprint principalPOST https://graph.microsoft.com/v1.0/serviceprincipals/graph.agentIdentityBlueprintPrincipalv1.0
Add client secretPOST https://graph.microsoft.com/v1.0/applications/{blueprintObjectId}/addPasswordv1.0
Configure inheritable permissionsPOST https://graph.microsoft.com/beta/applications/microsoft.graph.agentIdentityBlueprint/{blueprintId}/inheritablePermissionsbeta
Create child agent identityPOST https://graph.microsoft.com/beta/servicePrincipals/Microsoft.Graph.AgentIdentitybeta
Register the agentPOST https://graph.microsoft.com/beta/copilot/agentRegistrationsbeta

Source: pinned public DevTools setup path [36]; Graph method references [12] [13] [14] [15]; CLI setup reference [32].

What setup all does not do

Out of scope for setup

  • Upload, host, or run the agent’s code, or deploy it to Azure/AWS/GCP
  • Invent a production URL, or register every URL on a domain
  • Add the SDK, auth middleware / token validation, or register MCP tools into arbitrary app code
  • Grant tenant-wide consent when the operator lacks the admin role, or treat a Work IQ request as approved consent
  • Create an Agentic-User / mailbox by default, or make an agent discoverable just because the blueprint exists
  • Upload manifest.zip, approve it, or create a Teams instance

Separate lifecycle

Registration during setup is programmatic only. Catalog visibility is a distinct chain:

Deploy and host the runtime separately. The package lifecycle is a365 publish → manifest.zip → admin-center upload → availability / approval → instance / hire. See §08 Administration.

Documentation drift. The current pinned source treats infrastructure provisioning as removed / no-op for the default externally-hosted path, while the Learn setup page still lists an Azure subscription prerequisite. Treat Azure hosting as optional here, not mandatory: Hosting is independent. For Microsoft 365 messaging, register the deployed HTTPS callback with --m365 or the endpoint-only command. See §10 Caveats. Sources [32] [36].

Re-running, validating & recovering

Setup uses targeted reuse and reconciliation, not universal atomic idempotency. It reuses the blueprint by display name, revalidates and replaces invalid/expired secrets, verifies the stored agentRegistrationId before reuse, and saves state before later steps so partial progress survives. Preserve a365.generated.config.json — do not delete objects to “retry.” Review the final Action Required block for pending consent, and recover narrowly with --agent-registration-only (registration) or setup blueprint --endpoint-only (callback).

# READ-ONLY -- inspects, never mutates +a365 cleanup
AI-guided skills in the current quickstart wrap these commands: a365-setup, make-a365-agent, make-ai-teammate, instrument-observability, add-workiq-tools, test-local. They are workflow automation, not additional control-plane resources.
CLI auth: uses the Microsoft-managed enterprise application when available. Native Windows uses WAM; WSL / macOS / Linux use device code.
+
+
+05A +

Behind a365 setup all — provisioning identity, binding code

+
+

+a365 setup all does not upload, relocate, or run the agent’s code. It builds a chain of references: hosted code → runtime SDK configuration → the Entra Agent Identity Blueprint credential and application ID → a child agent identity → an Agent 365 registration → an optional Microsoft 365 messaging callback and, separately, a catalog package. The URL is never registered globally: it is a routing destination tied to the named blueprint, tenant, and identity, and the hosted app must still implement the expected messaging route and validate the tokens it receives (token flows, SDK & CLI).

+

Runtime configuration synchronization depends on detecting a supported project, not simply on a project-path flag. The pinned ProjectSettingsSyncHelper uses DeploymentProjectPath, or falls back to the configuration-file directory when that path is missing or does not exist. It detects .NET, Node.js, or Python and updates appsettings.json or .env; without a usable directory or supported project, synchronization is skipped. Config-free setup a365 setup all --agent-name "<name>" can therefore update runtime configuration. The standard-agent orchestrator deliberately skips synchronization for --agent-registration-only. [36] +

+
+Current public source behavior — not a universal guarantee. The documented workflow is the Learn setup reference (checked 2026-09-16, page updated 2026-09-01) [32]. The step-by-step implementation below was traced in the public microsoft/Agent365-devTools source at pinned commit 08e48a9 (2026-09-11) [36]. The NuGet package (observed 1.1.221) exposes no reliable source-commit mapping, so this is current public source behavior, not guaranteed for every installed binary. When troubleshooting, record a365 --version and read a365 setup all --help for the flags your build supports.
+

Standard-agent setup sequence — default / non-AI-teammate path

+

Solid arrows are calls the CLI drives; dashed arrows are returns. Two OPT frames mark work that only happens under a condition. The dashed banner is a different lifecycle that setup does not perform. This traces the default standard-agent path; --aiteammate provisions only the blueprint and permissions during setup, and --agent-registration-only runs the registration step alone.

+
+ +Standard-agent setup sequence for a365 setup all — default / non-AI-teammate path, step by step +A sequence for the default, non-AI-teammate standard-agent path, with five participants left to right: Developer plus the a365 CLI (the operator that drives every step); Microsoft Entra ID; the Agent Identity API; Agent 365 registration; and your Local project holding runtime configuration and hosted code. Numbered steps flow top to bottom. Step 1 the CLI creates or reuses the Entra Agent Identity Blueprint application and adds its api URI and delegated scope. Step 2 it creates the tenant blueprint service principal, a client secret, and inheritable permissions; Entra returns the blueprint IDs and credential, stored in a365.generated.config.json. Step 3 admin consent and app-role grants are completed by a Global Administrator or handed off. Step 4 a child agent identity service principal is created, returning agenticAppId. Step 5, the highlighted primary step, registers the agent and returns agentRegistrationId. Step 6 is optional and only runs with the m365 flag: it registers the HTTPS messaging callback for this blueprint and tenant. Step 7 runs on the normal path: the CLI writes runtime configuration to the configured project, or to the directory of the a365 config file when no project path is set, syncing the .NET appsettings.json or the Node and Python .env only when a supported project is detected; it is skipped when no supported project is found or when the run uses agent-registration-only. A separate dashed banner at the bottom shows that publish, manifest upload, catalog availability, and runtime deployment are a distinct lifecycle, not part of setup all. + + + + + + + + +Standard-agent setup sequence — default / non-AI-teammate path + + + + + + + +Developer + a365 CLI +OPERATOR + +Microsoft Entra ID +DIRECTORY + +Agent Identity API +IDENTITY + +Agent 365 registration +CONTROL PLANE + +Local project +YOUR HOST + + + + + + + +OPT +[ --m365 opt-in · endpoint may defer ] + + +OPT +[ supported project detected · not --agent-registration-only ] + + +Create / reuse Blueprint app + +1 + + +Principal · secret · inheritable perms + +2 + + +Blueprint IDs + credential + + +Admin consent / grants + +3 + + +Create child agent identity + +4 + + +agenticAppId (child SP object ID) + + +Register agent → agentRegistrationId + +5 + + +Register HTTPS callback + +6 + + +Sync appsettings.json / .env + +7 + + +Microsoft 365 package distribution — separate lifecycle, NOT a365 setup all +Deploy & host separately | a365 publish → ZIP → admin upload → availability / approval + +
+

Source: Agent 365 CLI setup reference [32], CLI reference [9], and the pinned public DevTools source [36]. Placeholder identifiers only — no tenant data.

+

Step detail

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#OperationAuthority / actorCreated or updatedPersists in
1Find or create Blueprint application (adds api://{blueprintAppId} and the access_agent_as_user delegated scope)Agent ID Developer or higherMultitenant Entra Agent Identity Blueprint application; sponsor/owner and manager relationships attemptedBlueprint app ID + object ID
2Create tenant principal, client secret, and inheritable permissionsBlueprint owner / authorized callerTenant-local blueprint service principal, a generated credential, and the blueprint inheritablePermissions policy +a365.generated.config.json + Entra
3Complete admin consent / app-role grantsGlobal Administrator, or deferred handoffDelegated admin consent and, for S2S, application-role assignments on the blueprint principalBlueprint principal grants (or Action Required)
4Create child agent identityAuthorized operatorChild microsoft.graph.agentIdentity service principal linked to the blueprint +agenticAppId (child SP object ID)
5Register the agentOperator with registration permissionAgent 365 registration record linking blueprint and identity +agentRegistrationId +
6 +Optional (--m365): register the HTTPS messaging callbackOperatorAssociates blueprint + tenant + endpoint through the Microsoft 365 messaging platformGenerated endpoint state
7 +Normal path (skipped by --agent-registration-only or when no supported project is found): synchronize runtime configurationLocal CLI processWrites .NET appsettings.json or Node/Python .env in the project path, or the a365 config-file directory as fallbackProject or config-file directory
+
+
+Staged, not strictly linear. The blueprint-interior work (identifier URI, scope, principal, secret, inheritance) is grouped, and re-runs reconcile or skip parts — do not read the seven steps as a fixed chronology. --aiteammate provisions only the blueprint and permissions during setup; it does not by itself create a mailbox, Teams presence, or full user-backed experience (later AI-teammate workflow, Frontier preview). --authmode obo (default) keeps a human token subject; s2s uses application permissions; both configures each. Agentic-User is a separate user-backed scenario, not a spelling of OBO or S2S [4].
+

Object & ID binding — how the code binds to the Blueprint

+

The customer question — “how does it bind a custom agent to the Entra Blueprint?” — is answered by these identifiers. Setup writes them into runtime configuration whenever a supported project is detected (the conditional write described above); a365 publish later stamps one into the package manifest.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID / propertyWhat it isWhere it binds
agentBlueprintIdBlueprint application (client) IDRuntime Connections.ServiceConnection.Settings.ClientId and AgentId, the token audience, and manifest.json agentIdentityBlueprintId (written later by a365 publish)
agentBlueprintObjectIdDirectory object ID of the app registrationApplication operations — credentials, owners
agentBlueprintServicePrincipalObjectIdTenant-local service-principal object IDPermission grants and app-role assignments target this principal
agenticAppIdChild agent identity SP object ID returned/stored by the current CLI (despite the property name — not the blueprint client ID)Written by the current CLI into the generated Observability AgentId config value, and used for the child identity’s own grants and inheritance. That generated mapping is not the validated runtime identity contract: ingestion binds every span’s gen_ai.agent.id to the agent’s authenticated appId / OAuth client_id (the token appid/azp), never an Entra object id. Verify the configured value resolves to the identity appId before trusting it — a written config does not prove the exported identity is correct (observability identity contract, §07 ingestion, [19]).
agentRegistrationIdAgent 365 registration-record IDRegistration lookup and reuse — neither the blueprint ID nor the identity object ID
clientAppIdThe CLI’s human-operator management client-app IDSigns the operator in and calls management APIs — not the runtime agent identity
tenantIdEntra tenantPrincipal, identity, grants, registration, and the runtime authority endpoint
messagingEndpointHTTPS callback, usually ending /api/messages +Only with --m365: routes Microsoft 365 traffic for this blueprint + tenant — not a generic, automatic URL binding
+
+

The endpoint is a routing destination for the named blueprint, tenant, and identity; the hosted app must expose and adopt the expected SDK-validated messaging route, not arbitrary generated logic. See §03 Identity and §04 Token flows. Source [4].

+

Runtime configuration written by setup

+
+Not a production recipe — harden before external traffic. The exact writers are language-specific. For .NET the pinned source sets TokenValidation["Enabled"] = false and applies EnableAgent365Exporter ??= false at the config root — the exporter flag is written only when it is missing or null, so an explicit existing true/false is preserved. For Node.js and Python it sets ENABLE_A365_OBSERVABILITY_EXPORTER=false, replacing the first case-insensitive matching KEY= line or appending it. Either way the runtime secret lands in plaintext in .env / appsettings.json (the generated a365.generated.config.json secret is DPAPI-protected only on Windows; plaintext elsewhere). Before any external traffic, deliberately enable and configure token validation, wire real instrumentation, and use managed secret storage, or replace shared-secret authentication with a supported managed-identity / federated-credential configuration (conditional, not automatic). These generated values change behavior only if the app actually consumes them: a written config file or an Agent 365 registration does not prove the SDK, auth middleware / token validation, or trace exporter is installed or active. Setup does not provision a host or install the SDK, and the CLI warns not to commit these files. Runtime configuration source.
+

Keys the CLI updates (placeholder identifiers only) — Credential protection source:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyValue / note
Connections.ServiceConnection.SettingsAuthType, AuthorityEndpoint (tenant), ClientId and AgentId = blueprint app ID, ClientSecret (plaintext when synchronized; protect in deployment), Scopes
ConnectionsMapMaps every service URL to the connection
TokenValidationAudiences = blueprint app ID, TenantId. Enabled is written false (.NET only)
Agent365ObservabilityThe pinned helper copies agenticAppId into AgentId, falling back to agentBlueprintId when absent. Verify or resolve the agent identity’s appId for runtime ingestion; neither this copy nor its fallback proves the authenticated identity matches. AgentBlueprintId is separate blueprint metadata; ClientId and TenantId configure authentication.
EnableAgent365Exporter.NET: EnableAgent365Exporter ??= false (set only when missing/null; explicit values preserved). Node/Python: ENABLE_A365_OBSERVABILITY_EXPORTER=false replaces the first matching key or is appended
+
+

Permissions — three separate layers

+
+ + + + + + + + + + + + + + + + + + + + + +
LayerWhat it does
1 · DeclarationSetup computes the needed resources/scopes from built-in Graph requirements, ToolingManifest.json (MCP audiences), Observability, Power Platform, an optional Messaging Bot, and customBlueprintPermissions. This grants nothing by itself.
2 · Inheritable permissionsConfigures the blueprint so child agent identities can inherit allowed scopes and app roles. A correct inheritance policy can still have nothing effective to inherit.
3 · Grants / admin consentDelegated admin consent (and, for S2S, app-role assignments) against the blueprint principal. A Global Administrator can complete this during setup; a non-GA receives consent URLs and an Action Required handoff.
+
+

An authorized developer can build much of the structure, but only a tenant admin turns intent into tenant-wide consent. Work IQ / MCP scopes declared in the manifest are not granted — run a365 setup permissions mcp after approval (§06 MCP tooling); the runtime code still loads the tools separately.

+

Representative Microsoft Graph calls

+

Representative of the setup path in the pinned source — not the complete call set (lookups, OAuth-grant inspection, app-role assignment, and endpoint registration also occur). Several live operations use Graph beta; do not rewrite them as v1.0 equivalents. This does not change the §09 endpoint catalog.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OperationMethod & pathSurface
Create blueprint application +POST https://graph.microsoft.com/beta/applications + + +beta +
Create tenant blueprint principal +POST https://graph.microsoft.com/v1.0/serviceprincipals/graph.agentIdentityBlueprintPrincipal + + +v1.0 +
Add client secret +POST https://graph.microsoft.com/v1.0/applications/{blueprintObjectId}/addPassword + + +v1.0 +
Configure inheritable permissions +POST https://graph.microsoft.com/beta/applications/microsoft.graph.agentIdentityBlueprint/{blueprintId}/inheritablePermissions + + +beta +
Create child agent identity +POST https://graph.microsoft.com/beta/servicePrincipals/Microsoft.Graph.AgentIdentity + + +beta +
Register the agent +POST https://graph.microsoft.com/beta/copilot/agentRegistrations + + +beta +
+
+

Source: pinned public DevTools setup path [36]; Graph method references [12] [13] [14] [15]; CLI setup reference [32].

+

What setup all does not do

+
+
+

Out of scope for setup

+
    +
  • Upload, host, or run the agent’s code, or deploy it to Azure/AWS/GCP
  • +
  • Invent a production URL, or register every URL on a domain
  • +
  • Add the SDK, auth middleware / token validation, or register MCP tools into arbitrary app code
  • +
  • Grant tenant-wide consent when the operator lacks the admin role, or treat a Work IQ request as approved consent
  • +
  • Create an Agentic-User / mailbox by default, or make an agent discoverable just because the blueprint exists
  • +
  • Upload manifest.zip, approve it, or create a Teams instance
  • +
+
+
+

Microsoft 365 package distribution — a separate lifecycle

+

Setup’s registration is programmatic only. Three outcomes are distinct and do not imply one another:

+
    +
  • +Registration creates a management / inventory record and identity references — it does not by itself guarantee every end-user UI surface shows the agent.
  • +
  • +Package distribution — a365 publish → manifest.zip → admin-center upload → availability / approval → instance / hire — is what lights up the applicable Microsoft 365 experiences; instance / hire applies only where the agent type supports it.
  • +
  • +Runtime authentication and telemetry are the hosted app’s own responsibility.
  • +
+

Deploy and host the runtime separately. See §08 Administration.

+
+
+
+Documentation drift. The current pinned source treats infrastructure provisioning as removed / no-op for the default externally-hosted path, while the Learn setup page still lists an Azure subscription prerequisite. Treat Azure hosting as optional here, not mandatory: Hosting is independent. For Microsoft 365 messaging, register the deployed HTTPS callback with --m365 or the endpoint-only command. See §10 Caveats. Sources [32] [36].
+

Re-running, validating & recovering

+

Setup uses targeted reuse and reconciliation, not universal atomic idempotency. It reuses the blueprint by display name, revalidates and replaces invalid/expired secrets, verifies the stored agentRegistrationId before reuse, and saves state before later steps so partial progress survives. Preserve a365.generated.config.json — do not delete objects to “retry.” Review the final Action Required block for pending consent, and recover narrowly with --agent-registration-only (registration) or setup blueprint --endpoint-only (callback).

+
+
+# READ-ONLY -- inspects, never mutates a365 --version a365 setup all --help a365 query-entra blueprint-scopes a365 query-entra inheritance -a365 query-entra instance-scopes
# TENANT-MUTATING -- run deliberately, do not auto-run +a365 query-entra instance-scopes
+
+# TENANT-MUTATING -- run deliberately, do not auto-run a365 setup all --agent-name "ExampleAgent" a365 setup permissions mcp -a365 setup blueprint --endpoint-only --messaging-endpoint https://agent.example.com/api/messages
Developer / admin checklist.
  • Exact IDs recorded — tenant, blueprint app ID (+ object ID), child identity, agentRegistrationId
  • Grants effective — query-entra inheritance shows real Effective inheritance, not just policy
  • Deployed runtime config — secret in a managed store, TokenValidation enabled with correct audience/tenant
  • Callback routing — the deployed /api/messages matches the registered endpoint (only if --m365)
  • Catalog availability handled separately — a365 publish → admin upload → approval → instance
  • Observability — exporter enabled, licensing present, root invoke_agent span emitted

Read-only validation & endpoint recovery: CLI query-entra [33], messaging endpoint [35], publish [34]. All commands above are shown for reference only and are not executed by this page.

06

Governed MCP tooling & tool-call lifecycle

Tool access separates a management plane (declare + consent) from an MCP data plane (discover + execute). Declaring a server does not grant permission; a Global Administrator must separately grant the blueprint’s MCP permissions, and permissions take precedence over local configuration.

MANAGEMENT PLANEMCP DATA PLANE1Developer: a365 develop list-available thenadd-mcp-servers2ToolingManifest.json declares server uniquename, OAuth scope, audience3Admin runs a365 setup all / setuppermissions mcp; Global Admin grants tenantconsent4SDK loads the configured governed MCPservers5Orchestrator discovers tools via MCP(standard tool discovery)6Framework runtime executes the tool call viaMCP (standard invocation)7Agent 365 gateway enforces server / toolpolicy8Work IQ / M365 workload performs theoperation9OpenTelemetry spans record gateway, server,and tool execution
Protocol shape: interactions are standard MCP (tool discovery and invocation). Microsoft documentation exposes a server URL, not separate REST-style /tools/list or /tools/call product endpoints. Do not invent such HTTP paths.
Work IQ: preview and delegated-user oriented — documented for OBO or Agentic-User. The onboarding quickstart does not connect Work IQ for S2S agents.

Governance facts

  • The SDK loads MCP configuration and registers tools with the agent orchestrator; the chosen framework / runtime executes the tool calls. Server definitions are registered and published through the a365 CLI / admin, not by the SDK.
  • Blocking an MCP server in the admin center blocks it for users and agents tenant-wide.
  • A developer with the appropriate permissions can publish or submit a custom MCP server, but it stays unavailable until a tenant administrator approves it. [31]
  • Exact catalog scopes / audiences must be read from the generated ToolingManifest.json — do not hardcode them.
07

Observability & telemetry

A valid run is an OpenTelemetry span tree with a required root. Without a valid root invoke_agent span the run is invisible to the Defender agent activity view, the admin-center activity/inventory telemetry, and Purview agent experiences — though child spans remain queryable in Defender advanced hunting.

invoke_agentrequired root span for UI visibilitychat / model inferenceexecute_tooloutput_messagesgateway or MCP server execution

Ingestion requirements

  • Identity bindinggen_ai.agent.id must equal the authenticated app’s appId (not the Entra object id).
  • Versionapi-version=1 is mandatory for direct ingestion.
  • Request limitDirect ingestion is capped at 1 MB per request.
  • AcceptanceA 200 OK is not proof of acceptance — inspect the response results.
  • License gateWithout an assigned Microsoft 365 E7 or Agent 365 license, telemetry can be accepted at HTTP level but rejected as tenant_not_licensed.
  • Correlationgen_ai.conversation.id identifies a conversation / thread, which may span multiple runs; a run is a span tree whose spans share one OTel traceId.
Two ingestion paths differ by auth mode — app-only uses /observabilityService/; delegated uses /observability/. Both appear in the endpoint catalog below.
08

Administration & action semantics

Identity, registration, package, runtime, Azure resources, and agent-owned data each have separate deletion and retention behavior, and no single control blocks or deletes across all of them. One documented cascade is the exception: deleting an Entra blueprint (application or principal) asynchronously soft-deletes its child agent identities and their agent user accounts.

Entra identity / blueprint• Disable / delete identity• Delete: soft-delete, 30-day restore• Blueprint delete cascades to itschild identities + agent user acctsno cascadeRegistration metadata• Delete registration• (beta, irreversible)no cascadeCopilot package (catalog)• Block package• Reassign owner• Uninstallno cascadeRuntime / Azure compute• Stop Foundry agent• Cleanup Azure App Serviceno cascadeAgent-owned M365 data• Delete instance: OneDrive /• Outlook handling then• permanent deletion

Administrator control surfaces

PlanePrimary interfaceResponsibilities
Agent catalog / governanceMicrosoft 365 admin center → AgentsInventory, requests, publishing, install/uninstall, user/group assignment, blocking, owner management, package details
Agent identityMicrosoft Entra admin center + GraphBlueprints, principals, identities, sponsors, credentials, permissions, consent, Conditional Access, identity lifecycle
Tool governanceM365 admin center → Agents and ToolsAllow/block Work IQ and custom MCP servers; review custom server registration
Threat protectionMicrosoft DefenderAgent activity views, exposure/misconfiguration risk, suspicious activity, advanced hunting in CloudAppEvents
Data security / complianceMicrosoft PurviewDLP, audit, retention, eDiscovery, communication compliance, data security posture
Runtime infrastructureAzure / FoundryDeploy, scale, start/stop Foundry compute; Azure RBAC
Copilot Studio ALMPower Platform admin centerMove agents and actions across Dev, Test, Production; environment governance
AutomationMicrosoft GraphInventory, package details, registration metadata, identity objects, selected governance actions

Action semantics — what each action does and does not mean

ActionMeansNot equivalent to
RegisterCreate inventory metadata and/or identity objectsPublish, install, consent, or deploy code
Publish to storeAdd an approved package to the organizational catalogAssigning it to users
Install / deployMake an available agent ready for selected users/groupsStarting its external runtime
Activate templatePermit scoped users to instantiate a template agentCreating every instance automatically
Approve requestAccept a request and perform the documented activation/publicationGranting every downstream API permission
Block packagePrevent organizational use through governed host surfacesDeleting source code or every identity
Disable identityIdentity-plane restriction on the selected agent identityRemoving catalog/package metadata
Stop Foundry agentDeallocate the underlying Azure deploymentBlocking a package
UninstallRemove assignment/availability for usersDeleting the source agent
Reassign ownerTransfer ownership of a shared Agent Builder or Copilot Studio agentChanging owners of every agent type, or moving identity credentials
Add / remove ownersManage owners of an Agent Builder agent; owners have equal rights and the last owner cannot be removedOwner management for Copilot Studio or other agent types
Delete registrationRemove beta registry metadata recordCascade deletion of package, runtime, identity, or data
Delete Agent Builder agentPermanently removes the agent, files, and SharePoint Embedded containerGeneral deletion behavior for all platforms
Delete Entra identity/blueprintSoft-delete the identity for 30 days; deleting a blueprint also soft-deletes its child agent identities and their agent user accountsRemoving host package or external runtime
Cleanup AzureRemove CLI-created App Service resourcesRemoving registry or Entra objects unless separately requested
09

Representative endpoint catalog

Diagram-worthy control points rather than an exhaustive API inventory. Search by function, path, or permission; filter by status. Every path marked preview or beta must be re-verified for the tenant, cloud, and scenario before use.

#Lifecycle functionMethod & pathStatusLeast-privileged permissionSource
1Create identity blueprintPOST https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprintv1.0 GADelegated or application: AgentIdentityBlueprint.Create[12]
2Create blueprint principalPOST https://graph.microsoft.com/v1.0/servicePrincipals/microsoft.graph.agentIdentityBlueprintPrincipalv1.0 GAAgentIdentityBlueprintPrincipal.Create. Body uses the blueprint appId, not the application object id.[ref]
3Create agent identityPOST https://graph.microsoft.com/v1.0/servicePrincipals/microsoft.graph.agentIdentityv1.0 GAAgentIdentity.Create.All; application alternative AgentIdentity.CreateAsManager[13]
4Enable / disable or update identityPATCH https://graph.microsoft.com/v1.0/servicePrincipals/{id}/microsoft.graph.agentIdentityv1.0 GAEnable/disable: application AgentIdentity.EnableDisable.All AND AgentIdentity.CreateAsManager; broader AgentIdentity.ReadWrite.All; delegated EnableDisable.All. Custom security attribute changes need additional rights. Scopes are not uniform across all PATCH properties.[ref]
5Delete agent identityDELETE https://graph.microsoft.com/v1.0/servicePrincipals/{id}/microsoft.graph.agentIdentityv1.0 GA · soft-delete 30dDelegated AgentIdentity.DeleteRestore.All; application also requires AgentIdentity.CreateAsManager[13]
6Delete blueprintDELETE https://graph.microsoft.com/v1.0/applications/{id}/microsoft.graph.agentIdentityBlueprintv1.0 GA · soft-delete 30dAgentIdentityBlueprint.DeleteRestore.All — delete cascades: child agent identities and their agent user accounts are soft-deleted (30-day restore). [26][12]
7Register external / custom agent metadataPOST https://graph.microsoft.com/beta/copilot/agentRegistrationsPreview · not for productionAgentRegistration.ReadWrite.All, delegated or application[15]
8Read registrationGET https://graph.microsoft.com/beta/copilot/agentRegistrations/{id}PreviewAgentRegistration.Read.All or read/write permission[14]
9Update registrationPATCH https://graph.microsoft.com/beta/copilot/agentRegistrations/{id}PreviewAgentRegistration.ReadWrite.All[14]
10Delete registrationDELETE https://graph.microsoft.com/beta/copilot/agentRegistrations/{id}Preview · irreversibleAgentRegistration.ReadWrite.All[14]
11Inventory catalog packagesGET https://graph.microsoft.com/v1.0/copilot/admin/catalog/packagesv1.0 GACopilotPackages.Read.All, delegated or application. Requires an Agent365 license.[16]
12Block packagePOST https://graph.microsoft.com/beta/copilot/admin/catalog/packages/{id}/blockBeta · delegated onlyDelegated CopilotPackages.ReadWrite.All; application not available; global commercial only.[16]
13Reassign package ownerPOST https://graph.microsoft.com/beta/copilot/admin/catalog/packages/{id}/reassignBeta · delegated onlyDelegated CopilotPackages.ReadWrite.All; application not available; global commercial only.[16]
14Ingest S2S telemetryPOST https://agent365.svc.cloud.microsoft/observabilityService/tenants/{tenantId}/otlp/agents/{agentId}/traces?api-version=1Direct OTLP/HTTP+JSONApp role Agent365.Observability.OtelWrite; audience 9b975845-388f-4429-889e-eab1ef63949c. {agentId} must equal the calling agent identity appId.[11]
15Ingest delegated telemetryPOST https://agent365.svc.cloud.microsoft/observability/tenants/{tenantId}/otlp/agents/{agentId}/traces?api-version=1Direct OTLP/HTTP+JSONDelegated scope Agent365.Observability.OtelWrite[11]
16Check tenant telemetry eligibilityGET https://agent365.svc.cloud.microsoft/observabilityService/tenants/{tenantId}/eligibility?api-version=1Optional S2S preflightAuth per the direct OTel guide; do not infer eligibility from licensing alone. Intended for onboarded third-party S2S agents; a 503 response is indeterminate, not a definitive ineligible.[11]
17Work IQ Mail MCP interfaceMCP https://agent365.svc.cloud.microsoft/agents/tenants/{tenantId}/servers/mcp_MailToolsPreview · MCP server URLDelegated Work IQ Mail permission on client/blueprint; exact catalog values from ToolingManifest.json. Standard MCP methods, not REST paths.[17]
18MCP Management serverMCP https://agent365.svc.cloud.microsoft/mcp/environments/{environmentId}/servers/MCPManagementPreview · MCP server URLTenant/admin configuration required; a developer with appropriate permissions can publish or submit a custom MCP server, but it stays unavailable until a tenant administrator approves it.[17]
Legacy Agent Registry warning: the older beta surface /beta/agentRegistry/agentInstances is documented with an upcoming replacement beginning May 2026 by Agent 365-powered APIs. Do not make that legacy object model the centerpiece of a new design without verifying migration status. Package Management APIs are the current direction for inventory and governance.
10

Caveats, unknowns & conflicts

This is a public architecture reference, not a deploy-ready configuration. Beta features are not supported for production. Frontier preview capabilities carry additional guardrails. Roles, OAuth permissions, licenses, and cloud availability differ by operation.

1. GA does not mean every feature is GA

Agent 365 is GA, but the Agent Registration API, Work IQ MCP, MCP Management, package block/reassign APIs, agent user accounts, and notification-dependent AI teammate scenarios carry explicit preview limits — and the documented status of connected-platform / registry sync is itself contested across public docs (see the §02A status note).

2. Built-in integration coverage evolves

Verify platform-specific guidance before adding the Agent 365 SDK to Copilot Studio or Foundry agents.

3. Two registry generations coexist

Legacy /beta/agentRegistry/agentInstances (replacement from May 2026), current package-management APIs, and preview /beta/copilot/agentRegistrations are different API models — not aliases.

4. Package vs registration APIs

Package management governs the organizational catalog; agentRegistration stores imported/managed metadata and an agent card. Different things.

5. Independent controls; one documented cascade

Identity, registration, package, runtime, Azure resources, and agent-owned M365 data have separate deletion operations and retention behavior — there is no universal cross-plane cascade. The documented exception: deleting an Entra blueprint (application or principal) soft-deletes its child agent identities and their agent user accounts (30-day restore).

6. Block behavior differs by platform

Blocking Agent Builder / Copilot Studio agents affects Microsoft Copilot and other hosts; Foundry infrastructure may keep running unless separately stopped.

7. Work IQ is not an S2S path

In the current quickstart it requires delegated context and admin OAuth consent.

8. Agent user accounts are optional

Ordinary identity, telemetry, and many tooling scenarios need no mailbox-bearing user. Frontier preview.

9. Role requirements beyond OAuth scopes

Agent ID Developer/Administrator, Agent Registry Administrator, AI Administrator, Global Administrator, Azure Contributor, and Azure AI Owner apply to different operations.

10. Graph SDKs default to v1.0

Beta endpoints require explicit beta SDK/client configuration.

11. Observability guidance has evolved

Microsoft OpenTelemetry Distro is the recommended new-integration path; existing Observability SDK integrations remain supported.

12. Narrower national-cloud availability

Checked Agent Registration and package governance beta endpoints document global commercial support, but not GCC High, DoD, or China.

11

Sources

All sources are canonical, public Microsoft Learn documentation. Accuracy reviewed 2026-09-16; unresolved public documentation conflicts are noted inline. The date on each entry is when the page was checked, not a claim that Microsoft updated it that day.

  1. Overview of Microsoft Agent 365 — GA 2026-05-01; control-plane purpose and licensing. Public · 2026-09-16
  2. Choose an Agent 365 integration option — built-in, registry-sync, and SDK mechanisms. Public · 2026-09-16
  3. Microsoft Agent 365 SDK overview — SDK boundary, capabilities, languages, package catalog. Public · 2026-09-16
  4. Agent 365 identity — objects, cardinality, credentials, S2S/OBO/Agentic-User, sponsors. Public · 2026-09-16
  5. Quickstart: Connect an existing agent to Agent 365 — skills onboarding, runtime modes, Work IQ restrictions. Public · 2026-09-16
  6. Agents for Microsoft 365 Copilot (declarative) — declarative-agent architecture and build interfaces. Public · 2026-09-16
  7. Governance and lifecycle actions for agents — install, uninstall, block, delete, owners, Foundry start/stop. Public · 2026-09-16
  8. Agents admin guide for Microsoft 365 — custom ZIP upload, assignment, deployment, publication. Public · 2026-09-16
  9. Agent 365 CLI reference — exact command families and boundaries. Public · 2026-09-16
  10. Agent management in Microsoft 365 admin center — template activation and instance management. Public · 2026-09-16
  11. Direct OpenTelemetry integration — exact ingestion and eligibility endpoints; two-step S2S. Public · 2026-09-16
  12. Create agentIdentityBlueprint — v1.0 method and permissions. Public · 2026-09-16
  13. Create agentIdentity — v1.0 method and permissions. Public · 2026-09-16
  14. Agent Registration API overview — beta CRUD surface. Public · 2026-09-16
  15. Create agentRegistration — exact beta endpoint, schema, permissions. Public · 2026-09-16
  16. Agent 365 Package Management API overview — package inventory and governance operations. Public · 2026-09-16
  17. Work IQ MCP overview — preview status, MCP server URLs, governance, clients. Public · 2026-09-16
  18. Graph API for Agent Registry and agent details — current Agent 365 admin API direction. Public · 2026-09-16
  19. Agent 365 observability concepts — identity binding, scopes, limits, downstream surfaces. Public · 2026-09-16
  20. Install and use the Agent 365 CLI — installation, authentication application, WAM/device-code. Public · 2026-09-16
  21. Add and manage tools — ToolingManifest, CLI configuration, consent, BYO MCP lifecycle. Public · 2026-09-16
  22. Understand Shadow AI in the Microsoft 365 admin center — Frontier public-preview unmanaged-agent discovery, detection/blocking, prerequisites and roles. Public · 2026-09-15
  23. Use Agent Map in the Microsoft 365 admin center — visual agent inventory, clusters, filters, summary cards, licensing and roles. Public · 2026-09-15
  24. Connected platforms in the Microsoft 365 agent registry — connect/authenticate, admin-triggered Sync agents, sync monitoring, metadata-only import. Public · 2026-09-15
  25. Ecosystem partner agents available in Agent 365 — ready-to-deploy agents vs agent factories; coming-soon and Frontier-only qualifiers. Public · 2026-09-15
  26. Understand agent identity deletion (Microsoft Entra Agent ID) — deleting a blueprint application or principal asynchronously soft-deletes its child agent identities and their agent user accounts; 30-day restore; restoring the parent after cleanup does not restore descendants. See also how to delete an agent identity. Public · 2026-09-16
  27. Choose an integration option — describes Registry sync as a preview integration path; page updated 2026-08-13. Public · 2026-09-16
  28. Microsoft 365 Roadmap item 559615 — connected-platform / registry sync capability. Public · 2026-09-16
  29. Microsoft Agent 365 service description — capability listing; page updated 2026-09-15. Public · 2026-09-16
  30. Agent user OAuth flow (Microsoft Entra Agent ID) — user_fic on-behalf-of chain: blueprint token T1, agent identity credential T2, resource token whose subject is the agent’s own user account. Public · 2026-09-16
  31. a365 develop-mcp CLI reference — a developer with appropriate permissions can publish or submit a custom MCP server, which stays unavailable until a tenant administrator approves it; page updated 2026-09-04. Public · 2026-09-16
  32. Agent 365 CLI setup reference — exact setup all / setup blueprint flags and boundaries; page updated 2026-09-01. Public · 2026-09-16
  33. CLI query-entra reference — read-only blueprint-scopes, inheritance, and instance-scopes checks. Public · 2026-09-16
  34. CLI publish reference — builds manifest.json + manifest.zip — a separate lifecycle from setup. Public · 2026-09-16
  35. Agent messaging endpoint — opt-in HTTPS callback registration, deferral, and endpoint-only recovery. Public · 2026-09-16
  36. Public Agent 365 DevTools source at pinned commit 08e48a9 (2026-09-11) — the setup implementation traced for this section; NuGet 1.1.221 exposes no reliable source-commit mapping, so behavior is current public source, not guaranteed for every installed binary. Public · 2026-09-16