Repository navigation
v0.25.4
ToolGate judges large calls whole, and commands only whole
Feature decision; #309, #310, #311.
- Before: every string argument over 2,000 characters was cut to its head and tail.
- A 100k-character
write_filewas judged on 2k of its content. - A long
bashscript withrm -rfin the middle was judged without that line. - A call still over 12k after that was denied.
- A 100k-character
- Now, whole when it fits: arguments are sent whole when they fit
with_max_argument_chars(default 48,000) and the decision backend's token limits (the strictest in anorchain). - Now, cut only as needed: a call that does not fit has only its longest strings cut, and only as far as needed. A cut is never made where its marker would grow the call. The state lists every cut under
tool_call.omitted, so the decision model knows it is judging a partial view. - Full views: some arguments are judged whole or denied, never cut (
with_full_view(tool, json_pointer); by defaultbash's/command;without_default_full_viewsdrops it). Calls are never judged in pieces. - Logging: a partial view is logged at
info(which arguments, how many characters the gate did not see), and so is every refusal based on the model's answer.
Behaviour change: a bash command too large to review whole (about 48,000 characters serialized, or the backend's token limit if smaller) is now denied instead of judged from its head and tail. More calls are sent in full, so large calls cost more decision-model input tokens.
Also: the agent skill's "What changed" covers this release, and the installation page's snippet now says yoagent = "0.25".
Full notes: CHANGELOG.