Skip to main content
COMPARISON

Proof of Actor vs bot management: different questions, one stack

Bot management protects your infrastructure from abusive automation. Proof of Actor gives your application the actor context it needs to serve people, AI-assisted users and agents differently. Here is how they compare and how they fit together.

Toshendra Sharma

By Toshendra SharmaFounder & CEO, AgentCredia · Updated November 13, 2026

For most of the web's history, automated traffic had one job in the security stack: get identified and get stopped. Bot management grew up around that job. It sits at the edge of your infrastructure, scores requests, and blocks or challenges the ones that look abusive. It is very good at it, and you should keep it.

AI agents changed what applications need to know. A growing share of automated requests now come from agents acting for real customers: an assistant comparing plans, an agent filing a support ticket, a client calling your MCP server to finish a task. At the same time, many people use your product with an AI assistant beside them. These are not attacks. They are users, and they deserve the right experience rather than a block page.

That is the gap Proof of Actor fills. This page compares the two categories plainly so you can see where each one belongs.

The short version

Bot management Proof of Actor
Main question Should this request be stopped? Who or what is acting, and what is the evidence?
Where it runs At the edge, in front of your application Inside your application, API or MCP server
Typical output Allow, block or challenge; often a score Human, Human + AI, Agent or Unknown, plus a basis
Treats AI-assisted people as Usually indistinguishable from other people A distinct class, Human + AI
Treats unclear traffic as Often challenged or blocked Unknown, with a fallback you choose per route
Who decides the response The edge rule set Your application code
Default behavior on install Enforcement Observation; nothing changes until you add a policy
Best at Stopping credential stuffing, scraping abuse and volumetric attacks Product, analytics and policy decisions for every actor

The rest of this page explains each row.

Two different questions

Bot management answers a protection question. Its goal is to keep abusive automation away from your infrastructure, your accounts and your inventory. Every signal it collects serves that goal, and its output is a decision: let the request through, block it, or put a challenge in front of it.

Proof of Actor answers an understanding question. Its goal is to tell your application who or what is driving each interaction, so you can decide how to serve it. Its output is not a verdict on the request. It is a classification with its evidence:

  • Human: the observable signals indicate human-directed interaction.
  • Human + AI: a person directed the interaction with AI assistance that was declared or observed.
  • Agent: automated or agent-origin interaction, supported by verifiable identity or a qualified inference.
  • Unknown: the evidence does not support a reliable determination.

Each result also states its evidence basis: verified, declared, inferred or unknown. That is the information a product decision needs, and it is the information a protection score is not designed to carry.

Where each one runs

Bot management usually runs at the network edge or in a reverse proxy, in front of everything else. That position is exactly right for protection. It sees traffic early, absorbs attacks before they cost you anything, and keeps your origin servers clean.

Proof of Actor runs where your application logic lives: server middleware, Next.js, the edge layer you control, an approved browser integration, a generic HTTP API, or your MCP server. That position gives it access to what your application knows: which route is being called, which workflow it belongs to, whether your own assistant performed an action, and whether a client declared itself. See the integration paths for the full list.

Because the two run in different places, they do not compete for the same job. A request can pass your bot management, reach your application, and then receive actor context that shapes the response.

Scores versus evidence

Many protection products express their judgement as a score. A score is efficient for a block decision: pick a threshold, act above it. It is much less useful when the question is "what experience should this actor get?"

A score does not tell you whether a low-risk request came from a person, a person working with an assistant, or a well-behaved agent. It does not tell you which parts of the conclusion were verified and which were inferred. And it cannot express "we do not know" without forcing it into a number.

Proof of Actor keeps those distinctions. A verified agent result means a request signature was checked against a published key, for example through HTTP Message Signatures. A declared result means a client or your own application stated it. An inferred result is labeled as an inference. And Unknown is a first-class answer rather than a hidden default. Your team can read every result and see exactly what it rests on.

AI-assisted people are not bots

The fastest-growing group in most applications is people working with AI. They draft messages with an assistant, fill forms with help, and move through your product with an AI tool at their side. Protection tooling was not built to separate them from other people, and it has no reason to.

Your product often does. You may want to label AI-drafted support tickets so the right team handles them, measure how AI-assisted users move through onboarding, or offer them a smoother path. Proof of Actor gives that group its own class, Human + AI, and reports it only when the assistance is declared or observable through a supported integration. Read more in the AI-assisted interaction glossary entry.

