refactor(delegate_task): tasks-only interface + depth-derived delegation (1,201 → 773 tok/call, −36%) - #96424
Merged
Merged
Conversation
…), session-filtered restrictions, background unadvertised — 1,201->819 tok/call
૮ >ﻌ< ა ci reviewran on 2d54f00 — refactor(delegate_task): tasks[] is the only advertised shap
|
…e task = one-entry array (legacy goal/context/output_schema stay handler-accepted)
5 tasks
and7777
pushed a commit
to and7777/hermes-agent
that referenced
this pull request
Aug 27, 2026
…ion (1,201 → 773 tok/call, −36%) (NousResearch#96424) * refactor(delegate_task): depth-derived delegation (role param retired), session-filtered restrictions, background unadvertised — 1,201->819 tok/call * refactor(delegate_task): tasks[] is the only advertised shape — single task = one-entry array (legacy goal/context/output_schema stay handler-accepted)
This was referenced Aug 27, 2026
13 tasks
melon-xf
added a commit
to melon-xf/hermes-agent
that referenced
this pull request
Sep 3, 2026
…ion (1,201 → 773 tok/call, −36%) (NousResearch#96424) * refactor(delegate_task): depth-derived delegation (role param retired), session-filtered restrictions, background unadvertised — 1,201->819 tok/call * refactor(delegate_task): tasks[] is the only advertised shape — single task = one-entry array (legacy goal/context/output_schema stay handler-accepted)
zapabob
pushed a commit
to zapabob/hermes-agent-windows
that referenced
this pull request
Sep 5, 2026
…ion (1,201 → 773 tok/call, −36%) (NousResearch#96424) * refactor(delegate_task): depth-derived delegation (role param retired), session-filtered restrictions, background unadvertised — 1,201->819 tok/call * refactor(delegate_task): tasks[] is the only advertised shape — single task = one-entry array (legacy goal/context/output_schema stay handler-accepted)
1 task
ppazosp
added a commit
to useomnia/hermes-agent
that referenced
this pull request
Sep 18, 2026
* fix(skills): make omitted instructions explicit and recoverable Adapt NousResearch#98736 (2fce577) to the fork without its upstream-only repeat-view cache. Preserve linked-file selectors and recover complete sections through both per-result and aggregate budgets. Co-authored-by: Mira Solari <268252643+mira-solari@users.noreply.github.com> * fix(delegation): preserve worker context and deliver complete artifacts Adapt the current-prompt budget correction from upstream NousResearch#103486, cache-path mapping from NousResearch#103667, and tasks-only schema from NousResearch#96424. Retain the legacy call interface, preserve shared batch context, and transfer only active-profile delegation artifacts into the paired Toolbox using existing file APIs. * fix(execute-code): deliver large RPC results without replaying tools Use the existing file transport or bounded shell chunks, publish atomically, and retain dispatched results through delivery retries. Fail explicitly after exhausted delivery instead of executing the same request again. * docs(delegation): explain remote transcript refresh behavior * test(execute-code): assert transferred bytes instead of shell command order --------- Co-authored-by: Mira Solari <268252643+mira-solari@users.noreply.github.com>
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Campaign entry (#95681). NOTE: the tracker's old 651-tok figure was the static stub — this tool builds its real text via dynamic_schema_overrides; AS-SERVED on a default config is 1,201 tok/call. All numbers measured through
model_tools.get_tool_definitions()(the wire path).Three maintainer-directed interface changes + diet, in commit order:
Commit 1 — depth-derived delegation, session-filtered rules, background unadvertised
roleretired. The old model made the CALLER declarerole='leaf'|'orchestrator', then silently coerced it when config disagreed. Now the runtime derives it: a child may itself delegate iffdelegation.orchestrator_enabledand its depth <max_spawn_depth(_build_child_agent, the existing enforcement point).role/tasks[].roleleave the schema; handler accepts+ignores them (old transcripts, kanban dispatcher). Depth-1 installs (default): the word "orchestrator" appears NOWHERE in the served schema. Behavior delta on nesting-enabled installs only: children with depth budget now always get delegate_task (previously only when the caller remembered to ask).Restrictions rule session-filtered. The "children cannot call X" line now names only tools the SESSION actually has (same model_tools seam as the browser_exec terminal-gate; memo key already includes toolsets): full kit → full list · partial → filtered · none → line dropped. send_message is never named — gateway-internal vocabulary; enforcement unchanged (DELEGATE_BLOCKED_TOOLS still strips all five).
background(86 tok of "DEPRECATED / IGNORED") unadvertised; handler unchanged.Commit 2 — tasks[] is the only advertised shape (the clarify #95907 pattern)
The runtime already wrapped single-goal calls into a one-entry task list internally; the schema was the only place the two-shape fiction lived — and it bred real confusion (top-level
contextlooked like shared/broadcast context; it never was: each child sees only its owntasks[i].context).goal/context/output_schemaleave the schema (handler-accepted legacy, wrapped at dispatch as before; do-not-re-add comments in place).tasks[](minItems 1) is the one shape; item fields now carry the full teaching, including the context-isolation rule models previously had to guess: "Each child sees only its own context — repeat shared background in every task that needs it."tasks=[]+goal regression case).Numbers (as served, o200k_base, default config)
4 advertised params (tasks, action, subagent_id, message), down from 9.
Verification
role/orchestrator/leaf/send_messageasserted absent from serialized schema.goal=/context=/role=still flow; bare call gets the teaching error.