Skip to content

CaberActive Data Use Control for Agentic AI

Freshness, provenance, and policy, checked down to the sentence before agents see it.

Caber provides active, inline data use control, sub-document mutation, and fragment-level provenance for Generative AI, Retrieval-Augmented Generation (RAG), and autonomous agentic workflows.


Three facts about enterprise data explain why controlling how AI uses data is hard—and why file-level permissions and prompt-only scanners fall short. For the underlying studies, definitions, and a worked example, see Technical Insights.

1. Enterprise data is duplicated, mostly inside documents

On corporate file servers, 15% to 44% of the bytes in user-authored data are duplicates across 64 KB segments, while whole-file matching finds only 2% to 16%. People copy the same paragraphs, tables, and boilerplate into files that otherwise differ, so controls that track whole files miss most of the copies.

2. Most business data does not identify itself

Some data identifies itself: a payment card number has a fixed format and a check digit, so a pattern match finds it in any file. Most business data carries no such marker. Take a sentence from a board memo. Whether it is fresh (the current version), stale (because a newer document replaced it), or a trade secret (valuable because its owner keeps it secret) depends on facts outside the sentence. A classifier that reads only the text cannot tell these cases apart.

3. Content is finite; context is unbounded

A sentence is a fixed, finite string of bytes, but the context that governs how it may be used—where each copy came from, who owns it, who may read it, which version is current, and which policies apply—keeps growing with every new copy, reader, version, and policy. Content copies freely, while context stays behind: a sentence pasted into an email loses the permissions of the folder it came from. Because the same sentence means different things in different places, handing raw text to an agent strips the rules that control its use.


How Caber Works ​

Caber solves these three problems by identifying content down to the sentence, gathering context from every copy across your systems, and enforcing policy in process at inference time. The Technical Insights page covers each step in detail.

  1. Fingerprint content. Split each file, message, or API payload into fragments of about one sentence, and give each fragment a deterministic fingerprint. The same text gets the same fingerprint wherever it appears.
  2. Link the copies. Group fragments with the same fingerprint across sources, formats, and systems so partial copies inside different documents share one identity.
  3. Collect context from every copy. Attach each copy's source, owner, permissions, and timestamps, along with extracted entities and ontology labels, to the fragment in a context graph.
  4. Resolve versions (beta). Arrange related documents into a version history built from their shared fragments so policies can identify superseded content.
  5. Decide at inference time. When an agent or application retrieves data, run compiled Rego policies in process against the fragment's context, the end user the agent acts for, and the purpose of the request to release, mask, replace, or withhold the fragment.
  6. Record the decision. Emit an audit receipt that records the fragment, the policy, the identity, and the declared purpose.

What Sets Caber Apart ​

  • Sentence-Level Provenance: Links each data fragment (down to 64 bytes, about a sentence) to every stored copy, its source object, and its exact byte span.
  • Multi-Version Freshness Arbitration (beta): Rebuilds version history from overlapping copies and withholds superseded revisions at decision time (88% freshest-version accuracy; 0.974 Kendall tau on a git-history benchmark).
  • Duplicates as Signal: Groups identical fragments across email, chat, shared drives, and databases into equivalence classes with percent-overlap scoring to surface where duplicated content lives.
  • Inline Rego Policies: Compiles RBAC, ABAC, tenant, and purpose rules to WebAssembly for in-process evaluation with no network or database call on the decision path, hot-reloadable and fail-closed by default.
  • On-Behalf-Of (OBO) User Identity: Decodes JWT, AWS SigV4, SPIFFE, and mTLS credentials and propagates the end user's identity across agent, MCP tool, and API hops via W3C trace context so policy evaluates the human behind the call.
Caber Architecture Overview (Dark Mode)Caber Architecture Overview (Light Mode)

Zero-Code Integration ​

Caber instruments existing Python applications without code changes. Set the connection to your Caber deployment, then run your application under caber-run:

bash
export CSI_API_KEY="your-api-key"
export CSI_CABER_HOST="https://your-caber-instance.example.com"

caber-run python app.py
caber-run uvicorn myapp:app --host 0.0.0.0

Or enable it in code, before any HTTP or agent framework library is imported:

python
import pycaber.auto  # must come before HTTP and agent framework imports

import requests
from langgraph.prebuilt import create_react_agent
# Tool calls, retrievals, and API responses are now captured and checked against policy

pycaber patches 15 transports, including requests, httpx, aiohttp, and urllib3; WSGI and ASGI servers; WebSocket clients; and gRPC clients and servers. It captures tool, retriever, and memory calls in LangChain, LangGraph, CrewAI, LlamaIndex, and AutoGen without changes to agent logic. For custom functions exposed to agents, the @pycaber.tool decorator attaches policy metadata. Policies are authored and deployed in caber-core, not in application code.


Performance & Sizing ​

PropertyValueStatus
Fragment Granularity64-byte minimum, about 187 bytes typical, about 820-byte maximumImplemented (content-defined fragmentation)
Policy Evaluation PathCompiled Wasm in process; no network or database callImplemented
Policy Evaluation LatencyP95 under 2.5 msDesign target
Mediated Retrieval LatencyUnder 35 msDesign target
Freshest-Version Accuracy88% freshest match; Kendall tau 0.974Measured on a git-history benchmark (beta)

Design targets are engineering goals, not measured results.


Ecosystem Integrations ​

Caber connects across your existing AI and infrastructure stacks:

Agent FrameworksModels & Vector StoresProtocols & IdentityData Sources (Connectors)
• LangGraph
• LangChain
• LlamaIndex
• CrewAI
• AutoGen
Calls detected and typed (beta):
• OpenAI, Anthropic
• AWS Bedrock
• Google (incl. Vertex AI)
• Cohere, Mistral
• Groq, Together, Fireworks, DeepSeek, Perplexity
• Self-hosted endpoints (e.g., vLLM, by configuration)
• Pinecone, Weaviate, Chroma
• Model Context Protocol (MCP)
• A2A (beta)
• gRPC / protobuf, WebSocket
• OIDC / JWT identity providers
• AWS SigV4, SPIFFE, mTLS
• AWS S3 / MinIO
• Google Cloud Storage
• Azure Blob
• PostgreSQL, MySQL, SQLite
• File systems
• CloudTrail, Kafka, API polling

Caber is self-hosted with Docker Compose, including a single-host trial mode. Internally, caber-core uses RocksDB with Roaring bitmaps for the fingerprint index, OpenSearch for events and content, and Neo4j for the context graph.


Quick Navigation ​