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:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user