-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Description
Feature hasn't been suggested before.
- I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
Problem
Currently, task.ts hardcodes task: false for all subagent sessions (lines 65-69, 132-137), preventing any subagent from delegating to another subagent. This blocks legitimate workflows like:
- Principal-Partner delegating to Assistants
- Assistant-Sonnet having Assistant-Flash cross-check its work
- Assistant-Flash asking Assistant-Sonnet for thorough analysis
The agent config already supports granular task permissions:
assistant-sonnet: {
tools: { task: true },
permission: {
task: { *: deny, assistant-flash: allow }
}
}
But this config is ignored because task.ts unconditionally overrides it.
Proposed Solution
- Respect agent-level task permissions instead of hardcoding task: false
- Add optional task_limit config to prevent infinite loops:
assistant-sonnet: {
tools: { task: true },
permission: {
task: { *: deny, assistant-flash: allow }
},
task_limit: 3 // Max task calls per session (0 = current behavior)
}
Use Case
Building an Agentic Collaboration Framework where:
- Principal-Opus orchestrates work
- Principal-Partner (subagent) can delegate to Assistants
- Assistant-Sonnet and Assistant-Flash can cross-check each other's work
The permission system already expresses "Sonnet can only task Flash" - it just needs to be honored.
Backward Compatibility
Default behavior unchanged - task_limit: 0 (or absent) means task tool disabled for subagents, matching current behavior. Only users who explicitly configure permissions get the new capability.