microsoft/BCQuality

Quality skills and knowledge for Business Central development. The shared bar for humans and agents alike.

204Stars on the repository
22Mods indexed here, across every type
todayLast push, which is what freshness is scored on
MITLicence, which decides whether bodies are shown

microsoft/BCQuality

Agent ✓ vendor

An agent is a user, but it cannot configure users or other agents, and it cannot open sensitive pages such as user cards or permission-set assignment. Effective rights are the intersection of the assigning user's permissions and the agent's permission sets. Granting the agent a wide set does not bypass the assigner's…

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

The agent only sees what its profile shows. Extra actions, views, and Role Center tiles become extra tools and extra tokens. Accuracy and cost both get worse as the UI widens. A human Order Processor profile is usually far too broad. Tooltips on the remaining actions are part of the tool description.

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

Instance setup is not a Card or StandardDialog. The toolkit expects PageType = ConfigurationDialog so OK and Cancel are system actions, plus the built-in Agent Setup Part for name, display name, state, and access. A Card with custom fields only drops those shared controls and the AI-use notices the part carries.

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

ConfigurationDialog setup is a draft: the user can Cancel without writing. That only works if SourceTableTemporary = true and custom fields stay in memory until Update. Writing the real table in OnValidate or OnOpenPage commits a partial agent when the dialog errors or is cancelled.

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

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.

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

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…

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

Page-filter tweaks, extra validation, and prompt dialogs for the agent should not run for every user. Agent Session.IsAgentSession distinguishes agent UI sessions. Binding those subscribers on System Initialization only when the session is an agent session avoids global subscriber cost. Models register SingleInstance…

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

For isolation, Agent, Agent Task Builder, and related toolkit codeunits error when the target instance belongs to another app. There is no supported way to pass another extension's metadata provider into SetInstructions or Create. Partners who need to enqueue work must call a public API you own.

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

Agent.Create requires an interactive user session. The platform blocks creation from install codeunits, upgrade codeunits, and background sessions (job queue, scheduled tasks). Packaging an agent in an app does not mean spinning up instances at install. Models still call Create from OnInstallAppPerCompany to activate…

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

IAgentFactory.GetDefaultAccessControls fills a temporary Access Control Buffer used when an instance is created. Permission sets that exist only as user-created sets in a sandbox are missing in the next environment. Granting D365 BUS FULL ACCESS or SUPER gives the agent a user-sized blast radius. Effective rights are…

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

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.

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

The runtime treats instructions as the agent's standing prompt. A one-line goal produces inconsistent navigation. Microsoft's instruction framework is three layers: responsibilities (what the agent owns), guidelines (rules for every task), and instructions (ordered steps per task, with substeps). That structure is…

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

Agent tools are the UI the profile exposes. Action names and tool ids change across pages and versions. Best-practice guidance is to say what to accomplish, not which tool to invoke. Page state is also not fully in history; values needed later must be memorized. Models paste Promoted action names into the prompt.

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

Static instructions stored as an app resource are copied onto an instance only when you call SetInstructions. Shipping a new Instructions.txt in version 2.0 does not update agents created under 1.0. Models change the resource and assume running instances pick it up.

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

Each agent type needs a Copilot Capability enum value that the factory links as the feature switch and billing surface. The capability is invisible on Copilot and agent capabilities until an install codeunit calls RegisterCapability when it is not already registered. Unique ordinals matter across installed apps.…

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

Instructions are instance data, not an enum caption. Agent.SetInstructions takes SecretText so the payload is not logged or copied as ordinary text. A Label or plaintext Text on the agent type is the wrong store: it leaks into telemetry-friendly strings and cannot vary per instance or company.

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

IAgentFactory.ShowCanCreateAgent controls whether the type appears in the in-client create UI. Returning false does not stop Agent.Create from AL. From 28.1, non-admins can discover extension agents unless this method (and agent configuration rights) restrict them. Models treat a false return as a hard create lock.

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

Incoming task messages default to requiring user approval before the agent runs. From 28.1, Agent Task Message Builder.SetRequiresReview(false) starts the agent immediately. That is safe only for inputs you already validated in AL (your page action, your posting subscriber). External email or partner payloads are not…

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

The agent runtime looks for specific phrases: ask for assistance, request a review, reply, write an email, memorize, Set field, use lookup, Invoke action. Ordinary English such as get a human to look or remember this is weaker. Outbound reply and email always require review; that is platform policy, not optional tone.

not rated 204 today A 0 tokens MIT

microsoft/BCQuality

Agent ✓ vendor

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…

not rated 204 today A 0 tokens MIT

At most 3 mods per repository are shown here, and a mod shipped inside a plugin is left to that plugin's page — the rest are on their repository pages: