bcquality/community/knowledge/agents/get-default-profile-lives-in-the-app.md
Stefano Demiliani 53e2cf2fa4
Add community guidance and review support for Business Central agents (#137)
* feat(community/agents): add AL agent quality guidance

- add 20 agent knowledge rules with good and bad AL samples
- clarify setup dialog shape, temporary persistence, permissions, profiles, instructions, capability registration, and interface wiring
- add the community-owned AL agents review skill
- make review fixture discovery layer-aware with custom, community, and Microsoft precedence
- document layer-aware evaluation behavior

* fix(community/agents): align setup and permission samples

- mark agent setup pages as non-extensible where required
- narrow the agent profile by hiding an unrelated sales-order field
- define a dedicated read-only permission set for the sales review agent
- assign AL-defined permission sets with system scope and the owning app ID
- clarify the permission scope guidance for default access controls

* Address agent review feedback
2026-09-02 16:06:25 +02:00

1.2 KiB

bc-version domain keywords technologies countries application-area
27..
agents
getdefaultprofile
profile
page-customization
populatedefaultprofile
role-center
al
w1
all

The default agent profile must be an AL profile in the app

Description

IAgentFactory.GetDefaultProfile assigns the Role Center and page customizations the agent UI-navigates. A profile built only in the client, or page personalization that was never exported, is absent after deploy. Agent.PopulateDefaultProfile still needs a profile ID that exists in the current module.

Best Practice

Ship a profile object (and page customizations) in the app. In GetDefaultProfile, call Agent.PopulateDefaultProfile with that profile ID and NavApp.GetCurrentModuleInfo. Include UI-exported customizations as AL.

See sample: get-default-profile-lives-in-the-app.good.al.

Anti Pattern

Setting TempAllProfile."Profile ID" to a client-only profile, or skipping GetDefaultProfile. Detection signal: factory default profile ID with no matching profile object in the app.

See sample: get-default-profile-lives-in-the-app.bad.al.

See also

agent-profile-narrows-visible-ui.md explains which UI the app-owned profile should expose.