bcquality/community/knowledge/agents/agent-setup-table-keyed-by-user-security-id.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.1 KiB

bc-version domain keywords technologies countries application-area
27..
agents
user-security-id
setup-table
primary-key
agent-instance
guid
al
w1
all

Agent setup tables are keyed by User Security ID

Description

Each agent instance is a user. Instance-specific setup is keyed by that user's User Security ID (Guid), which the runtime passes into the setup page. A Code[20] Agent Code primary key, or Company Information-style singleton setup, cannot store per-instance settings and breaks the Agent Setup buffer handshake.

Best Practice

Give the setup table a Guid field User Security ID as the clustered primary key. Other settings are attributes of that key. When the page opens, Get or insert by the Guid the Agent Setup part already holds.

See sample: agent-setup-table-keyed-by-user-security-id.good.al.

Anti Pattern

A setup table keyed by Code, Integer, or with no Guid user key, then mapping one row to every instance. Detection signal: source table of the agent setup page whose primary key is not User Security ID.

See sample: agent-setup-table-keyed-by-user-security-id.bad.al.