Know every agent you're running. Govern every call it makes.
Forgebench registers every agent in your estate, binds what it may reach, caps what it may spend, and records what it did — in one self-hosted deployment.
- Self-hosted
- Model-agnostic
- Air-gap supported
- ISO 27001
- ISO 9001
- SOC 2 Type 1
Governance you can prove. Control you can use.
Built for leaders who own the AI estate, and engineers who run it day to day
Forgebench · CTO
Account for the fleet.
One list holds every agent in production with its owner, its version, what it is authorized to reach, and what it has spent against its ceiling. You stop asking the teams that built them.
Every call takes one route. Nothing goes around it.
An agent is registered before its first call. From then on, every model call and every tool call it makes crosses the same path, and each stage of that path enforces something the agent cannot remove.
An agent reaches what you bind it to, and nothing else
Bound at registration. The MCP servers and tools an agent may call are an allowlist decided when it is registered — not trusted to the agent's own code. An agent with no binding can call no tool.
Enforced on every call. A tool call outside the allowlist is refused before the tool runs. The agent implements nothing and can bypass nothing.
Three decisions per tool. Allow, deny, or require approval — with a recorded justification where you need one.
Revocable live. Revoke a tool, or an entire MCP server, during an incident. It holds on the next tool call. No deploy, no release cycle.
erp.read_invoiceAllowerp.post_journalApprovalemail.sendApprovalfiles.read_shareAllowpayments.transferDenyweb.fetchDenyIt runs where your models run
Self-hosted in your own infrastructure, air-gapped if you need it, on models inside your perimeter with no external credentials.
- Self-hosted
- Air-gap supported
- In-perimeter models
- SSO with joiner and leaver handling
- Tenancy enforced in the database
- Permissively licensed
- ISO 27001
- ISO 9001
- SOC 2 Type 1
One registration. Then one client change.
The agent team makes one change to its client. Its existing calls keep working, its logic is never restructured, and its first call flips it live. Any agent nobody has configured inherits the platform defaults, so it is still bounded and still covered.
from openai import OpenAIclient = OpenAI( api_key=os.environ["PROVIDER_API_KEY"],)resp = client.chat.completions.create( model="claude-opus-5", messages=messages, tools=tools,)from openai import OpenAIclient = OpenAI( base_url=os.environ["FORGEBENCH_GATEWAY_URL"], api_key=os.environ["FORGEBENCH_AGENT_KEY"],)resp = client.chat.completions.create( model="claude-opus-5", messages=messages, tools=tools,)Highlighted lines are the only difference. The call itself, the model, the messages and the tools are untouched.
Read the quickstart guideStart with an audit of your existing fleet
You don't have to commit to a platform to find out how many agents you are running, what each one costs, and what your current record proves.
- 01 Week
We deploy — into your environment. The gateway and observability arrive with it, so there is no integration project to fund first. One of your engineers can be trained to run it, or we run it.
- 02 Week
We register — the agents already running in production. Each one gets an identity, a credential, and an inventory row.
- 03 Week
You receive — an inventory with owners, spend attributed by agent and by use case, a view of what each agent is currently permitted to reach, and a recommendation on where ceilings should sit.
Every agent, governed. Every dollar, accounted for.
Contact Us
