AI Usage Report

What agents are actually doing

Over the course of one month, a software development company with early access to Sysdig AI Defense deployed it across more than 300 employee devices. A kernel sensor and agent-side hooks recorded what AI agents actually do when employees use them. No action was blocked or stopped over the course of the data collection. Anthropic’s Claude Code was the company’s approved agent platform but, as the company found, it wasn’t the only one running. This report explores the data uncovered by Sysdig AI Defense during that time.

1

Citizen Developers:

Expanding supply chain risks

IMAGE PLACEHOLDER

For this organization, 50% of the employees using AI agents sit outside of engineering. Digging deeper, 43% sit outside of both engineering and product. That means people across marketing, HR, sales, legal, and finance departments have adopted the technology. Furthermore, over the course of the study, not a day went by without agents used across every department.

Citizen developer isn’t a buzzword. Teams beyond engineering are doing much more than chatting with Claude Code and Codex. Among the non-engineers who used agents, an average of 42% had the agent run code, a build, a package install, or a cloud or cluster command. Most of that was running a Python script. The organization’s engineers did this twice as often, around 80% of the time.

Citizen developers are also operating in the supply chain. In this organization, 12% of non-engineering users installed packages through agents. This means they use an agent to add new code or a dependency to a system via npm, pip, go, or brew.

50%

of AI agent users sit outside of the engineering department

42%

of non-engineering users run code, builds, package installs, and cloud and cluster commands

12%

of non-engineering users use agents to install packages to a system

Why it matters

Engineers have default controls such as pull request reviews and software composition analysis to catch bad dependencies before they ship, and scoped credentials to limit the damage if one gets through anyway. And beyond the tooling, they understand coding languages and can find issues.

Someone in Finance who runs a script on their laptop, for instance, doesn’t often have the same processes in place or expertise to spot a problem. Agents may suggest old packages that are no longer supported or packages that never existed at all. Attackers can then register those names. An unassuming user installing one of those packages could run malicious code on their device. People unfamiliar with reading and reviewing code output would never know the difference.

Vibe coding is risky, and employees outside of engineering should not be pushing code to production without a clear path to do so and explicit approval. Watch installs and cloud CLI calls, especially from non-engineering users, and give them an approved, sandboxed path.

REAL WORLD

AI Defense Alert

Sysdig AI Defense notified the organization that a non-engineering employee was rebuilding a production automation with Claude Code while signed in to a personal email account, and had done so the week before with a different personal account. Over the course of a week, the agent read production automation tokens from the company’s secrets manager, edited the inline policy on a production IAM role, added an MCP server, and issued over 200 cloud commands. Sysdig AI Defense suggested the employee sign into Claude Code with the company account, the security team rotate production tokens, and a second person review the IAM policy change.

2

AI Supply chain:

Expanding supply chain risks

IMAGE PLACEHOLDER

Agents inherit the security of everything they connect to. Every model context protocol (MCP) server, skill, and plugin extends what an agent can read and do, and users should allow them by risk profile, not all or nothing.

The MCP supply chain holds a great deal of risk. Most users plug-and-play MCP servers they find on the internet directly into their AI agents, and it’s often unclear if these are verified or scanned before they go into production.

Of the MCP servers analyzed in this organization by Sysdig AI Defense, their inventory included:

47% third-party registries or vendors.
20% opaque connector IDs, mostly connectors to mail, drive, their customer relationship management (CRM) tool, and issue-tracker SaaS.
16% first-party MCP servers from agents’ store or build.
8% built by the organization.
8% pre-built MCP servers that ship inside the AI agent install.

Although third-party servers accounted for nearly half of their MCP servers, they only accounted for 16% of call volume. Opaque connectors carried the largest share, at 35% of the call volume. Call volume just explains how often a server is used compared to others, not what it can reach. A rarely called server still holds the same access and risk as a busy one.

Additionally, an inventory built from configuration writes alone would miss most server behaviors. In a single day, 96% of the organization’s servers were invoked with no same-day config add, which is why a configuration snapshot is needed instead.

35%

Opaque connectors were used for 35% of tool call volume

16%

Third-party servers were used for 16% of tool call volume

Why it matters

Each server, when added, is a trusted relationship, regardless of whether it’s ever called. And it only takes one line of config to add a server. Some users will add whatever solves today’s problem, because connectors are ultimately what make agents most effective.

