> For the complete documentation index, see [llms.txt](https://newdocs.keeper.io/en/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://newdocs.keeper.io/en/keeperpam/endpoint-privilege-manager/policies/policy-types/agentic-ai-policy.md).

# Agentic AI Policy

<figure><img src="/files/T7ncw31LWyK6RnpPqlbM" alt=""><figcaption></figcaption></figure>

### Overview

The Agentic AI policy governs **whether an AI agent is permitted to run at all** on a monitored endpoint, and which agents are recognized, enrolled, and governed across the fleet. Where an Agentic Access policy controls *what* an already-running agent may do, and an Agentic Privilege Elevation policy handles an agent's *elevation* requests, an Agentic AI policy is the gate that sits in front of both: it determines which agent processes are allowed to execute, which are denied, and which are held for review before they ever take an action.

AI agents — commercial coding assistants such as GitHub Copilot, Cursor, Claude Code, Tabnine, and Codeium, containerized agents, and unknown processes that behave like agents — increasingly launch and run with the same privileges as the user who started them. An Agentic AI policy lets you decide, per User Collection and Machine Collection, which of those agents are sanctioned, which are blocked, and which require approval before they are permitted to operate.

Agents are recognized in one of two ways. **Known Agents** are identified by signature — process name and path, publisher or certificate, binary hash, and network fingerprint. **Possible Agents** are flagged by a behavioral heuristic engine that scores unknown processes 0–100 on how closely they behave like an AI agent. Any application can also be flagged as Agentic AI from the Applications view, after which it appears under the Agentic AI collection and becomes available for policy targeting.

While Agentic AI policies enforce controls actively, they are designed to be introduced in Monitor mode first. Observing which agents would be matched — before the policy enforces — lets you validate scope and confidence thresholds without interrupting legitimate agent activity. See Policy: Phased Rollout Planning for recommended sequencing.

### How it Works

**Recognizing agents.** An Agentic AI policy is scoped to an Agentic AI Collection — a group of known and flagged AI agent applications. Known Agents are matched by signature; Possible Agents are surfaced by behavioral heuristics and scored for confidence. Use the **All Agentic AI** collection to target every recognized agent, or define a narrower collection (for example, "Approved Coding Assistants") to govern a specific set.

**Allowing or denying the agent itself.** The policy decides whether a matching agent process is permitted to run. An **Auto-Approve (Allow)** outcome lets a sanctioned agent operate without friction; an **Auto-Deny (Deny)** outcome blocks the agent outright. Between those extremes, the agent can be held for administrator approval, end-user approval, MFA, or justification before it is permitted to run.

**Confidence-driven controls.** Because Possible Agents carry a detection confidence score, policy controls can be conditioned on a threshold — **Likelihood of Being an AI Agent (%)**. This lets you, for example, allow low-confidence detections silently while requiring approval for any process scoring above a defined tier, so unknown agent-like processes are reviewed before they are trusted.

**Human-in-the-loop.** The **Require User Approval** control prompts the end user on the endpoint to approve or deny a recognized agent in real time. This is distinct from administrator approval: it puts the person operating the endpoint in the loop for the decision to let the agent run. A *Don't ask again for N hours* option is available to reduce repeat prompts.

**Stacked controls.** As with Privilege Elevation and File Access, controls are additive. When more than one applicable control is set (for example MFA and approval), all enforced requirements must be satisfied before the agent is permitted to run.

**Audit baseline.** Every governed agent — allowed, denied, or held — is recorded, so all AI agent activity can be audited against the policy baseline regardless of the enforcement outcome.

### Controls

An Agentic AI policy supports the following controls:

**Auto-Approve (Allow)** — Permits a matching agent to run without further friction. Cannot be combined with other controls.

**Auto-Deny (Deny)** — Blocks a matching agent and returns a deny outcome without a user-facing prompt. Cannot be combined with other controls.

**Require Approval** — The agent is held until an assigned approver grants the request.

**Require Justification** — A written reason must be supplied before the agent is permitted to run.

**Require MFA** — Identity must be verified (TOTP) before the agent is permitted to run.

**Require User Approval** — The end user on the endpoint must approve or deny the agent (human-in-the-loop).

### Managing an Agentic AI Policy

{% stepper %}
{% step %}

### Define an Agentic AI Collection

Before creating the policy, unless you plan to use the "All Agentic AI" collection, you will need to organize the Agentic AI Agents you want to govern into an **Agentic AI Collection**. Navigate to **Collections → Agentic AI** and create a new collection. Add known agents directly, or flag detected applications as Agentic AI from the **Applications** view — flagged applications then appear under the Agentic AI collection and become available for policy targeting.

{% hint style="info" %}
Give the collection a descriptive name that reflects its purpose — for example, "Approved Coding Assistants" or "Flagged Possible Agents" — to make it easy to identify when assigning it to a policy.
{% endhint %}
{% endstep %}

{% step %}

#### Open the Policy Form

From the **Admin Console**, navigate to **Endpoint Privilege Manager → Policies** and click the **Create Policy** button. <img src="/files/6NnfrxrQKQdCeUxuSpWf" alt="" data-size="line">
{% endstep %}

{% step %}

#### Configure the Policy

Fill in the policy details:

* **Policy Name** — A descriptive name (e.g. `Agentic AI – Approval for High-Likelihood Agents`)
* **Policy Type** — Select `Agentic AI`
* **Status** — Select `Monitor` to observe matches first, or `Enforce` to apply controls actively

<figure><img src="/files/LkQJ2JhbQYFJolTdAVye" alt="" width="316"><figcaption></figcaption></figure>

{% hint style="info" %}
Agentic AI policies default to Monitor mode and support the full Monitor / Monitor & Notify / Enforce / Off lifecycle. Start in Monitor to validate scope before enforcing.
{% endhint %}
{% endstep %}

{% step %}

#### Select Controls

<figure><img src="/files/mJNQFDD6L0YCvAVOu8i0" alt="" width="326"><figcaption></figcaption></figure>

Add the control(s) to apply when a matching agent is recognized — **Require Approval**, **Require Justification**, **Require MFA**, or **Require User Approval**. Optionally configure a **Risk Score** threshold so that controls only trigger when the agent's likelihood score exceeds the configured value.

**Stacked Controls** — When controls are stacked, all must be satisfied before the agent is permitted to run. **Allow** and **Deny** are mutually exclusive and cannot be combined with any other control.

<figure><img src="/files/xa3n82jtTsNzYIt9NTpO" alt="" width="329"><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Set Policy Filters

Define the scope of the policy:

* **User Collections** — Target specific User Collections, or select all users
* **Machine Collections** — Target specific Machine Collections, or select all enrolled endpoints
* **Application Collections** — Optionally scope to specific applications
* **Agentic AI Collections** — Select the Agentic AI Collection created in [Step 1](#define-an-agentic-ai-collection)

<figure><img src="/files/lcRSJB6SlrE9IOzV4MaV" alt="" width="263"><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Save and Deploy

Click **Save**. The policy is pushed to in-scope endpoints within approximately 30 minutes, or immediately via the **Refresh Policies** option in the Keeper agent.
{% endstep %}
{% endstepper %}

### Admin Console UI

The Agentic AI policy form exposes the following elements:

* Policy Name
* Policy Type (Agentic AI selected)
* Status
* Controls
* User Collections
* Machine Collections
* Application Collections
* Agentic AI Collections

### Policy JSON Example

The following Agentic AI policy runs in Monitor mode and requires justification for any application detected as an AI agent with a likelihood score of 90% or higher, scoped to all users, all applications, and a single Machine Collection.

json

```json
{
  "PolicyName": "-->  3-AgenticAI",
  "PolicyType": "AgenticAi",
  "PolicyId": "YVKYlhLqNdLuK54bRxAQvA",
  "Status": "monitor",
  "Actions": {
    "OnSuccess": { "Controls": ["JUSTIFY"] },
    "OnFailure": { "Command": "" }
  },
  "NotificationMessage": "A policy has been set to monitor mode.  When this policy is enabled, [mfa, justification, request] will be required to run this process as an administrator.",
  "NotificationRequiresAcknowledge": false,
  "RiskLevel": 50,
  "Operator": "And",
  "Rules": [
    {
      "RuleName": "UserCheck",
      "ErrorMessage": "This user is not included in this policy",
      "RuleExpressionType": "BuiltInAction",
      "Expression": "CheckUser()"
    },
    {
      "RuleName": "MachineCheck",
      "ErrorMessage": "This Machine is not included in this policy",
      "RuleExpressionType": "BuiltInAction",
      "Expression": "CheckMachine()"
    },
    {
      "RuleName": "ApplicationCheck",
      "ErrorMessage": "This application is not included in this policy",
      "RuleExpressionType": "BuiltInAction",
      "Expression": "CheckFile(false)"
    },
    {
      "RuleName": "DateCheck",
      "ErrorMessage": "Current date is not covered by this policy",
      "RuleExpressionType": "BuiltInAction",
      "Expression": "CheckDate()"
    },
    {
      "RuleName": "TimeCheck",
      "ErrorMessage": "Current time is not covered by this policy",
      "RuleExpressionType": "BuiltInAction",
      "Expression": "CheckTime()"
    },
    {
      "RuleName": "DayCheck",
      "ErrorMessage": "Today is not included in this policy",
      "RuleExpressionType": "BuiltInAction",
      "Expression": "CheckDay()"
    },
    {
      "RuleName": "CertificateCheck",
      "ErrorMessage": "Certificate hash is not included in this policy",
      "RuleExpressionType": "BuiltInAction",
      "Expression": "CheckCertificate()"
    }
  ],
  "UserCheck": ["*"],
  "MachineCheck": ["aDdMC3y_isged8ODDSnvRg"],
  "ApplicationCheck": ["*"],
  "DayCheck": [],
  "DateCheck": [],
  "TimeCheck": [],
  "CertificationCheck": [],
  "Extension": {
    "minAiLikelihoodPercent": 90
  }
}
```

### Field Reference

<table><thead><tr><th width="299.81817626953125">Field</th><th>Description</th></tr></thead><tbody><tr><td><code>PolicyName</code></td><td>Display name of the policy.</td></tr><tr><td><code>PolicyType</code></td><td>Policy type identifier. For this policy type, <code>AgenticAi</code>.</td></tr><tr><td><code>PolicyId</code></td><td>Unique identifier assigned to the policy.</td></tr><tr><td><code>Status</code></td><td>Policy lifecycle state — <code>monitor</code>, <code>monitor &#x26; notify</code>, <code>enforce</code>, or <code>off</code>. Agentic AI policies default to <code>monitor</code>.</td></tr><tr><td><code>Actions.OnSuccess.Controls</code></td><td>The control(s) applied when the policy matches — for example <code>JUSTIFY</code>, <code>MFA</code>, <code>REQUEST</code>, <code>OPERATORAPPROVAL</code>. Multiple controls are additive (stacked).</td></tr><tr><td><code>Actions.OnFailure.Command</code></td><td>The action taken when a rule check fails. Empty (<code>""</code>) in Monitor contexts, where the policy observes without enforcing a deny.</td></tr><tr><td><code>NotificationMessage</code></td><td>Message surfaced to the end user when the policy applies.</td></tr><tr><td><code>NotificationRequiresAcknowledge</code></td><td>Whether the end user must acknowledge the notification before proceeding.</td></tr><tr><td><code>Operator</code></td><td>Logical operator combining the rule checks. <code>And</code> requires all rules to pass.</td></tr><tr><td><code>Rules</code></td><td>The ordered set of built-in rule checks evaluated for a match (user, machine, application, date, time, day, certificate).</td></tr><tr><td><code>Rules[].RuleName</code></td><td>Identifier of the individual rule check.</td></tr><tr><td><code>Rules[].ErrorMessage</code></td><td>Message recorded when the rule check does not pass.</td></tr><tr><td><code>Rules[].RuleExpressionType</code></td><td>Type of the rule expression. <code>BuiltInAction</code> for the standard checks.</td></tr><tr><td><code>Rules[].Expression</code></td><td>The built-in function evaluated for the rule (e.g. <code>CheckUser()</code>, <code>CheckMachine()</code>, <code>CheckFile(false)</code>).</td></tr><tr><td><code>UserCheck</code></td><td>User Collection scope. <code>["*"]</code> targets all users.</td></tr><tr><td><code>MachineCheck</code></td><td>Machine Collection scope. A collection identifier targets specific enrolled endpoints; <code>["*"]</code> targets all.</td></tr><tr><td><code>ApplicationCheck</code></td><td>Application Collection scope. <code>["*"]</code> targets all applications.</td></tr><tr><td><code>DayCheck</code> / <code>DateCheck</code> / <code>TimeCheck</code></td><td>Optional day-, date-, and time-of-day constraints on when the policy applies. Empty arrays apply no constraint.</td></tr><tr><td><code>Extension.minAiLikelihoodPercent</code></td><td>The minimum AI-likelihood detection score (0–100) a process must reach for the policy to apply. In the example, the policy applies only to processes scoring 90% or higher.</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://newdocs.keeper.io/en/keeperpam/endpoint-privilege-manager/policies/policy-types/agentic-ai-policy.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
