Agentenwerk
oss openolat question bank answer fixture review
Executes a question-bank assessment against answer fixtures you supply — an answer plus the score it should produce — using the native OpenOLAT QTI engine rather than a reimplementation of the scoring rules. Each fixture comes back with expected and actual score, and the discrepancy count says at a glance whether the bank behaves as its author believed. This is the regression test for a question bank before it goes in front of learners, where a mis-scoring item is expensive and hard to undo.
POST https://agent.halowerk.com/v1/oss-openolat-question-bank-answer-fixture-reviewEingaben
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| bank_id | string | Ja | |
| maximum_score | string | Ja | |
| cut_value | Siehe Schema | Ja | |
| score_tolerance | string | Ja | |
| items | array | Ja | |
| assets | array | Ja | |
| fixtures | array | Ja |
Vollständiges Eingabeschema anzeigen
{
"type": "object",
"properties": {
"bank_id": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$"
},
"maximum_score": {
"type": "string",
"pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,9})?$"
},
"cut_value": {
"anyOf": [
{
"type": "string",
"pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,9})?$"
},
{
"type": "null"
}
]
},
"score_tolerance": {
"type": "string",
"pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,9})?$"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"item_id": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$"
},
"xml": {
"type": "string",
"minLength": 1,
"maxLength": 131072
}
},
"required": [
"item_id",
"xml"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 16
},
"assets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_./-]{0,127}$"
},
"media_type": {
"enum": [
"image/png",
"image/jpeg",
"image/gif",
"image/webp"
]
},
"content_base64": {
"type": "string",
"minLength": 4,
"maxLength": 174764
}
},
"required": [
"name",
"media_type",
"content_base64"
],
"additionalProperties": false
},
"minItems": 0,
"maxItems": 32
},
"fixtures": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fixture_id": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$"
},
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"item_id": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$"
},
"responses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"response_id": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$"
},
"values": {
"type": "array",
"items": {
"type": "string",
"minLength": 0,
"maxLength": 4096
},
"minItems": 0,
"maxItems": 64
}
},
"required": [
"response_id",
"values"
],
"additionalProperties": false
},
"minItems": 0,
"maxItems": 32
},
"persist_and_reopen": {
"type": "boolean"
}
},
"required": [
"item_id",
"responses",
"persist_and_reopen"
],
"additionalProperties": false
},
"minItems": 0,
"maxItems": 64
},
"expected": {
"type": "object",
"properties": {
"test_score": {
"anyOf": [
{
"type": "string",
"pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,9})?$"
},
{
"type": "null"
}
]
},
"passed": {
"type": [
"boolean",
"null"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"item_id": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$"
},
"score": {
"anyOf": [
{
"type": "string",
"pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,9})?$"
},
{
"type": "null"
}
]
},
"attempts": {
"type": "integer",
"minimum": 0,
"maximum": 64
},
"response_valid": {
"type": "boolean"
},
"unbound_response_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$"
},
"minItems": 0,
"maxItems": 32,
"uniqueItems": true
},
"invalid_response_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_.-]{0,63}$"
},
"minItems": 0,
"maxItems": 32,
"uniqueItems": true
}
},
"required": [
"item_id",
"score",
"attempts",
"response_valid",
"unbound_response_ids",
"invalid_response_ids"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 16
}
},
"required": [
"test_score",
"passed",
"items"
],
"additionalProperties": false
}
},
"required": [
"fixture_id",
"events",
"expected"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 16
}
},
"required": [
"bank_id",
"maximum_score",
"cut_value",
"score_tolerance",
"items",
"assets",
"fixtures"
],
"additionalProperties": false
}Veröffentlichtes Eingabebeispiel
{
"bank_id": "supplied_bank",
"maximum_score": "8",
"cut_value": "6",
"score_tolerance": "0",
"items": [
{
"item_id": "single",
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><assessmentItem xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\" identifier=\"single\" title=\"single\" adaptive=\"false\" timeDependent=\"false\"><responseDeclaration identifier=\"RESPONSE\" cardinality=\"single\" baseType=\"identifier\"><correctResponse><value>A</value></correctResponse></responseDeclaration><outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"><defaultValue><value>0</value></defaultValue></outcomeDeclaration><itemBody><p><img src=\"media/diagram.png\" alt=\"Synthetic one-pixel fixture\"/></p><choiceInteraction responseIdentifier=\"RESPONSE\" shuffle=\"false\" maxChoices=\"1\"><simpleChoice identifier=\"A\">Alpha</simpleChoice><simpleChoice identifier=\"B\">Beta</simpleChoice><simpleChoice identifier=\"C\">Gamma</simpleChoice></choiceInteraction></itemBody><responseProcessing template=\"http://www.imsglobal.org/question/qti_v2p1/rptemplates/match_correct\"/></assessmentItem>"
},
{
"item_id": "multiple",
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><assessmentItem xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\" identifier=\"multiple\" title=\"multiple\" adaptive=\"false\" timeDependent=\"false\"><responseDeclaration identifier=\"RESPONSE\" cardinality=\"multiple\" baseType=\"identifier\"><correctResponse><value>A</value><value>B</value></correctResponse><mapping defaultValue=\"-2\" lowerBound=\"0\" upperBound=\"3\"><mapEntry mapKey=\"A\" mappedValue=\"2\"/><mapEntry mapKey=\"B\" mappedValue=\"1\"/><mapEntry mapKey=\"C\" mappedValue=\"-1\"/></mapping></responseDeclaration><outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"><defaultValue><value>0</value></defaultValue></outcomeDeclaration><itemBody><choiceInteraction responseIdentifier=\"RESPONSE\" shuffle=\"false\" maxChoices=\"3\"><simpleChoice identifier=\"A\">Alpha</simpleChoice><simpleChoice identifier=\"B\">Beta</simpleChoice><simpleChoice identifier=\"C\">Gamma</simpleChoice></choiceInteraction></itemBody><responseProcessing template=\"http://www.imsglobal.org/question/qti_v2p1/rptemplates/map_response\"/></assessmentItem>"
},
{
"item_id": "numeric",
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><assessmentItem xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\" identifier=\"numeric\" title=\"numeric\" adaptive=\"false\" timeDependent=\"false\"><responseDeclaration identifier=\"RESPONSE\" cardinality=\"single\" baseType=\"float\"><correctResponse><value>42</value></correctResponse></responseDeclaration><outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"><defaultValue><value>0</value></defaultValue></outcomeDeclaration><itemBody><p>Answer: <textEntryInteraction responseIdentifier=\"RESPONSE\"/></p></itemBody><responseProcessing template=\"http://www.imsglobal.org/question/qti_v2p1/rptemplates/match_correct\"/></assessmentItem>"
},
{
"item_id": "text",
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><assessmentItem xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\" identifier=\"text\" title=\"text\" adaptive=\"false\" timeDependent=\"false\"><responseDeclaration identifier=\"RESPONSE\" cardinality=\"single\" baseType=\"string\"><correctResponse><value>Grüße</value></correctResponse></responseDeclaration><outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"><defaultValue><value>0</value></defaultValue></outcomeDeclaration><itemBody><p>Answer: <textEntryInteraction responseIdentifier=\"RESPONSE\"/></p></itemBody><responseProcessing><responseCondition><responseIf><stringMatch caseSensitive=\"false\" substring=\"false\"><variable identifier=\"RESPONSE\"/><baseValue baseType=\"string\">Grüße</baseValue></stringMatch><setOutcomeValue identifier=\"SCORE\"><baseValue baseType=\"float\">2</baseValue></setOutcomeValue></responseIf><responseElse><setOutcomeValue identifier=\"SCORE\"><baseValue baseType=\"float\">0</baseValue></setOutcomeValue></responseElse></responseCondition></responseProcessing></assessmentItem>"
},
{
"item_id": "ordered",
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><assessmentItem xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\" identifier=\"ordered\" title=\"ordered\" adaptive=\"false\" timeDependent=\"false\"><responseDeclaration identifier=\"RESPONSE\" cardinality=\"ordered\" baseType=\"identifier\"><correctResponse><value>A</value><value>B</value><value>C</value></correctResponse></responseDeclaration><outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"><defaultValue><value>0</value></defaultValue></outcomeDeclaration><itemBody><orderInteraction responseIdentifier=\"RESPONSE\" shuffle=\"false\"><simpleChoice identifier=\"A\">Alpha</simpleChoice><simpleChoice identifier=\"B\">Beta</simpleChoice><simpleChoice identifier=\"C\">Gamma</simpleChoice></orderInteraction></itemBody><responseProcessing template=\"http://www.imsglobal.org/question/qti_v2p1/rptemplates/match_correct\"/></assessmentItem>"
}
],
"assets": [
{
"name": "media/diagram.png",
"media_type": "image/png",
"content_base64": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGP4//8/AAX+Av4N70a4AAAAAElFTkSuQmCC"
}
],
"fixtures": [
{
"fixture_id": "correct",
"events": [
{
"item_id": "single",
"responses": [
{
"response_id": "RESPONSE",
"values": [
"A"
]
}
],
"persist_and_reopen": false
},
{
"item_id": "multiple",
"responses": [
{
"response_id": "RESPONSE",
"values": [
"A",
"B"
]
}
],
"persist_and_reopen": true
},
{
"item_id": "numeric",
"responses": [
{
"response_id": "RESPONSE",
"values": [
"42.0"
]
}
],
"persist_and_reopen": false
},
{
"item_id": "text",
"responses": [
{
"response_id": "RESPONSE",
"values": [
"GRÜßE"
]
}
],
"persist_and_reopen": false
},
{
"item_id": "ordered",
"responses": [
{
"response_id": "RESPONSE",
"values": [
"A",
"B",
"C"
]
}
],
"persist_and_reopen": false
}
],
"expected": {
"test_score": "8",
"passed": true,
"items": [
{
"item_id": "single",
"score": "1",
"attempts": 1,
"response_valid": true,
"unbound_response_ids": [],
"invalid_response_ids": []
},
{
"item_id": "multiple",
"score": "3",
"attempts": 1,
"response_valid": true,
"unbound_response_ids": [],
"invalid_response_ids": []
},
{
"item_id": "numeric",
"score": "1",
"attempts": 1,
"response_valid": true,
"unbound_response_ids": [],
"invalid_response_ids": []
},
{
"item_id": "text",
"score": "2",
"attempts": 1,
"response_valid": true,
"unbound_response_ids": [],
"invalid_response_ids": []
},
{
"item_id": "ordered",
"score": "1",
"attempts": 1,
"response_valid": true,
"unbound_response_ids": [],
"invalid_response_ids": []
}
]
}
},
{
"fixture_id": "expected_discrepancies",
"events": [
{
"item_id": "single",
"responses": [
{
"response_id": "RESPONSE",
"values": [
"A"
]
}
],
"persist_and_reopen": false
},
{
"item_id": "multiple",
"responses": [
{
"response_id": "RESPONSE",
"values": [
"A",
"C"
]
}
],
"persist_and_reopen": true
},
{
"item_id": "numeric",
"responses": [
{
"response_id": "RESPONSE",
"values": [
"41"
]
}
],
"persist_and_reopen": false
},
{
"item_id": "text",
"responses": [
{
"response_id": "RESPONSE",
"values": [
"grüße"
]
}
],
"persist_and_reopen": false
},
{
"item_id": "ordered",
"responses": [
{
"response_id": "RESPONSE",
"values": [
"C",
"B",
"A"
]
}
],
"persist_and_reopen": false
}
],
"expected": {
"test_score": "5",
"passed": true,
"items": [
{
"item_id": "single",
"score": "1",
"attempts": 1,
"response_valid": true,
"unbound_response_ids": [],
"invalid_response_ids": []
},
{
"item_id": "multiple",
"score": "1",
"attempts": 1,
"response_valid": true,
"unbound_response_ids": [],
"invalid_response_ids": []
},
{
"item_id": "numeric",
"score": "1",
"attempts": 1,
"response_valid": true,
"unbound_response_ids": [],
"invalid_response_ids": []
},
{
"item_id": "text",
"score": "2",
"attempts": 1,
"response_valid": true,
"unbound_response_ids": [],
"invalid_response_ids": []
},
{
"item_id": "ordered",
"score": "0",
"attempts": 1,
"response_valid": true,
"unbound_response_ids": [],
"invalid_response_ids": []
}
]
}
}
]
}Ergebnis & Dokumentation
Maschinenlesbare Dokumentation dieses Hubs
Quelle dieser Seite: der veröffentlichte HALOWERK-Katalog. Stand: 2026-11-01, 15:19 UTC.
Weitere Endpunkte dieses Hubs
- Agentenwerk0,002 USDC
a2a card validate
POSThttps://agent.halowerk.com/v1/a2a-card-validateValidates an Agent Card document against the A2A convention and returns findings by severity: error (the card is unusable as published), warning (works, but a consuming agent will guess), info (recommended field absent).
- Agentenwerk0,003 USDC
artifact receipt
POSThttps://agent.halowerk.com/v1/artifact-receiptSeal binds an exact UTF-8 content SHA-256 digest and expiry to a HALOWERK Ed25519 signature; verify checks signature, expiry and optional exact content. The service public key is included. This attests digest receipt only, not truth, legal
- Agentenwerk0,001 USDC
base64 codec
POSThttps://agent.halowerk.com/v1/base64-codecConverts text to padded standard Base64 or decodes canonical Base64 to valid UTF-8. Rejects noncanonical padding, whitespace, URL-safe alphabet and invalid decoded UTF-8.