{"service":"HALOWERK modellwerk","endpoint":"/v1/trace-grade","method":"POST","content_type":"application/json","inputSchema":{"type":"object","required":["steps"],"additionalProperties":false,"properties":{"steps":{"type":"array","minItems":1,"maxItems":1000,"description":"The steps of the run, in order.","items":{"type":"object","additionalProperties":true,"properties":{"tool":{"type":"string","description":"Name of the tool or step."},"arguments":{"description":"The arguments used. Identical arguments on the same tool count as a loop."},"ok":{"type":"boolean","description":"Whether the step succeeded. Defaults to true unless error is set."},"error":{"type":"string","description":"Error text, if it failed."},"result":{"description":"The result. Empty, null or an empty list counts as a wasted call."},"input_tokens":{"type":"integer","minimum":0},"output_tokens":{"type":"integer","minimum":0},"cost_usd":{"type":"number","minimum":0,"description":"Cost of this step, if you already know it."},"duration_ms":{"type":"integer","minimum":0}}}},"model":{"type":"string","description":"Model id used, to price token counts when cost_usd is absent."},"loop_threshold":{"type":"integer","minimum":2,"default":2,"description":"From how many identical calls on it counts as a loop."}}},"requestExample":{"steps":[{}],"loop_threshold":2},"operations":[{"method":"POST","inputSchema":{"type":"object","required":["steps"],"additionalProperties":false,"properties":{"steps":{"type":"array","minItems":1,"maxItems":1000,"description":"The steps of the run, in order.","items":{"type":"object","additionalProperties":true,"properties":{"tool":{"type":"string","description":"Name of the tool or step."},"arguments":{"description":"The arguments used. Identical arguments on the same tool count as a loop."},"ok":{"type":"boolean","description":"Whether the step succeeded. Defaults to true unless error is set."},"error":{"type":"string","description":"Error text, if it failed."},"result":{"description":"The result. Empty, null or an empty list counts as a wasted call."},"input_tokens":{"type":"integer","minimum":0},"output_tokens":{"type":"integer","minimum":0},"cost_usd":{"type":"number","minimum":0,"description":"Cost of this step, if you already know it."},"duration_ms":{"type":"integer","minimum":0}}}},"model":{"type":"string","description":"Model id used, to price token counts when cost_usd is absent."},"loop_threshold":{"type":"integer","minimum":2,"default":2,"description":"From how many identical calls on it counts as a loop."}}},"requestExample":{"steps":[{}],"loop_threshold":2}}],"example_request":{"steps":[{}],"loop_threshold":2},"serviceName":"trace_grade","tags":["agent","observability","cost"],"outputSchema":{"type":"object"},"outputExample":{"grade":"B","score":80,"deductions":[{"reason":"Calls without a result","deducted":20,"value":1,"threshold":0.15}],"metrics":{"steps":1,"errors":0,"empty_results":1,"longest_error_streak":0,"loops":0,"wasted_calls":0,"distinct_tools":1,"loop_ratio":0,"error_ratio":0,"empty_ratio":1,"cost_concentration":0},"thresholds_used":{"loop_ratio":0.1,"error_ratio":0.15,"empty_ratio":0.15,"cost_concentration":0.6},"cost":{"total_usd":0,"estimated_from_tokens":false,"model":null,"input_tokens":0,"output_tokens":0,"wasted_usd":0,"duration_ms":0},"loops":[],"most_expensive_steps":[{"step":1,"tool":"schritt_1","cost_usd":0,"ok":true,"duration_ms":null}],"per_tool":[{"tool":"schritt_1","calls":1,"cost_usd":0,"errors":0,"empty":1,"duration_ms":0}],"recommendations":["1 call(s) returned nothing. Check whether the prerequisite is met before calling."],"limits":"This assesses the run's shape and cost, not its correctness. A run without loops or errors can still return the wrong result. Two calls with identical arguments count as repetition even if the world may have changed between them."}}