An agent harness is the software around a model that turns it into an agent: it holds the instructions, offers the tools, runs the loop that sends the model's tool calls out and feeds the results back, and decides when a run ends. The same model behaves differently in different harnesses, so the harness and its version belong in every trace.
Why it matters when licensing company data
Coding assistants, open-source agent frameworks and in-house orchestration code are all harnesses. They differ in which tools they expose, how they format tool results, how much context they keep and when they stop. Formats such as Letta's trajectory package exist because traces from different harnesses look different and need converting before they can be compared.
For anyone describing a set of traces, the harness is as important as the model. A reader needs the harness name and version, the tool names and their schemas, and any limits such as step caps or timeouts, to know what the agent could and could not do in each run.
See licensing agent traces from production and how to export agent traces.
Example
A support team moves its triage agent from a home-built loop to an open-source agent framework halfway through the year, keeping the same model. Resolution rates change, and so does the shape of the traces: the new harness logs tool results in full and adds a planning step. When the team describes its runs, it splits them into two sets by harness and version, and lists the tools each harness offered, so nobody compares runs that were produced under different conditions.
Source
Letta: the trajectory package (23 July 2026). Definition reviewed November 9, 2026 by Origin Data Partners.