from openai import OpenAI
from certior import Guard
from certior.adapters.tool_use import verify_tool_calls
client = OpenAI()
guard = Guard(
policy="default",
permissions=["network:http:read", "filesystem:read"],
budget_cents=5000,
)
TOOL_SPECS = {
"search_web": {"required_capabilities": ["network:http:read"], "cost_cents": 2},
"read_file": {"required_capabilities": ["filesystem:read"], "cost_cents": 1},
"db_admin_drop": {"required_capabilities": ["database:admin"], "cost_cents": 0},
}
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Find recent papers on formal verification."}],
tools=[...], # your OpenAI tool definitions
)
verified = verify_tool_calls(
guard,
response.choices[0].message.tool_calls,
tool_specs=TOOL_SPECS,
)
for call in verified:
if call["allowed"]:
result = execute_tool(call["name"], call["input"])
archive(call["certificate"])
else:
print(f"Blocked {call['name']}: {call['reason']}")