recommend_material
Translates natural language intent and printer capabilities into an optimal 3D printing material recommendation with settings. Considers enclosure, heated bed, budget, and on-hand inventory.
Instructions
Recommend material from intent + printer capabilities (considers enclosure, bed, budget).
Uses printer DNA + historical data to translate natural language
intent (e.g. ``"make it strong"``, ``"make it pretty"``,
``"make it cheap"``) into an optimal material recommendation
with settings.
Pass ``printer_id`` to answer for a SPECIFIC machine — essential
on a mixed fleet, where "what should I run this in" depends on
which printer will run it. The recommendation is then computed
against that machine's nozzle state (abrasive materials on a
brass nozzle get an explicit wear warning) and the response
names the machine it answered for.
Pass ``on_hand_only=True`` to recommend only from materials you
physically have — recorded spools (``add_spool``) plus what's
loaded on your machines (AMS/CFS sync). Scoped to one printer
this works on every tier; sweeping a multi-machine fleet in one
call is a Kiln Business feature (https://kiln3d.com/pricing). The recommendation's
``availability`` block then says WHERE the material is: which
machine has it loaded, or that it's on the shelf and needs a
spool swap first. With ``printer_id`` the loaded half is
scoped to that one machine (shelf spools always count — they
can be swapped in); without it, every machine's load counts.
When nothing on hand suits the request, the response returns
the best catalog pick clearly labeled needs-purchase — it
never silently widens to the catalog. And when what you have
works but a material you DON'T own fits the job materially
better, the answer names that too, so "best of what you have"
is never mistaken for "right for the job".
**Which material tool to use:**
- Quick intent-based pick for your own printer? → ``recommend_material`` (this tool)
- Only from spools I actually own? → ``recommend_material(on_hand_only=True)``
- Designing a part and need engineering specs? → ``recommend_design_material``
- Ordering a print from a service? → ``suggest_material_for_order``
- Which of MY printers has a material loaded? → ``find_printers_with_material``
- What's loaded across the fleet right now? → ``get_fleet_material_summary``
Args:
intent: User intent text (e.g. ``"strong"``, ``"pretty"``).
has_enclosure: Whether the printer has an enclosure.
has_heated_bed: Whether the printer has a heated bed.
budget_usd: Optional maximum budget per kg in USD.
printer_id: Optional registered printer to answer for.
Empty = printer-agnostic recommendation.
on_hand_only: Restrict candidates to recorded inventory
(loaded materials + shelf spools). Default False =
full catalog.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| intent | Yes | ||
| budget_usd | No | ||
| printer_id | No | ||
| on_hand_only | No | ||
| has_enclosure | No | ||
| has_heated_bed | No |