From a01f979b6e86d24a798968d5341788e008f96caf Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Sun, 2 Aug 2026 22:31:52 -0700 Subject: [PATCH] perf(tools): restore benchmark-sensitive phrasing in compacted description Round-2 A/B (gpt-4o-mini, 6 reps) showed two passages could not survive paraphrase: the DO-NOT-USE list needs the arrow-list shape with the 'no reasoning needed' qualifier (prose form regressed mechanical-work routing 6/6->1/6), and the self-report rule needs the concrete 'claiming uploaded successfully may be wrong' framing (without it, side-effect verification regressed 6/6->2/6). With both restored: 30/42 vs 30/42 on gpt-4o-mini and intent-parity on claude-haiku-4.5. Final size: 1,900 chars (from 3,963). --- tools/delegate_tool.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/tools/delegate_tool.py b/tools/delegate_tool.py index cbcb6755cc562..13e2143336b67 100644 --- a/tools/delegate_tool.py +++ b/tools/delegate_tool.py @@ -3670,20 +3670,23 @@ def _build_top_level_description() -> str: "poll; continue other work.\n\n" "USE FOR: reasoning-heavy subtasks, work that would flood your context " "with intermediate data, or independent parallel workstreams.\n" - "DO NOT USE FOR: a single tool call; mechanical multi-step work (use " - "execute_code); tasks needing user interaction; or durable work that " - "must survive this session (use cronjob or terminal(background=True, " - "notify_on_complete=True) — /stop, /new, or process exit discards " - "running subagents).\n\n" + "DO NOT USE FOR (use these instead):\n" + "- Mechanical multi-step work with no reasoning needed -> execute_code\n" + "- A single tool call -> call the tool directly\n" + "- Tasks needing user interaction -> subagents cannot ask questions\n" + "- Durable work that must survive this session -> cronjob or " + "terminal(background=True, notify_on_complete=True); /stop, /new, or " + "process exit discards running subagents.\n\n" "RULES:\n" "- Children know nothing of this conversation: pass everything needed " "via 'context', including any required output language, tone, or " "style (e.g. \"respond in Chinese\").\n" - "- Child summaries are SELF-REPORTS, not verified facts. For external " - "side effects (uploads, remote writes, publishing), require a " - "verifiable handle (URL, ID, absolute path) and verify it yourself — " - "fetch the URL, stat the file, read back the content — before " - "reporting success.\n" + "- Child summaries are SELF-REPORTS, not verified facts: a child " + "claiming \"uploaded successfully\" or \"file written\" may be wrong. " + "For external side effects (uploads, remote writes, publishing), " + "require a verifiable handle (URL, ID, absolute path) and verify it " + "yourself — fetch the URL, stat the file, read back the content — " + "before telling the user the operation succeeded.\n" "- Leaf children (the default) cannot call delegate_task, clarify, " "memory, send_message, or cronjob; orchestrators regain only " "delegate_task.\n"