Unknown is an answer, not a threat

Every classifier meets traffic it cannot explain. Protection systems are built to lean cautious, so unclear traffic often meets a challenge. That is a sensible choice at the edge.

Inside your application, a single cautious default is often the wrong choice. An unknown request to a public documentation page and an unknown request to change an account password deserve very different handling. Proof of Actor returns Unknown as its own result and lets you set the fallback per route: allow it on public pages, keep your existing checks on account changes, route it to review on high-impact actions. The guide on handling Unknown traffic walks through the patterns.

Who decides the response

With bot management, the rule set at the edge decides. That is efficient and keeps decisions consistent across your properties.

With Proof of Actor, your application decides. The product supplies the actor context; your code applies the policy. You can serve verified agents a structured API instead of pages built for people, keep the standard experience for human sessions, label AI-assisted submissions, and ask for stronger credentials on sensitive actions when your own conditions call for it. Policies are written per route, per actor class and per basis, and they live next to the rest of your business logic.

Observation first

Bot management is usually installed to enforce, because its whole value is stopping abuse.

Proof of Actor starts in observation mode. Installing it changes nothing about how your application behaves. You see your real actor mix by route, review the evidence, preview the effect of a policy against real traffic, and enforce only when you are ready, one route at a time. The guide on rolling out actor-aware policies safely covers the process.

How the two work together

The strongest setup uses both, each in its own layer:

  1. At the edge, bot management stops credential stuffing, scraping abuse and volumetric attacks.
  2. In your application, Proof of Actor classifies the traffic that gets through as Human, Human + AI, Agent or Unknown, with its basis.
  3. In your code, policies use that context to choose the experience: the structured API for a verified agent, the normal flow for a person, a label for an AI-assisted submission, an explicit fallback for Unknown.
  4. In your analytics, your team sees which routes and workflows each actor class uses, so product and security work from the same picture.

Recording the edge decision next to the actor result makes the picture complete: what protection did, and who was actually acting.

When to choose which

Choose bot management when your main problem is abuse: account takeover attempts, inventory hoarding, aggressive scraping or traffic floods.

Choose Proof of Actor when your main question is about your users: how much of your product agents already use, which agents call your API or MCP server, where AI-assisted people struggle, and which routes need an actor-aware policy.

Most teams that operate a production application, API or MCP server need answers to both, which is why the two belong in the same stack.

Get started

Proof of Actor is in private beta. Selected founding developer teams can receive up to 12 months of free access within agreed usage limits, with direct support from the team that builds it. Apply for early access and tell us about the application and the interaction you want to understand.

FOR DEVELOPERS

What your code receives

Every interaction resolves to one result record. Your application reads the class and the basis and applies its own policy.

Result record
{
  "route": "GET /api/v1/catalog",
  "class": "agent",
  "basis": "verified",
  "evidence": [
    { "signal": "http_message_signature", "result": "valid", "keyid": "assistant.example" },
    { "signal": "client_declaration", "value": "assistant.example" }
  ],
  "observed_at": "2026-11-13T10:42:07Z"
}
class
Human, Human + AI, Agent or Unknown.
basis
How strong the evidence is: verified, declared, inferred or unknown.
evidence
The signals behind the result, so your team can see why.

Start in observation mode: record results next to your logs and change nothing until you choose a policy. Read the Node.js integration guide

Frequently asked questions

Does Proof of Actor replace bot management?

No. Bot management stops abusive automation such as credential stuffing, scraping abuse and volumetric attacks before it reaches your application. Proof of Actor works inside your application and gives it actor context for product and policy decisions. Keep both.

Why not use a bot score to make product decisions?

A bot score is built to answer whether to stop a request. It usually does not say whether a person was working with AI, which agent is calling, or what evidence the score rests on. Proof of Actor returns a class and an explicit basis, which is what product decisions need.

Can the two share signals?

Yes. Your application can record the outcome of edge controls alongside the Proof of Actor result, so your team sees both the protection decision and the actor context for the same request.

Does Proof of Actor block traffic?

No. It starts in observation mode and changes nothing until you write a policy. Enforcement always lives in your own application code.

Which one should I add first?

If you face active abuse, start with bot management. If you want to understand and serve the people, AI-assisted users and agents already using your product, add Proof of Actor. Most production teams end up with both.

Know who's using your app.

Private beta for a small group of founding developers.

Prefer to talk first? Talk to the founders