Use case · OpenAI Assistants
Human-in-the-loop approvals for OpenAI Assistants and tool calls
When an OpenAI Assistant (or a raw tool/function call) returns an action that touches the real world, run it through Seal first. One gate.require() pauses for a human approval, enforces the verdict, and logs it — so model-chosen actions can't execute unchecked.
await gate.require("refund.issue", { orderId, amount });
// run the tool call only after a human approvesWhere it fits
- ›Gate a function/tool call the model requested before you execute it
- ›Approve only high-risk actions by amount, scope, or tool name
- ›Keep an auditable record tying each action to a human decision
Frequently asked questions
How do I add human approval to OpenAI function calling?+
When the model returns a tool call, pass it through gate.require() before you execute the function. Seal blocks on the human verdict, enforces it, and records the decision — so a model-chosen action never runs without sign-off when policy requires it.
Does this work with the Assistants API and the Responses API?+
Yes. Seal sits between the model's requested action and your execution of it, so it works with the Assistants API, the Responses API, or a plain chat-completions tool loop.