fix: prevent agents from duplicating delegated subagent work

Addresses user reports where Sisyphus/Hephaestus would delegate tasks
to explore/librarian subagents but then immediately perform the same
search/work themselves, wasting context and defeating the purpose of
delegation.

Changes:
- Add Anti-Duplication section to dynamic-agent-prompt-builder with
  clear rules: once you delegate, do NOT manually re-do the same search
- Update all agent prompts (sisyphus, hephaestus, sis-junior gemini/gpt)
  to use 'non-overlapping work' instead of 'keep working' after delegation
- Add buildAntiDuplicationSection() with explicit examples of forbidden
  vs allowed behavior after delegation
- Add 'Delegation Trust Rule' to explore section
- Add 'Delegation Duplication' to anti-patterns list

Atlas fixes:
- Add AUTO-CONTINUE POLICY to all Atlas variants (default, gemini, gpt)
  preventing the 'should I continue?' confirmation loop between plan steps
- Fix plan file path in default atlas (.sisyphus/tasks/ -> .sisyphus/plans/)
- Update GPT atlas uncertainty section to only ask questions during initial
  plan analysis, not during execution

Fixes: subagent delegation duplication, Atlas continuation prompting
This commit is contained in:
YeonGyu-Kim
2026-03-09 12:26:15 +09:00
parent 5137df72d8
commit 21ddd55162
14 changed files with 445 additions and 10 deletions
+5 -2
View File
@@ -35,6 +35,7 @@ import {
buildAntiPatternsSection,
buildDeepParallelSection,
buildNonClaudePlannerSection,
buildAntiDuplicationSection,
categorizeTools,
} from "./dynamic-agent-prompt-builder";
@@ -333,7 +334,7 @@ task(subagent_type="explore", run_in_background=true, load_skills=[], descriptio
// Reference Grep (external)
task(subagent_type="librarian", run_in_background=true, load_skills=[], description="Find JWT security docs", prompt="I'm implementing JWT auth and need current security best practices to choose token storage (httpOnly cookies vs localStorage) and set expiration policy. Find: OWASP auth guidelines, recommended token lifetimes, refresh token rotation strategies, common JWT vulnerabilities. Skip 'what is JWT' tutorials — production security guidance only.")
task(subagent_type="librarian", run_in_background=true, load_skills=[], description="Find Express auth patterns", prompt="I'm building Express auth middleware and need production-quality patterns to structure my middleware chain. Find how established Express apps (1000+ stars) handle: middleware ordering, token refresh, role-based access control, auth error propagation. Skip basic tutorials — I need battle-tested patterns with proper error handling.")
// Continue working immediately. System notifies on completion — collect with background_output then.
// Continue only with non-overlapping work. System notifies on completion — collect with background_output then.
// WRONG: Sequential or blocking
result = task(..., run_in_background=false) // Never wait synchronously for explore/librarian
@@ -341,11 +342,13 @@ result = task(..., run_in_background=false) // Never wait synchronously for exp
### Background Result Collection:
1. Launch parallel agents \u2192 receive task_ids
2. Continue immediate work
2. Continue only with non-overlapping work
3. System sends \`<system-reminder>\` on each task completion — then call \`background_output(task_id="...")\`
4. Need results not yet ready? **End your response.** The notification will trigger your next turn.
5. Cleanup: Cancel disposable tasks individually via \`background_cancel(taskId="...")\`
${buildAntiDuplicationSection()}
### Search Stop Conditions
STOP searching when: