When goal_oriented = True is set on an AutoAgent subclass, every call to execute_task() — regardless of complexity — is routed through the full Plan → Execute → Evaluate DAG pipeline. Simple, single-step tasks (including conversational greetings) are decomposed into multi-step research plans, causing the agent to hang indefinitely or consume excessive tokens on trivial inputs.
Steps to Reproduce
class ResearchAgent(AutoAgent):
role = "researcher"
capabilities = ["research"]
system_prompt = "You are a research assistant."
goal_oriented = True
result = await agent.execute_task({"task": "Hello, what can you help me with?"})
# Agent hangs — Planner decomposes greeting into research sub-tasks
Expected Behavior
The framework should include a complexity classifier that evaluates the task before routing it to the Planner. Tasks below a complexity threshold (single-step, conversational, no external data required) should bypass the DAG pipeline and be handled with a single OODA loop.
Proposed Solution
Add a complexity_threshold class attribute on AutoAgent. Before calling the Planner, the Kernel should run a lightweight classification (rule-based or a nano LLM call) and only route to the Planner if the score exceeds the threshold:
class ResearchAgent(AutoAgent):
goal_oriented = True
complexity_threshold = 0.6 # 0.0–1.0; tasks below this skip the Planner
Impact
Without this gate, goal_oriented is a binary all-or-nothing flag. Enabling it for genuinely complex tasks breaks simple interactions. Disabling it means complex multi-step tasks cannot be handled. The feature is unusable in production applications that handle a mix of task complexities.
When
goal_oriented = Trueis set on anAutoAgentsubclass, every call toexecute_task()— regardless of complexity — is routed through the full Plan → Execute → Evaluate DAG pipeline. Simple, single-step tasks (including conversational greetings) are decomposed into multi-step research plans, causing the agent to hang indefinitely or consume excessive tokens on trivial inputs.Steps to Reproduce
Expected Behavior
The framework should include a complexity classifier that evaluates the task before routing it to the Planner. Tasks below a complexity threshold (single-step, conversational, no external data required) should bypass the DAG pipeline and be handled with a single OODA loop.
Proposed Solution
Add a
complexity_thresholdclass attribute onAutoAgent. Before calling the Planner, the Kernel should run a lightweight classification (rule-based or a nano LLM call) and only route to the Planner if the score exceeds the threshold:Impact
Without this gate,
goal_orientedis a binary all-or-nothing flag. Enabling it for genuinely complex tasks breaks simple interactions. Disabling it means complex multi-step tasks cannot be handled. The feature is unusable in production applications that handle a mix of task complexities.