RUBRIC_GRADER_MESSAGE_SOURCE = 'rubric_grader'Tag stored on synthetic revision messages this middleware injects.
The revision message is injected as a HumanMessage (the role the model
follows most reliably), but it carries:
name="rubric_grader" -- visible at the wire on providers that round-trip
the name field; ignored elsewhere.additional_kwargs={"lc_source": RUBRIC_GRADER_MESSAGE_SOURCE} -- visible
to in-process consumers (evals, UIs, observability) so they can attribute
the turn to the grader instead of treating it as a real user message.This follows the same convention as SummarizationMiddleware, which tags
its synthetic summary messages with lc_source="summarization".