Gate agent tool calls: execute the safe ones, escalate the risky ones

A calibrated gate for autonomous agent actions — run code, send email, move money — scaling caution to reversibility and abstaining on irreversible guesses.

The problem

Once an agent can take real actions, a single confident-but-wrong tool call can do real damage — a bad transfer, a destructive command, an email to the wrong list. You want autonomy on the safe, reversible actions and a human in the loop on the rest.

What the gate decides

Is this tool action trustworthy enough to execute, or should it escalate to a human?

What closes the loop

Did the action succeed / was it reversed.

cell: tool:<name>

The code

Zero-dependency SDK. Mint a key on your dashboard and drop this in.

Python
from warmwinter import WarmWinter

ww = WarmWinter(api_key="ww_YOUR_KEY",
                base_url="https://api.warmwinter.io")

# Gate: is this tool action safe to execute? (stakes by reversibility)
d = ww.decide(domain="agent", decision_type=f"tool:{name}",
              stated_confidence=agent_confidence,
              stakes="high" if irreversible else "medium",
              on_ungrounded="abstain")
if d.verdict == "act":
    res = execute(name, args)
    ww.outcome(d.decision_id, "success" if ok(res) else "failure")
else:
    escalate_to_human(name, args)   # never execute on a guess
TypeScript
import { WarmWinter } from "./warmwinter";

const ww = new WarmWinter({ apiKey: "ww_YOUR_KEY", baseUrl: "https://api.warmwinter.io" });

// Gate: is this tool action safe to execute? (stakes by reversibility)
const d = await ww.decide({
  domain: "agent", decisionType: `tool:${name}`,
  statedConfidence: agentConfidence,
  stakes: irreversible ? "high" : "medium",
  onUngrounded: "abstain",
});
if (d.verdict === "act") {
  const res = await execute(name, args);
  await ww.outcome(d.decisionId, ok(res) ? "success" : "failure");
} else {
  escalateToHuman(name, args);   // never execute on a guess
}

Why it works

The gate returns act only where it has verified — against your own resolved outcomes — that this kind of action is trustworthy; otherwise it escalates or abstains. Stakesraise the bar for riskier actions. Nothing is graded on volume — only on outcomes that actually resolved. There is no global accuracy number; trust is per cell. That calibrated humility is the point: the system tells you where it doesn't know yet.

Wrap this call in about five minutes. Free to start.

Get your API key →

More recipes