Expand description
OpeningGate — narrow the very first LLM call’s tool list to a
caller-supplied subset.
A common product pattern is “the model must frame / plan / clarify on its opening turn before any work tools are available.” This gate enforces that on the wire: on iteration 0 it advertises only the tools whose names are in the configured allowlist (intersected with the tools the registry actually has); from iteration 1 on it imposes no narrowing. Pair it with a system-prompt sentence that explains the same contract in prose — the wire-level constraint is harder for a model to ignore than text instructions.
The gate ships no default allowlist: it is vocabulary-free, so the
core stays free of any product’s tool names. Callers supply the
opening subset via OpeningGate::with_allowlist. Composes with other
ToolGate plugins through allowlist intersection.
Structs§
- Opening
Gate - Narrows iteration 0’s tool advertisement to a caller-supplied subset.
Composes via allowlist intersection with other
ToolGateplugins.