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 approves

Where 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.