The server reads your data, and the model reads the server’s tool descriptions as instructions. Once connected, if there is anything malicious in the code, the damage is done. And because servers can update silently, the agent you trusted last week isn’t always the one you’re running today. Watching for new connections catches almost nothing. Snapshot your config, allowlist servers, and prioritize reviewing the ones that reach your sensitive data, like the connectors to mail, drive, and CRM. Blocking all of it isn’t the answer, but neither is allowing all of it.

The most useful question for each extension is what it can reach and what it can change, not who made it or where it came from. That is a risk-based approach to AI supply chain security that all organizations can use, and it is where governance must begin.

REAL WORLD

AI Defense Alert

Sysdig AI Defense provided a summarized list of skills that were added over the course of one week. Many were browser or computer-control skills, which have reach beyond code editing. Sysdig AI Defense suggested this was a novelty alert for the security team to skim, because unfamiliar skills from outside the organization are worth a look.

3

AI governance:

Allow by risk, not by default

IMAGE PLACEHOLDER

Two governance gaps surfaced in this organization’s data: Agents nobody knew existed and approvals nobody gave. And both have the same problem: No way to sort them by risk. Each one needs a decision about who is allowed to run what, and how closely it’s watched.

Shadow AI:You can’t govern what you can’t see

There are more AI agents running on more machines than most security programs assume. In fact, for this organization, 50% of the agents Sysdig AI Defense identified and observed were previously unknown instances.

Employees signed up with personal email addresses on enterprise devices, or used business emails to access unsanctioned agents. That’s a visibility gap for the security team. There’s no question whether employees are using agents. Every device had at least one harness installed and actively used.

But how do you govern what you can’t see? The answer begins with what the agents actually do.

50%

of agents were previously unknown

Why it matters

An agent can be installed in a user space without administrative approval, and signing up only takes a minute. Personal emails even work, so a quick scan of your work email address pulls up nothing because it sits outside of your SSO. Intentionally hidden? Probably not. But it’s a risk to your organization.

Organizations can’t simply revoke shadow AI, audit it, or tell what was sent to it without proper visibility. All of the source code, tickets, and proprietary information, and customer data pasted into prompts land in accounts they don’t manage or govern. But with new tool procurement and the hoops to jump through for approval, many users choose speed.

Organizations can find shadow AI by taking an inventory of what is running on endpoints, not just looking at what was approved or what they could only query for. Once you have AI visibility, give real usage a sanctioned path, because blocking it only pushes it out of sight.

REAL WORLD

AI Defense Alert

Sysdig AI Defense notified the organization of use of an unapproved model provider. A specified user was active on gemini-3.1-pro-preview through Gemini CLI. Sysdig AI Defense asked whether the organization had a data agreement with Google covering code and prompts, or needed to approve the provider or restrict the user to approved agents only.

YOLO:Approvals and decisions without permissions

During data collection, 10% of sessions at this organization ran in YOLO mode, which means the user turned the permissions prompts off for at least one call. For instance, when Claude Code stopped in the middle of a task to ask for permission to do something, the user gave Claude permission to run all actions without asking for further permission. Then, once permissions were turned off, they remained off for the entire session 98% of the time.

In Claude Code, auto mode is a classifier tuned to Anthropic’s threat model that screens each tool call in place of a human prompt. Anthropic recommends using auto mode over skipping permissions. Although it isn’t risk-free, it’s still a control.

61% of the organization’s tool calls ran without human approval. Most of that was auto mode (52%) and the other 9% of tool calls ran in YOLO mode. That means auto mode plus permissions off, and it puts a business at higher risk in exchange for faster output.

Ultimately, only 19% of tool calls ran in default mode, where the agent stops and asks, “Would you like me to proceed with this action?”

IMAGE PLACEHOLDER

10%

of sessions ran in YOLO mode

98%

of the time, the permissions remained off for the entirety of the session

61%

of tool calls ran without human approval

52%

of those tool calls were in auto mode

9%

of those tool calls were in YOLO mode

19%

of tool calls were in default mode

Why it matters

People turn off prompts to expedite their workflows. But once a session is approved, everything the agent will do in that session is also approved, including steps the operator hasn’t seen yet.

To give an agent carte blanche creates compounding risk that will only be identified in detection logs if you’re not watching and reviewing what your agent is doing in real time. In a sandbox or virtual machine with scoped, short-lived credentials, turning prompts off is reasonable; but on a laptop with a credential file, it isn’t.

