Large language model (LLM) agents use programs, called harnesses, to control how they interact with tools. A bug in the harness can defeat a good agent, and training the agent alone cannot fix this broken interface. Fixing the harness alone cannot teach the agent new skills.
CoHARL trains a single agent policy alongside a population of evolving harnesses. The policy learns from experience across all harnesses. A proposer module reviews the agent's successes and failures and revises the harness code, creating new versions that join the population.
On SWE-rebench, CoHARL resolved 27.6 percent of tasks. This outperformed searching for a single harness before training or alternating between harness and policy updates. The results show that co-evolving the agent's decision-making and its tool-use interface is more effective than fixing either side.
