Budgets & Agent Keys
Manage spend and rate limits, and issue API keys for your registered agents.
Changing agent budgets
Inspect and update limits in chat:
"Show details for researcher-agent"
"Set researcher-agent's monthly budget to $40"
"Limit researcher-agent to 100 tool calls per hour"How budget changes work
- Decreases and small adjustments: applied in chat after you confirm.
- Increases above your role's self-service limit (dollar or token): your assistant returns a
confirm_urland reports Budget change requires console confirmation. Open the link, sign in, and approve the change. - Increases above the workspace cap: sent to workspace admins as an approval request. If you see Budget exceeds workspace cap, lower the proposed cap or ask an admin to raise the workspace budget.
Claiming agent API credentials
API keys are never printed in chat (Zero Secrets in Chat).
Step 1: Request a credential
Type:
Give me an API key for researcher-agentYour assistant returns a single-use claim link:
Here is your secure link to reveal the API key for 'researcher-agent':
https://app.forgebench.ai/confirm/cred_claim_8b39a...
(Link expires in 15 minutes)Step 2: Reveal the key in your browser
- Open the link.
- Sign in to Forgebench. Only the agent's owner or a workspace admin can reveal the key; anyone else gets a permission error.
- Review the agent's permissions, model allowlist and budget.
- Click Reveal Key and copy the secret (
sk_agent_...).
If the link expired or you lost a key, ask for a new one: "Give me a new key for researcher-agent". Issuing a new key doesn't revoke earlier ones.
Step 3: Run your agent with the credential
Store the key in your project's .env file, and make sure .env is in .gitignore:
export FORGEBENCH_AGENT_KEY="sk_agent_01h8..."
export FORGEBENCH_GATEWAY_URL="https://api.forgebench.ai/v1"Use it in your agent code:
import os
from forgebench import Forgebench
client = Forgebench(
api_key=os.environ["FORGEBENCH_AGENT_KEY"],
base_url="https://api.forgebench.ai"
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "hello"}],
)import { Forgebench } from "@seedlinglabs/forgebench-sdk";
const forgebench = new Forgebench({
baseUrl: "https://api.forgebench.ai",
apiKey: process.env.FORGEBENCH_AGENT_KEY!,
});
const response = await forgebench.chat.create({
model: "gpt-4o",
messages: [{ role: "user", content: "hello" }],
});import ai.forgebench.ChatCompletionRequest;
import ai.forgebench.ChatMessage;
import ai.forgebench.Forgebench;
import ai.forgebench.types.ChatCompletion;
Forgebench client = Forgebench.builder()
.apiKey(System.getenv("FORGEBENCH_AGENT_KEY"))
.baseUrl("https://api.forgebench.ai")
.build();
ChatCompletion response = client.chat().completions().create(ChatCompletionRequest.builder()
.model("gpt-4o")
.addMessage(ChatMessage.user("hello"))
.build());curl -s https://api.forgebench.ai/v1/chat/completions \
-H "Authorization: Bearer $FORGEBENCH_AGENT_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "hello"}]
}'import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["FORGEBENCH_AGENT_KEY"],
base_url=os.environ.get("FORGEBENCH_GATEWAY_URL", "https://api.forgebench.ai/v1")
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "hello"}],
)Your agent moves from sealed to registered, then to active after its first successful call.