The risk isn’t just the mode. It’s the mode in addition to what the machine holds. Organizations should move the control from the session to the agents’ calls. Put up guardrails for credential paths, destructive commands, installs, and new MCP servers. Approvals only matter if something enforces them, and an agent-controlled approval is one the agent can work around.

REAL WORLD

AI Defense Alert

Sysdig AI Defense issued an alert for an agent that issued an infrastructure-as-code apply command while YOLO mode was turned on. Whether the command succeeded was unknown. Sysdig AI Defense also suggested the organization’s security team confirm the targets and outcomes, review the changes, and restore the missing protection or narrow the standing permissions.

Allow risk by profile

Risk

What an agent can do

Posture

Low

Read local or public content. Cannot write files, call external APIs, or touch credentials.

Allow. Keep it in the inventory.

Medium

Write files, install packages, or call external APIs, under a vetted provider and a data agreement.

Allow with call-level logging and periodic review.

High

Reach credentials, cloud, production, or customer data, or come from an unvetted source, an unapproved provider, or a single-user server.

Require approval and justification, scoped short-lived credentials, and kernel-level enforcement.

4

Runtime control:

Listen to the agent, but trust the kernel

IMAGE PLACEHOLDER

An agent’s actions start with intent. A user tells it to fix this bug or clean up this folder. What it does can drift from that intent, and the path it takes to complete a task can inadvertently put entire organizations at risk. What an agent writes down about its actions can also differ from what it actually did. The core challenge is that both the actions and the logs are both produced by the agent and drift independent from one another.

Controls that live at the agent level have a second weakness. When a tool call is stopped, for whatever reason, an agent will try another route to complete its task, which includes going directly to an API instead of using the blocked tool.

At the kernel level, drift and rerouting are not allowed. If policy says no, neither the original action nor the workaround runs. The kernel doesn’t take the agent’s account of what happened, and it doesn’t care which tool or API the agent used to get there.

For these reasons, when the time comes to audit what the users and their agents did, the agent’s logs should be a source of information, but cannot be the sole source of truth. The agent’s log is a summary of actions, and the kernel sees the process tree. On average, Sysdig AI Defense saw the kernel logging seven times more processes than the agent: 2.6 million processes against 374,000 tool calls for this organization. Per logged shell call, the range was six to nine processes. This is the same gap that was identified with credential usage.

While the kernel undoubtedly has more logs, an agent logs what it did while the kernel records what actually ran. Those are not the same.

Session-level gaps cut both ways and show why you still need both layers. An agent’s log fails on completeness and the kernel fails on coverage. 20% of kernel-side sessions captured had no tool call in the agent’s log, whereas 12% of agent-logged sessions had no kernel record. The latter were MCP, read, and edit sessions that spawn no process by design.

6–9

For 1 agent log there are 6–9 kernel-level processes

2.6 Million

2.6 million processes collected versus 374,000 tool calls

You need both sources

20%

of kernel-side sessions had no tool call in the agent log

12%

of agent-logged sessions had no kernel record

Why it matters

An agent’s log can help a user debug or resume a session, but it’s not meant to serve as audit evidence. Security teams need both records for full visibility and understanding.

There are four records for every agent action: What the agent intended (which is typically what the operator requested), what the agent logged, what actually ran, and what the agent could reach when it ran. The first two come from the agent. The last two come from outside it. Intent, action, and log can each drift. Only a control outside the agent holds when they do. Reach decides what a drift costs. An action could be noise or an incident depending on what the agent could reach when it happened.

Record

Written by

Good for

Where it fails

Agent log

The agent

Intent, tool semantics

Completeness and accuracy. It leaves visibility gaps, and it’s agent-generated.

Kernel record

The sensor

What actually ran

Coverage. It misses where the sensor isn’t deployed on the endpoint.

Kernel policy (enforcement)

The security team, enforced by the sensor

Stopping the action regardless of tool or route, including a direct API call

Only as good as its policy. (NOTE: During this study, everything was permitted to run. The kernel sensor was only used for data collection.)

5

Credentials & reach:

Zero trust for agents

IMAGE PLACEHOLDER

Because they are in a constant state of motion, agents tend to generate a lot of noise. Most of that noise is harmless on its own and gets tuned out. However, an agent’s reach can turn noise into a governance problem. A destructive command in a temp folder is a cleanup action. However, a read of a credential file can potentially be a path to your cloud.

