Forzar máximo 2 steps en plan: 1 coder + 1 reviewer opcional
El planner generaba 3+ steps para tareas simples causando que el coder repitiera acciones en cada step (creaba el módulo varias veces). Ahora el engine fusiona los steps en 1 coder con descripción combinada. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,7 @@ from ..context.engine import ContextEngine
|
||||
from ..mcp.manager import MCPManager
|
||||
from ..memory.store import MemoryStore
|
||||
from ..models.agent import AgentRole
|
||||
from ..models.session import SessionState, SessionStatus, TaskState, TaskStatus
|
||||
from ..models.session import SessionState, SessionStatus, TaskState, TaskStatus, TaskStep
|
||||
from ..streaming.sse import SSEEmitter, EventType
|
||||
from .agents.coder import CoderAgent, create_coder_profile
|
||||
from .agents.collector import CollectorAgent, create_collector_profile
|
||||
@@ -182,6 +182,20 @@ class OrchestratorEngine:
|
||||
"total_cost_usd": round(cost_usd, 6),
|
||||
}
|
||||
|
||||
# Enforce max 2 steps: 1 coder + 1 optional reviewer
|
||||
# The coder is capable enough to do everything in 1 step
|
||||
if len(plan_result) > 2:
|
||||
logger.warning("Plan had %d steps, trimming to 2", len(plan_result))
|
||||
# Keep first coder step + merge descriptions of remaining into it
|
||||
merged_desc = "; ".join(s.description for s in plan_result)
|
||||
plan_result[0].description = merged_desc
|
||||
# Add reviewer if any step was reviewer
|
||||
has_reviewer = any(s.agent_role == "reviewer" for s in plan_result)
|
||||
if has_reviewer:
|
||||
plan_result = [plan_result[0], TaskStep(description="Revisar el resultado", agent_role="reviewer")]
|
||||
else:
|
||||
plan_result = [plan_result[0]]
|
||||
|
||||
task.plan = plan_result
|
||||
task.status = TaskStatus.EXECUTING
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user