Skip to content

fix(tools): clarify cronjob required-params to prevent missing-schedule errors - #34483

Closed
teknium1 wants to merge 2 commits into
mainfrom
hermes/hermes-64bf9ae9
Closed

fix(tools): clarify cronjob required-params to prevent missing-schedule errors#34483
teknium1 wants to merge 2 commits into
mainfrom
hermes/hermes-64bf9ae9

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Summary

Weak models (Grok 4.3, per #34120) no longer omit schedule on cronjob action=create because the tool's parameter descriptions now spell out which params each action requires.

Root cause: the schema used a top-level allOf if/then to conditionally require schedule, but tools/schema_sanitizer.py strips allOf/anyOf/oneOf from the top-level parameters object (for OpenAI Codex strict-schema compat). The hint was discarded before reaching the LLM, so the model saw only required: ["action"] and treated schedule as optional, then hit the rejection.

Changes

  • tools/cronjob_tools.py: action/schedule/prompt/skills descriptions now state per-action required params; the create rejection echoes received values for debugging. All metadata-only — survives sanitization, reaches every backend.
  • scripts/release.py: AUTHOR_MAP entry for the contributor.

Validation

Before After
sanitized schema seen by LLM only required:[action], no schedule hint descriptions carry create⇒schedule(REQUIRED) hint
tests/tools/test_cronjob_tools.py 56/56 pass
E2E: missing-schedule create terse error error echoes received values

Salvaged from #34173 by @teixeirazeus. Dropped the re-added top-level allOf block (stripped by the sanitizer — same dead-on-arrival path as the original) and the issue-specific repro script; kept the effective metadata edits.

Fixes #34120.

teixeirazeus and others added 2 commits May 29, 2026 01:07
…essage

The schema used a top-level allOf if/then to conditionally require
schedule, but tools/schema_sanitizer.py strips allOf/anyOf/oneOf from the
top-level parameters object (for OpenAI Codex strict-schema compat), so the
hint never reached the model. Weak models (Grok 4.3 reporter) then omitted
schedule on action=create and hit a terse rejection.

Fix lives entirely in metadata that survives sanitization:
- action/schedule/prompt/skills descriptions spell out which params each
  action requires
- the create rejection now echoes the received values for debugging

Fixes #34120.
@teknium1

Copy link
Copy Markdown
Contributor Author

Closing as redundant. The description-driven fix for this exact bug class — flagging that action=create requires schedule/prompt in the cronjob tool descriptions — already shipped on main via PR #32448 (commit 5101326, May 26). That's the load-bearing change for description-only models (e.g. Grok) that omit schedule when the schema lists only action in required[].

This salvage attempt rewrote those already-present descriptions into a per-action table, which regressed the tests/cron/test_cronjob_schema.py guard (it asserts the literal action=create substring). Net of the redundant rewording, the only genuinely new addition was a richer error message — not enough to justify a PR on its own.

No code change needed on main. Closing.

@teknium1 teknium1 closed this May 29, 2026
@teknium1
teknium1 deleted the hermes/hermes-64bf9ae9 branch May 29, 2026 08:24
@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/cron Cron scheduler and job management comp/tools Tool registry, model_tools, toolsets labels May 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cron Cron scheduler and job management comp/tools Tool registry, model_tools, toolsets P3 Low — cosmetic, nice to have type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: cronjob tool: create action always fails with "schedule is required for create" even when parameters are provided

3 participants