Give each agent a persistent identity, owner, purpose, and set of capabilities.
Agents register once with Fabriq and carry that identity across every tool call, so nothing runs anonymously or under a borrowed service account.
Ship production agents without rebuilding identity, permissions, and governance into every application.
AI teams can quickly connect a model to tools. The harder problem is determining what each agent should be allowed to do once it begins operating on behalf of real users.
Scopes resolve per request against the person the agent is acting for, so the same registration can reach further for one engineer than for another.
$ agent run “pull Q2 signup counts by plan and open the follow-up PR”
snowflake.query · approved_datasets.signupsallowedRan on a short-lived credential the agent never sees.snowflake.export · customer_contactsblockedRestricted data: outside the grant, so no call left Fabriq.github.pull_request.open · analytics/etlallowedInside the repositories this agent was registered for.github.deployment.create · productionnot offeredNever granted to this agent, so the tool was not in the list it was handed.$
Agents register once with Fabriq and carry that identity across every tool call, so nothing runs anonymously or under a borrowed service account.
One deployment serves the whole team: reach resolves at request time from the acting user’s role, not from whatever the integration was granted.
Grants live beside the agent’s registration where they can be read and changed — narrowing one never means redeploying the agent or rewriting a prompt.
An action the agent was never granted does not appear in the tool list it is handed, so there is nothing to intercept at call time — and if it asks anyway, the refusal is recorded with the attempt.
The agent requests access per call and receives a short-lived, limited credential — there is no API key in the prompt, the code, or the model’s context.
Every step is linked in one record, so debugging or an incident review starts from the action and walks backward in minutes.
Controls attach to the agent’s identity, not the stack — swap the model or framework and the same policies keep enforcing.
Explore the context attached to every request.
research-agent has a defined purpose and a bounded set of tools.
The request acts for engineer, using that person’s permissions.
The policy applies to the requested action within Approved datasets, before the tool executes.
Read scopes cover the approved systems only; export and external-share actions are blocked at the gateway, not left to the prompt.
The agent is granted branch pushes and pull requests and nothing else. Merge and deploy are not in the tool list it receives, so those stay with an engineer.
Row- and field-level filters come from the requesting user’s own permissions, so two employees asking the same question see only their own slice.
The refund action has to sit in both the agent’s grant and that rep’s own permissions. A rep without refund authority lends none to the agent, and every resolution is recorded with both identities.
No. Fabriq is a permissions layer that drops in between your agents and your systems. Agents keep their model, framework, and code; you register their identity and route tool calls through Fabriq, and policy, credentials, approvals, and logging attach at that layer.
The call is refused before it reaches the tool. The attempt is logged with full context — agent, user, resource, and which check stopped it — so teams can tune the grant rather than guess.
In Fabriq’s vault. They’re injected server-side at call time and refresh automatically before expiry — the agent process never holds a raw key.
Yes — that is the core of it. Reach resolves at request time from the acting user’s identity, so the same deployed agent can query a dataset for one engineer and be refused the same query for another. You decide what is reachable and what is allowed, per user, per action.
Import an OpenAPI spec and it becomes agent-usable tools automatically, register an MCP server, or connect Postgres with read-only guardrails — internal systems stay behind your firewall over an outbound-only tunnel.
One trail across every agent and tool — who asked, which agent acted, what it touched, and the verdict — queryable in the dashboard and exportable to your own tooling.