diff --git a/navi/core/agent.py b/navi/core/agent.py index 4e522b8..2728a56 100644 --- a/navi/core/agent.py +++ b/navi/core/agent.py @@ -1120,11 +1120,19 @@ "- AGENT: — needs 2+ tool calls; one subagent handles this ONE step\n" "- SELF — final synthesis or a context-dependent single action only\n\n" "AGENT scoping rules (critical):\n" - "- Each AGENT step is one focused, self-contained unit of work.\n" - "- One AGENT step = one spawn_agent call later. Do NOT create one AGENT step " - "for 'do everything' — break the work into separate AGENT steps.\n" - "- A good AGENT step: 'Research pricing for product X' or 'Audit SSH config on host Y'.\n" - "- A bad AGENT step: 'Research everything and write the report' (too broad — split it).\n\n" + "- Each AGENT step is one focused, independently verifiable unit of work.\n" + "- One AGENT step = one spawn_agent call later. Do NOT bundle multiple concerns.\n" + "- Comma test: if your step description lists things with 'and' or commas, " + "each item is a separate step.\n" + "- For code implementation: one step writes or modifies ONE file, " + "or adds ONE focused feature to an existing file. " + "Never combine scaffold + business logic + helpers in one step.\n" + "- Good: 'Research X pricing from 3 sources' | " + "'Write tools/browser.py — skeleton class with __init__ and Chrome setup only' | " + "'Add proxy support to BrowserEngine'\n" + "- Bad: 'Implement BrowserEngine with stealth config, proxy support, and interaction patterns' " + "(commas = split into 3 steps) | " + "'Research everything and write the full report' (too broad)\n\n" "Required output format (use exactly this structure):\n\n" "## Plan\n\n" "**Task:** [reformulated task]\n"