AI visibility:Relevant noise for security teams

The majority of agent users do things that trigger security-relevant detections. In fact, for this organization, 77% of people had at least one security-relevant detection in a single day. This means that either there was agent activity that matched a rule from a process the agent started that the kernel saw, or a tool the agent called that the agent-side hook saw. Across monitored sessions, 45% had one detection trigger, and 55% had none. Detections reach almost everyone but not every session.

During data collection, Sysdig AI Defense saw the detection rule for a destructive shell command fired 303 times in one day for 22% of agent users. 99% of these were rm -rf, so never “asked”, “caught,” or “blocked” in the sense of stopping anything. It was an ordinary cleanup made visible, not malicious. The rule recorded each command before it ran and did not stop any of them because Sysdig AI Defense was instructed to detect but not block. This frequency means agents routinely reach for destructive actions. Whether to stop them is a policy decision, which is what runtime control is about.

77%

of users had a security-relevant detection in a single day

45% of sessions had one detection trigger
55% of sessions had no detection trigger

The destructive-shell-command rule, in one day

303

times it fired

22%

of coding-agent users

99%

were rm -rf

Why it matters

While these detections are not always indicators of malicious activity, they shouldn’t just be written off as noise. Agents often do things that look like attacker activities because they do the same jobs: Read configs, fetch secrets, and delete files.

For this organization, a rule built for rare events was triggered for 22% of users. Security teams need high-fidelity detections, with context like specific paths, sessions, and modes.

Security is getting louder and busier, but in a good way. In addition to identifying malicious actions, security is highlighting gaps and risks in human user behavior that can be changed to reduce the threat of compromise. Organizations should baseline per user and session and alert on deviations in path, mode, and time.

Credentials:The agent is reading and borrowing yours

A credential file is not the same as a login. It’s a file on disk that stores secrets for convenience so that tools — or agents — don’t have to ask for them to complete tasks. A credential file has API keys, authorization tokens, session cookies, cloud service provider (CSP) access keys, and more, collected as if they were saved passwords in your browser. If copied, an attacker could act as a verified user across platforms like AWS, Docker, any registry, or GCP, without having to log in.

When an agent reads a credential file, which is a normal operating procedure, it doesn’t always log it. During data collection for this organization, agents’ own logs had no entry for reading credential files 82% of the time, but it was logged by the kernel every time.

The gap widens further when the agent binary itself reads the file. Those reads had no agent record 95% of the time. An agent binary is an executable, not a spawned child process, so the read isn’t hidden behind a child process or shell wrapper.

A read by the binary isn’t a tool call, so an agent’s tool-call log was never built to capture it. Both kinds of reads are poorly logged by the agent, but reads that run through a tool call, such as a shell command that opens a CSP credential file, are more likely to be logged.

18%

Agent logged

100%

Kernel logged

When an agent read a credential file, 82% of the time the agent log had no record. The kernel had a record every time.

5%

Agent logged

100%

Kernel logged

When the agent binary read a credential file, there was no agent log 95% of the time. The kernel had a record every time.

Why it matters

An agent’s log records the tool calls the model makes, but an agent binary read isn’t a tool call, so it rarely reaches the log. However, credential reads can be seen at the kernel level. An attacker who gains access to an agent through a malicious package, injected instruction, or poisoned MCP server inherits the agent’s reach, which could be widespread and detrimental. Secrets can be moved from large, long-lived files to short-lived credentials to reduce this risk.

REAL WORLD

AI Defense Alert

Sysdig AI Defense notified this organization of a possible data-handling incident or data exfiltration. A customer support employee’s agent copied a file named “login emails” using the secure copy protocol (SCP) command to a host addressed only by an AWS IP during an analysis session. The same engineer had two prior, unrelated alerts in the same week. Sysdig AI Defense suggested asking the employee what was in the file, and who owns the destination host. If customer emails were present, it could have been a data-handling incident.

Zero trust for agents

An agent runs as the user who owns it. It inherits the user’s credentials, cloud sessions, and network, with no second factor and no separate identity. Zero trust, applied to agents, means treating them as separate, untrusted actors that happen to be using users’ identities. In that approach, what an agent can reach decides whether an alert is noise or a security finding. Ultimately, zero trust is how you limit reach before the alert fires.

