Agent Custody Control Plane
Design agent custody, delegation, expiry, and revocation.
Data, Agents and Crypto Custody
Who is allowed to hold, change, move, or release something?
Tools and experiments for ownership, control boundaries, delegated authority, secure handoffs, and accountable AI systems.
Custody is a Hugging Face organization for exploring a simple but increasingly important engineering question:
Who has control of an asset, capability, secret, instruction, or decision at any given moment?
In software, custody is usually associated with things like:
In agentic systems, the same idea becomes much broader.
An AI system may temporarily hold:
That creates a real custody problem.
Not everything an agent can access should automatically become something it can freely use.
A custody system usually has four questions:
what is being controlled?
who currently controls it?
what are they allowed to do?
how does control move to someone else?
That sounds obvious.
In practice, many systems blur these questions together.
For example:
can read
≠
can modify
can modify
≠
can publish
can publish
≠
can transfer ownership
has access now
≠
should keep access forever
A useful custody layer keeps those distinctions explicit.
Agents are increasingly able to act across external systems.
They may:
At that point, "does the model know what to do?" is only half the problem.
The other half is:
Does the system still know who is responsible for the thing being acted on?
Custody gives us a way to model that.
This org is for practical experiments around:
A minimal custody record might look like this:
{
"asset": "customer-export.csv",
"custodian": "analysis-agent",
"permissions": [
"read",
"summarize"
],
"forbidden": [
"publish",
"external-transfer"
],
"delegated_by": "user",
"expires_at": "2026-09-18T12:00:00Z",
"handoff_requires": "explicit-approval"
}
The point is not the JSON format.
The point is that control becomes inspectable.
You can answer:
This distinction matters.
A system may technically be able to access something while not being the legitimate custodian of it.
For example:
credential exists in environment
→ agent can technically use it
but
credential was not delegated for this task
→ agent should not use it
That gap between technical capability and authorized custody is exactly where a lot of agent-control problems begin.
Custody does not need to mean money or cryptographic keys.
It can apply to almost any controlled resource:
documents, personal data, datasets, memory, logs
tools, APIs, execution rights, browsing, payments
accounts, credentials, delegated user identity
code, drafts, reports, generated files
approval rights, release authority, escalation authority
task ownership, handoff responsibility, checkpoints
weights, adapters, private endpoints, deployment rights
A few projects that fit this org naturally:
One useful way to think about custody is as a state machine.
UNASSIGNED
↓
GRANTED
↓
IN CUSTODY
↓
USED
↓
HANDOFF REQUESTED
↓
TRANSFERRED
↓
REVOKED / RELEASED
There should be a clear reason for every transition.
Especially:
grant
transfer
extend
revoke
release
Those should never be invisible side effects.
A useful custody layer should make these things obvious:
Who currently has control?
What exactly may they do?
Who granted the authority?
How long does the custody last?
Can custody be delegated further?
Who can take it back?
What record proves what happened?
If one of those is unclear, custody becomes ambiguous.
And ambiguous custody is where accidental authority expansion tends to happen.
A common failure pattern looks like this:
user
↓
agent A
↓
agent B
↓
tool
The mistake is assuming that agent B automatically inherits everything agent A could do.
It should not.
A safer model is:
user grants:
read + summarize
agent A delegates:
read only
agent B receives:
read only
tool receives:
minimum capability required
Authority should usually become narrower as it moves deeper into a workflow.
Not broader.
For important assets, it should be possible to reconstruct the full control history.
Something like:
09:14 user created asset
09:15 user delegated read access to agent-a
09:17 agent-a produced derived artifact
09:18 agent-a requested publish authority
09:19 user approved publication
09:20 publishing-agent received one-time capability
09:21 publication completed
09:21 capability revoked
That is much easier to reason about than:
the agent had access
Multi-agent workflows make custody especially interesting.
When several agents collaborate, responsibility can become blurry very quickly.
For example:
Who owns the final artifact?
Who may discard it?
Who may override validation?
Who is responsible if it is transferred outside the system?
Those are custody questions.
A lot of agent infrastructure still grants permissions like this:
allow forever
That is convenient.
It is also usually more authority than the task needs.
A more useful pattern is:
grant capability
↓
perform task
↓
verify completion
↓
revoke capability
This turns access into a bounded session of custody.
Some actions should require more than one party before custody changes.
For example:
agent proposes transfer
+
policy approves scope
+
human approves release
=
custody moves
That resembles escrow.
It is especially useful for:
A few patterns worth testing:
stale permission
orphaned asset
unclear owner
delegation without consent
silent privilege expansion
custodian disappears
handoff not acknowledged
revocation fails
expired access remains usable
two agents believe they both own the task
asset transferred without a durable record
These are not only security failures.
They are coordination failures too.
This is not meant to be:
The interesting part is not "how much can an agent control?"
The interesting part is:
How precisely can we define, transfer, limit, and revoke that control?
┌──────────────────────────┐
│ ASSET │
└────────────┬─────────────┘
│
↓
┌──────────────────────────┐
│ CUSTODY RECORD │
│ holder │
│ scope │
│ expiry │
│ delegation rights │
└────────────┬─────────────┘
│
┌───────┴────────┐
↓ ↓
┌──────────┐ ┌──────────┐
│ AGENT │ │ HUMAN │
└────┬─────┘ └────┬─────┘
│ │
└──────┬──────────┘
↓
APPROVE / TRANSFER
REVOKE / RELEASE
The custody record is the part that keeps the workflow understandable.
If those questions have clear answers, the system is much easier to trust.
As agents become more capable, I expect custody to become a first-class concept in agent infrastructure.
Not only:
authentication
authorization
but also:
delegation
custody
handoff
revocation
release
That is the layer this org is meant to explore.
Custody is about explicit control.
This org explores how humans, agents, and tools can safely hold and transfer authority over data, capabilities, artifacts, credentials, and decisions.
The goal is not maximum autonomy.
The goal is making control bounded, visible, transferable, and revocable.
custody
hold less · delegate clearly · revoke cleanly