After scoring is complete, construct a GradeEvent with action Graded and set the object to the AssessmentResult entity
Populate the AssessmentResult with id (IRI), name, attempt reference, resultValue, maxResultValue, scoredBy, and dateCreated
Set the generated field of the GradeEvent to the same AssessmentResult entity for conformance
Ensure the edApp entity in the event identifies the scoring application, not the authoring tool, if they differ
Wrap the event in a Caliper Envelope with a unique sendTime and the sensor's id
POST to the Caliper endpoint and log the response for audit purposes
Known gotchas
Some LRS platforms distinguish between auto-graded and instructor-graded events via the scoredBy field; set it to the appropriate Agent or SoftwareApplication entity
The resultValue and maxResultValue are numeric; do not serialize them as strings even if the source system stores scores as strings
GradeEvent must reference a prior attempt via the attempt field; without it some analytics platforms cannot correlate the grade to the original session
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp