bcquality/community/knowledge/agents/analyze-message-error-stops-warning-forces-review.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
analyzeagenttaskmessage
agent-annotation
error
warning
setrequiresreview
al
w1
all

AnalyzeAgentTaskMessage: Error stops the task; Warning still requires review

Description

IAgentTaskExecution.AnalyzeAgentTaskMessage runs on inbound and outbound messages. An Error annotation stops processing. A Warning annotation requests user intervention. If analysis returns Warning, the platform still requires approval even when the incoming message used SetRequiresReview(false). Output text can be rewritten here (signature, redaction).

Best Practice

Validate inbound payloads in analysis: Error when the task must not run; Warning when a human must confirm. For outbound messages, adjust text in this method rather than in a later subscriber. Do not rely on skip-review to bypass warnings.

See sample: analyze-message-error-stops-warning-forces-review.good.al.

Anti Pattern

Ignoring analysis entirely, or emitting Warning while documenting that SetRequiresReview(false) means unattended run. Detection signal: empty AnalyzeAgentTaskMessage plus skip-review on external input.

See sample: analyze-message-error-stops-warning-forces-review.bad.al.