Search papers, labs, and topics across Lattice.
This paper explores the critical role of harness design in programming agents, emphasizing how the organization of interactions between models, tools, and states influences agent behavior. By analyzing the lifecycle of a single request, the authors identify three key boundaries鈥攎odel, execution, and state鈥攖hat facilitate the transition from model outputs to environmental actions and feedback integration. The findings highlight that a well-structured harness not only enhances immediate performance but also allows for iterative refinement across multiple runs, ultimately improving the agent's capabilities over time.
A well-designed harness can transform model outputs into effective environmental actions, enabling programming agents to learn and adapt through iterative feedback.
A model alone does not determine how a programming agent acts. What the model sees, how actions enter the environment, how feedback returns, and how one run affects the next all depend on how the harness is organized. Minimal examples usually show only the basic interaction between a model and tools, while production systems spread these relationships across complex components and dependencies. This paper studies a compact harness design by following a single request through context formation, model decision, environmental action, observation return, and state continuation. Three boundaries---model, execution, and state---connect the model service, tool environment, and persistent state, while the request lifecycle determines the order in which these transitions occur. Together, they show the harness's core role: turning model generations into environmental actions, carrying runtime feedback into later decisions, and allowing state to continue across requests. On top of this runtime structure, a harness can also be gradually refined across runs through continued bootstrapping. The design is realized in the executable artifact https://github.com/lilinxi/Coderlet.