Based on the data collected and the relationships identified by Sysdig AI Defense, organizations should consider the following identity management for their agents:

Give agents their own scoped, short-lived credentials instead of users’ long-lived files.
Evaluate every call by what it touches, not by which session it’s in.
Verify at the kernel, where agents can’t edit records or route around controls.
Baseline per person and treat a pattern across alerts as the signal. One SCP is a command, but three alerts in a week is a pattern.
6

Model usage:

Unnecessarily high spend

IMAGE PLACEHOLDER

Visibility into which models are being used for certain tool calls and processes can be very telling. Some models are very expensive, but useful for tool development. Other models are more affordable and work well for document creation or data analysis.

For this organization, 54% of their AI budget was spent on duplicative processes and capabilities, which means suboptimal AI use was pulling from top-line revenue.

Sysdig AI Defense was able to see which models were used to make tool calls over the course of one week. Users were counted in every model family they used. These numbers mean that while the larger majority used the standard moderate setting (Sonnet 5), more than half used a more expensive model for tool calls.

Model usage by share of people

Sonnet 5

66.4%

Opus 5

56.9%

Opus 4.8

8.7%

Fable 5.1

4%

Opus 5.5

3.6%

Haiku 4.5

2.8%

Opus 4.7

2.8%

GPT 5.6

2%

GPT 6

1.2%

From another perspective, it could also see which we looked at the specific models were used based on the share of tool calls. So while more people were using Sonnet 5, more tool calls ran through Opus 5, a higher-cost model. This resulted in a higher bill for the organization.

Additionally, 40% of employees at this organization ran Opus-class models only — for every task, including the most routine ones. 37% ran Sonnet only, and 20% used both. Once spend is tied to a person, team, and task, you can actively manage utilization and optimize use.

Model choice is a personal setting, but it matters for business spend and security. D because different models fail in different ways, and organizations may choose to set their own specific use policies, allowing and may become an organizational policy in the future where certain models to be used onlycan only be used for certain tasks with justification statements and use cases, much likesimilar to downloading software on enterprise devices today.

Model usage byshare of modelOpus 547%Sonnet 528.3%GPT 69.5%Fable 5.14.2%Opus 4.82.9%

54%

of AI spend was duplicated effort

Opus-class

40%

Sonnet-class

37%

Both

20%

Users running just one class of model

Why it matters

Top-tier models often earn their capability reputations for good reason, but users don’t see the bill, so many employees tend to choose the best logic or fastest processor by default. Some tasks are worth the spend, like tool development, but others, like spellchecking or creative ideation, don’t always justify the means.

With Sysdig AI Defense, organizations can tie model use to employees and teams the person, and require team, and task with justification statements for the top-tier model use the same way they you’d handle software installs on enterprise devices. This way, they can reduce token spend and model sprawl.

7

Takeaways

IMAGE PLACEHOLDER

As the agentic risk surface has come into focus, one lesson has become abundantly clear: The security fundamentals remain unchanged.

Organizations can reduce risk by using least privilege with agents and giving them short-lived credentials instead of persistent access to long-lived files. They should also only use inventories they trust, and rely on correlation between agent- and kernel-level logs. Agents are extensions of users’ identities, running faster, without second-factor authentication.

Action

Why

Log at the kernel level, not just the agent.

The agent writes the record the auditor wants, and it’s the thing being audited.

Enforce policy at the kernel, not in the agent.

An agent can route around a control inside it. If the kernel says no, neither the action nor the workaround runs.

Move the control unit from the session to the call.

Approval is only granted once per session, but risk varies per call. Gate risky calls and let the rest pass.

Allow extensions and agents by risk profile, not by default.

What it can reach and change matters more than who made it.

Count harnesses, not tools you approved.

Inventory what runs. You’ll be surprised how much you find.

Track who has prompts off, and for how long.

Decide if this is an acceptable risk trade-off for speed or if the option should be turned off.

Watch users outside of engineering.

They can do installs and cloud CLI commands too, and they will.

Inventory MCP servers by snapshot, not by watching for new ones.

Most were configured earlier, and you’ll miss calls.

Treat agents as untrusted actors under the user’s identity.

Give them scoped, short-lived credentials and evaluate every call by what it touches.

Baseline per person and watch for patterns across alerts.

One SCP is a command. Three alerts in a week is a pattern.