administering ai

Agents with a leash, not a blank cheque.

An agent that can call your tools is an agent that can call your tools *as someone*. fastverk makes that someone you: identity is forwarded on every tool call, each plugin stays its own authorization boundary, and writes preview before they fire — they can't ask and act in the same turn.

An agent's reach is exactly the signed-in user'sEach plugin is its own authorization boundaryWrites preview, then fire on a later turn — never the same oneThe model turn runs on Bedrock via IRSA — no static keyEscalation raises a HumanPrompt and blocks on a person
the wrong question

"What can the agent do?" is the wrong question.

The right one is whose authority it is doing it with.

Most agent deployments provision a service account, grant it what the agent might need, and hope the prompt holds. That model fails in a specific and predictable way: the agent's reach is the union of what everyone might need, permanently, and the audit trail records a robot instead of a person.

Invert it. The agent carries your identity on every call, and each capability's owner — not the agent host — decides whether you may use it. Now the agent's reach is a reduction of yours, never an expansion, and the trail names a human.

yours
the identity on every tool call
forwarded per call, not pooled
per plugin
where authorization lives
the host never decides
two turns
minimum for any write
preview, approve, then act
IRSA
how the model is reached
no long-lived provider key
the deputy

An agent's reach is exactly yours.

Four properties that hold together — remove any one and the model collapses back to a service account.

01

Forward

The host forwards the signed-in user's identity on every tool call. There is no shared service account to over-scope, and the forge records a person rather than a bot.

02

Boundary

Each plugin's own MCP server is the authorization boundary. The host aggregates tools; it never decides what you may do. The owner of the capability does.

03

No static key

The model turn runs on Bedrock through the pod's IRSA role — there is no long-lived provider credential to leak, rotate, or find in a log.

04

Later turn

A write comes back flagged for confirmation as a preview. It only fires after you approve and the model re-calls it on a subsequent turn. It can't ask and act at once.

confirm-gating

Preview first. Always.

Gating is by shape, not a hardcoded list — the owning plugin declares what mutates. Values illustrative.

Tool dispatch as you
one turn · aggregated MCP catalog
toolkindacting asoutcome
polyglot__search_code read you returned 14 code units
tbzl__affected_targets read you 312 targets · 9 repos
forge__open_pull_request write you preview — awaiting approval
forge__merge write you blocked — not approved
rule: a write fires only on a later turn, after you approvescope: each plugin's MCP server is the authorization boundary
vs a shared bot account

The trail should name a person.

The alternative pools everyone's authority into one credential and then asks the logs to sort it out.

fastverk
a shared bot account
Identity on a tool call
The signed-in user, forwarded
One pooled service account
Effective reach
A reduction of yours
The union of everyone's
Who authorizes
The plugin owning the capability
Whoever provisioned the token
Writes
Preview, approve, then a later turn
Fire on call
Model credentials
IRSA — no static key
A provider key in an env var
Forge audit trail
Names a human
Names the bot

It's a faithful deputy: each plugin stays the authorization boundary, so an agent can only do what you could.

plugin-chat · identity forwarded per tool call
what this rests on

Backed by shipping plugins.

Each claim on this page is anchored to a plugin that provides it. The site build resolves these cross-references against the live feature catalog and fails if one of them doesn't exist — so this list can't quietly outlive what the platform ships.

related

Adjacent problems.

Prove it's safe to merge.

Hosted, or launched into your own AWS account. Start free — no card required.