The routing decision's input for one corpus point:
Message is the point's new message, and ContinuityAgentId its previous agent;
Participants are the history's agents, newest first, from the shared builder;
RecentTurns (and RecentTurnParts) come from the history through the shared builders;
ArtifactVersions (and ContinuityArtifacts) are the point's artifacts, as the previous agent's;
AllowedAgentIDs is null: the eval runs as a chat with no allowed list.
Agents resolve through the catalog by ID, falling back to the point's own names. The history is
the conversation before the new message; a history row that is the new message itself (the
point's ID, or a trailing user row with the same text) is dropped, as the chat drops it.
The routing decision's input for one corpus point:
Messageis the point's new message, andContinuityAgentIdits previous agent;Participantsare the history's agents, newest first, from the shared builder;RecentTurns(andRecentTurnParts) come from the history through the shared builders;ArtifactVersions(andContinuityArtifacts) are the point's artifacts, as the previous agent's;AllowedAgentIDsis null: the eval runs as a chat with no allowed list.Agents resolve through the catalog by ID, falling back to the point's own names. The history is the conversation before the new message; a history row that is the new message itself (the point's ID, or a trailing user row with the same text) is dropped, as the chat drops it.