Navigator-Driver Pair Programming
Structure collaborative coding agents into a navigator that explores plans and steers iteration and a driver that synthesizes code and tests locally.
The navigator–driver pattern (instantiated in systems like PairCoder) adapts human pair programming to multi-agent architecture by decoupling planning and steering from code synthesis and local testing:
- Navigator agent: Explores multiple candidate implementation plans, evaluates them against repository constraints and specifications, selects the globally optimal plan, and steers subsequent iteration rounds based on execution feedback.
- Driver agent: Receives the selected plan, synthesizes code patches, executes local tests, and performs immediate syntactic or functional corrections before handing control back.
This role separation prevents compound mistake amplification by keeping the strategic planning context clean of transient syntax errors, command outputs, and intermediate test churn. It refines plan-validate-execute into an ongoing conversational steering loop, allowing the navigator to maintain long-range architectural intent while the driver engages directly with the agent-computer interface and test-time code refinement.
Sources
- Tang & Runkler (2024), sec. 3.2