bcquality/community/knowledge/agents/wire-all-three-agent-interfaces.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.5 KiB

bc-version domain keywords technologies countries application-area
27..
agents
agent-metadata-provider
iagentfactory
iagentmetadata
iagenttaskexecution
enumextension
implementation
al
w1
all

Wire all three agent interfaces on the metadata provider

Description

An AL agent type is registered by extending Agent Metadata Provider. The platform locates factory, metadata, and task-execution behaviour only through the Implementation property on that enum value. Omitting IAgentFactory, IAgentMetadata, or IAgentTaskExecution leaves create, UI identity, or task runs unbound. Models often ship a single codeunit and skip the enum wiring.

Best Practice

On the enum value, set Implementation for all three interfaces, each pointing at a dedicated codeunit. Keep factory (create, defaults, first-time setup), metadata (setup page, summary, annotations), and task execution (message analysis, intervention suggestions) in separate objects.

See sample: wire-all-three-agent-interfaces.good.al.

Anti Pattern

An Agent Metadata Provider value with no Implementation, only one interface mapped, or all three interfaces pointing at one catch-all codeunit that cannot satisfy the contracts. Detection signal: enumextension of Agent Metadata Provider whose value does not list IAgentFactory, IAgentMetadata, and IAgentTaskExecution.

See sample: wire-all-three-agent-interfaces.bad.al.

See also

register-copilot-capability-for-the-agent.md covers the feature capability linked by the factory implementation.