Enterprise Copilot Governance vs Custom LLM App Governance
Vendor copilots and custom LLM apps need different governance because the enterprise owns different layers in each. With a copilot, it usually controls identity, permissions, data access, configuration and the interaction boundary. With a custom app, it also controls prompts, retrieval, tools, model selection and deployment. Policies, control ownership and evidence should follow those layers, with runtime enforcement of individual interactions and tool calls as the shared layer across both.
Evaluating whether current controls cover both
- Do we have a written list of which layers we own for each copilot and each custom app?
- Are permissions and connected data sources reviewed before a copilot is enabled, not only after rollout?
- Is there an approved model list and an owner for prompt, retrieval and tool changes in each custom app?
- Can we apply allow, redact, block, rate limit and human escalation to individual interactions and tool calls in both?
- Are escalation thresholds defined, held outside the model, and routed to a named authority?
- Can we show an auditor what each AI was allowed to do and what it did, and does the evidence format differ by environment?
Why a single governance model leaves gaps
Many regulated enterprises run both vendor-delivered copilots and applications they build themselves, and apply one review process, one control checklist and one evidence template to everything. The result is predictable. Controls written for a custom app assume the enterprise can edit prompts, change the retrieval layer or swap the model. None of those levers exist in a vendor copilot. Controls written for a copilot, mostly about licensing, permissions and configuration, say little about the tool access, retrieval design and model choices that a custom app team makes every week.
The practical difference is ownership. In a copilot, the vendor owns the model, the orchestration and the update cadence, so behavior can change without an enterprise release. In a custom app, the enterprise owns those layers and also owns the consequences of changing them. Governance should be organized by who owns each layer and what can actually be enforced there. This page uses that split as a working frame for architecture decisions.
Control surfaces by layer
The table summarizes where the enterprise can set controls directly and where it depends on the vendor. Exact settings vary by product, so treat the copilot column as the typical case and verify it for each deployment.
- Identity and permissions: Copilot: enterprise controls. Custom app: enterprise controls, including the identity the app and its agents use when calling systems.
- Data access: Copilot: governed through existing permissions and connected data sources. Custom app: governed through the retrieval design, index scope and connector credentials.
- Model: Copilot: vendor owns selection and updates. Custom app: enterprise selects, approves and replaces models.
- Orchestration and prompts: Copilot: vendor owns, with limited enterprise configuration. Custom app: enterprise owns system prompts, chaining and agent logic.
- Tools: Copilot: limited to what the product exposes and what the enterprise enables. Custom app: enterprise defines which tools exist and what each may do.
- Interaction boundary: Both: the point where prompts, responses and tool calls cross into or out of the enterprise. This is the one surface present in both environments.
Policies each environment needs
For vendor copilots, the main risk is that the copilot can surface whatever a user can already reach. Overly broad permissions or loosely scoped connected data sources turn into oversharing once an assistant can search and summarize across them. Copilot policy therefore centers on least privilege, data scoping, configuration baselines, and rules about which data classes may appear in prompts and responses. Because the vendor controls updates, the enterprise also needs a way to notice behavioral change at the boundary rather than relying on its own release process.
For custom apps, the enterprise carries the full stack. Policy needs to cover which models are approved, how prompts and retrieval sources are changed and reviewed, which tools an app or agent may call, and what parameters those calls may carry. Untrusted content that reaches the model can try to steer it toward tool misuse, and an unmanaged set of models and apps becomes hard to inventory. NIST's proposed agent identity tenets apply to any AI actor here: least privilege, with access bounded to the minimum scope for a task, and separation of duties so an agent cannot hold conflicting privileges that bypass governance controls.
Where runtime enforcement applies to both
Design-time controls differ, but the decision about a single interaction or tool call can be made the same way in both environments. At runtime, policy can allow the request, redact sensitive content, block it, rate limit it, or escalate it for human approval. This works at the interaction boundary for a copilot and inside the execution path for a custom app, where it can also cover agent tool calls.
Escalation deserves care. NIST describes organization-defined risk thresholds that trigger human review of agentic actions, with technology that routes escalations to the correct authority. Those thresholds can be set when an agent is tasked, built into enterprise configuration, or defined through organizational templates. OWASP lists decision and approval manipulation as a risk, where attackers influence risk scores, model confidence or approval thresholds to bypass safeguards. A sensible design choice is to keep approval logic and thresholds outside the model's own outputs, so the model cannot talk its way past them. Name the escalation authority in advance.
Trussed enforces policy in the execution path across models, agents, tools, MCP servers, AI sites and coding assistants, at the level of individual interactions and tool calls. Policy is enforced at runtime, not reviewed after the fact. Trussed does not claim transaction-level governance or end-to-end tracing of agentic workflows.
Audit-ready evidence in each environment
An auditor wants to know what the AI was allowed to do and what it did. The evidence that answers that question differs by environment. For a vendor copilot, the enterprise can usually show its identity and permission model, its configuration, its data access scope, and the interactions that crossed its boundary. Evidence about the model and orchestration sits with the vendor. For a custom app, the enterprise can add its prompt and retrieval configuration, its approved tool list, its model choices and its deployment records.
In both cases, record which business unit or customer an AI actor acts for and what it is permitted to do. OWASP frames this as an application security control, and notes that using an AI agent does not remove existing obligations such as AML or sanctions duties. It also advises that an agent should not be able to lower a match threshold below the institution's configured minimum.
On the regulatory side, the EU AI Act sets risk-based rules for AI developers and deployers, so the enterprise's role should be determined for each system, and a vendor-delivered versus self-built split is likely to matter. Confirm that role with counsel. The Act also leaves data-protection obligations as controller or processor in place where AI processes personal data. As of October 2026, teams should check current obligations and application dates against the official consolidated text.
Where Trussed is in the path, audit-ready evidence is generated by enforcement itself and mapped to HIPAA, NAIC, NYDFS, the EU AI Act and NIST, so each allow, redact, block, rate limit or escalation decision leaves a durable record.
Who owns which layer
Vendor copilot
Vendor owns model, orchestration and update cadence. Enterprise owns identity, permissions, data access, configuration and the interaction boundary.
Custom LLM app
Enterprise owns prompts, retrieval, tools, model selection and deployment, in addition to identity and data access.
Shared layer
Runtime policy on individual interactions and tool calls: allow, redact, block, rate limit, escalate.
Evidence
What the AI was allowed to do and what it did, produced differently in each environment.
Check coverage across copilots and custom apps
Review where policy is enforced at runtime and what evidence your regulated enterprise can produce for each AI environment.
Assess Your AI Readiness