teknium1
8fbe2e388f
feat(tool_search): probe-validate blind tool_call args against the deferred schema
...
Port from nearai/ironclaw#5149 (the describe-first live-hardening fix in
their progressive tool disclosure work): when a model invokes a deferred
tool through the tool_call bridge without the schema-required arguments,
return the tool's parameter schema instead of dispatching blind.
Pre-fix, a blind call produced an opaque downstream failure
("[TOOL_ERROR] Tool execution failed: KeyError: 'document_id'") that
teaches the model nothing about what the tool expects — IronClaw observed
cheap models looping ~30 identical invalid calls until the iteration
budget died. Post-fix, the model repairs the call in one round-trip.
- tools/tool_search.py: new validate_deferred_call_args() — key-absence
check of schema 'required' fields only; no type checking (coerce_tool_args
already repairs types downstream); fails open on any validator error so
it can never block a legitimate dispatch.
- model_tools.py: probe after the scope gate in the bridge dispatch.
- agent/tool_executor.py: probe in both unwrap sites (concurrent +
sequential) before the underlying tool replaces the bridge; sequential
path flattens the payload to match its {"error": str} wrapping.
- tests: TestDeferredCallSchemaProbe — blind call returns schema (not
KeyError), valid/optional calls dispatch, unvalidatable tools fail open,
out-of-scope rejection unchanged.
2026-07-26 20:59:36 -07:00
..
2026-07-17 04:53:38 -07:00
2026-07-05 14:48:40 -07:00
2026-07-12 22:43:57 -07:00
2026-07-13 04:31:55 -07:00
2026-07-26 20:58:52 -07:00
2026-07-06 04:58:42 -07:00
2026-07-24 15:55:08 -07:00
2026-07-26 17:13:52 -07:00
2026-07-24 23:09:02 -07:00
2026-07-23 19:45:54 -07:00
2026-07-16 23:41:26 -07:00
2026-07-16 23:41:26 -07:00
2026-07-18 10:07:46 -07:00
2026-07-26 18:28:20 -07:00
2026-07-26 17:46:55 -07:00
2026-07-26 17:46:55 -07:00
2026-07-16 04:24:07 -07:00
2026-07-16 04:25:19 -07:00
2026-07-21 12:04:47 -07:00
2026-07-23 08:11:58 -07:00
2026-07-18 15:07:04 -07:00
2026-07-04 02:37:33 -07:00
2026-07-26 19:29:07 -07:00
2026-07-14 02:59:39 +05:30
2026-07-16 00:18:38 -07:00
2026-07-20 09:21:08 -07:00
2026-07-24 13:37:04 +10:00
2026-07-23 11:55:17 -07:00
2026-07-23 07:33:36 -07:00
2026-07-26 17:13:52 -07:00
2026-07-26 20:36:47 -07:00
2026-07-20 06:50:31 -07:00
2026-07-26 18:02:04 -07:00
2026-07-22 12:13:01 -05:00
2026-07-09 15:38:32 +05:30
2026-07-26 08:26:09 -07:00
2026-07-26 20:58:39 -07:00
2026-07-24 11:45:57 -07:00
2026-07-24 09:49:00 -07:00
2026-07-16 08:52:47 +10:00
2026-07-20 06:50:11 -07:00
2026-07-23 07:33:36 -07:00
2026-07-17 20:55:24 +00:00
2026-07-13 01:59:58 -04:00
2026-07-05 14:42:05 -07:00
2026-07-16 00:18:38 -07:00
2026-07-06 01:55:58 -07:00
2026-07-20 02:25:53 -07:00
2026-07-16 00:18:38 -07:00
2026-07-16 00:18:38 -07:00
2026-07-16 00:18:38 -07:00
2026-07-14 17:09:40 +05:30
2026-07-16 22:46:46 -04:00
2026-07-22 12:13:01 -05:00
2026-07-26 20:58:43 -07:00
2026-07-05 02:24:00 -07:00
2026-07-23 07:33:36 -07:00
2026-07-05 13:51:26 -07:00
2026-07-24 17:10:39 -07:00
2026-07-14 02:59:39 +05:30
2026-07-04 15:30:50 -07:00
2026-07-17 20:55:24 +00:00
2026-07-26 16:27:52 -07:00
2026-07-26 19:28:55 -07:00
2026-07-17 20:55:24 +00:00
2026-07-17 06:54:51 -07:00
2026-07-16 01:28:24 -07:00
2026-07-16 01:28:13 -07:00
2026-07-16 01:28:24 -07:00
2026-07-17 20:55:24 +00:00
2026-07-24 23:09:02 -07:00
2026-07-03 05:30:16 -05:00
2026-07-21 12:43:27 -07:00
2026-07-17 20:55:24 +00:00
2026-07-17 20:55:24 +00:00
2026-07-17 04:50:47 -07:00
2026-07-05 13:40:21 -07:00
2026-07-21 12:42:33 -07:00
2026-07-17 04:57:12 -07:00
2026-07-17 04:50:47 -07:00
2026-07-17 04:50:47 -07:00
2026-07-21 12:43:00 -07:00
2026-07-18 18:49:56 -04:00
2026-07-05 21:36:19 -07:00
2026-07-21 12:42:33 -07:00
2026-07-21 12:42:33 -07:00
2026-07-17 20:55:24 +00:00
2026-07-05 21:48:36 -07:00
2026-07-21 12:43:27 -07:00
2026-07-05 02:06:39 -07:00
2026-07-17 20:55:24 +00:00
2026-07-24 15:47:12 -07:00
2026-07-07 15:16:00 -07:00
2026-07-18 04:15:13 -07:00
2026-07-07 15:16:00 -07:00
2026-07-21 19:54:40 -05:00
2026-07-26 08:26:09 -07:00
2026-07-21 12:42:33 -07:00
2026-07-09 15:38:32 +05:30
2026-07-24 15:58:01 -07:00
2026-07-09 20:03:11 -07:00
2026-07-22 12:13:01 -05:00
2026-07-13 02:42:18 -07:00
2026-07-24 15:59:02 -07:00
2026-07-24 13:00:53 +05:30
2026-07-17 20:55:24 +00:00
2026-07-07 15:14:30 -07:00
2026-07-16 00:18:38 -07:00
2026-07-14 22:14:10 -07:00
2026-07-26 08:26:09 -07:00
2026-07-23 12:01:24 -07:00
2026-07-22 21:58:13 -07:00
2026-07-16 00:18:38 -07:00
2026-07-26 16:18:31 -07:00
2026-07-23 11:44:43 -07:00
2026-07-25 20:15:37 -07:00
2026-07-25 18:10:24 -07:00
2026-07-05 13:42:46 -07:00
2026-07-23 11:44:43 -07:00
2026-07-26 20:59:26 -07:00
2026-07-26 20:59:26 -07:00
2026-07-09 15:38:14 +05:30
2026-07-07 05:14:00 -07:00
2026-07-17 04:52:02 -07:00
2026-07-22 21:58:13 -07:00
2026-07-26 17:46:42 -07:00
2026-07-26 19:30:02 -07:00
2026-07-26 19:30:02 -07:00
2026-07-24 11:45:57 -07:00
2026-07-09 15:38:32 +05:30
2026-07-16 08:55:10 -07:00
2026-07-14 22:00:28 -07:00
2026-07-16 00:18:38 -07:00
2026-07-04 14:17:11 +05:30
2026-07-21 05:27:23 -07:00
2026-07-26 20:59:36 -07:00
2026-07-14 02:59:39 +05:30
2026-07-22 17:47:04 -05:00
2026-07-14 02:59:39 +05:30
2026-07-14 02:59:39 +05:30
2026-07-14 02:59:39 +05:30
2026-07-13 22:26:19 -07:00
2026-07-14 02:59:39 +05:30
2026-07-14 02:59:39 +05:30
2026-07-03 05:30:16 -05:00
2026-07-22 17:53:06 -05:00
2026-07-24 10:37:29 -07:00
2026-07-05 00:47:54 -07:00
2026-07-14 02:59:39 +05:30
2026-07-04 15:30:50 -07:00
2026-07-05 00:47:54 -07:00
2026-07-22 17:47:15 -05:00
2026-07-23 07:33:36 -07:00
2026-07-21 11:51:01 +05:30
2026-07-17 11:37:25 +05:30
2026-07-06 04:38:17 -07:00
2026-07-09 20:28:44 -07:00
2026-07-10 19:14:06 +05:30
2026-07-09 15:38:32 +05:30
2026-07-23 17:59:47 -07:00
2026-07-26 18:28:20 -07:00
2026-07-08 06:17:56 -07:00
2026-07-22 04:40:07 -07:00
2026-07-07 22:14:33 -07:00
2026-07-23 21:06:47 -07:00