Skip to content

AutoAgent goal_oriented=True: no complexity gate; trivial tasks hang in Plan→Execute→Evaluate loop #34

@sangalo20

Description

@sangalo20

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.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingenhancementNew feature or requestquestionFurther information is requested

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions