record_nozzle_replacement
Records a nozzle replacement event with printer ID, reason, and new material so you can track why each nozzle was swapped and keep wear history accurate.
Instructions
Pro+ — record a nozzle replacement event with the WHY.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"printer_id": "<printer_id>",
"reason": "<reason>",
"new_material": "<new_material>"
},
"name": "record_nozzle_replacement"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | One of ``worn_out`` / ``damaged`` / ``upgraded`` / ``downgraded`` / ``diameter_change`` / ``preventive`` / ``experimental`` / ``other``. Missing / invalid → returns ``code=WHY_REQUIRED`` with the allowed list and one example sentence per reason. | |
| printer_id | Yes | Stable printer identifier. | |
| install_date | No | ISO 8601 date string for the install event. Defaults to today. | |
| new_material | Yes | Material of the nozzle going in: ``brass``, ``stainless_steel``, ``hardened_steel``, ``ruby_tip``, ``cht_brass``, ``cht_hardened``, ``tungsten_carbide`` or ``custom`` (case-insensitive), or ``unknown`` when nobody knows; anything else is refused. | |
| printer_model | No | Resolved printer model key (e.g. "bambu_a1") for cohort bucketing. Falls through to an empty string when the agent can't resolve from the user's printer registry. Default: "". | |
| reason_detail | No | Optional free-text "tell me more" that the agent should elicit alongside the reason. REQUIRED when ``reason == "other"``. Default: "". | |
| client_event_id | No | A stable id the caller assigns to this swap, used as the replacement event's id so a retried call names the same event. Empty, Kiln uses the lifecycle entry's own id, or mints one. Default: "". | |
| failure_subtype | No | For ``reason="worn_out"``: which part of the nozzle failed — ``tip`` (orifice wear, drift in dimensions), ``bore`` (melt-zone wear, uneven flow), ``both``, or ``other`` (a failure outside that split: diameter sag, body crack). Omitted, the event records no sub-type. Pass the ``replacement_recommendation`` an earlier ``nozzle_wear_status`` or ``check_nozzle_capacity_for_print`` answer gave when you have one. | |
| new_diameter_mm | No | Diameter in mm (optional, falls back to whatever the previous nozzle was). | |
| printer_reading | No | What the printer itself reports as its nozzle, filled in by the caller's own Kiln when it can reach the machine, so the answer can say whether the printer agrees with the new record. Used only where this process cannot read the printer; leave it unset by hand. | |
| filament_material | No | The filament that wore the nozzle out (e.g. ``"PETG-CF"``, ``"PLA"``). Given, the event also feeds the anonymous community wear baseline; omit it when unknown and the event is still recorded. Default: "". | |
| previous_material | No | The nozzle that came OUT, when the caller knows it. Wins over whatever the stored record holds — the caller is the only party that watched the swap. Pass it whenever the record may already have been updated, and always when this call follows a ``set_nozzle_state``. When it disagrees with the record, the stored wear counters belong to a different nozzle and are dropped rather than recorded against this one. Default: "". | |
| previous_diameter_mm | No | Diameter of the outgoing nozzle. Only meaningful alongside *previous_material*; defaults to whatever the record held. |