{ "name": "Tool detection", "width": 1220, "height": 540, "nodes": [ { "id": "catalog", "x": 310, "y": 20, "w": 400, "h": 145, "label": "Tool catalog — tools[]\\nadd · multiply\\nlist_products · find_price\\nname + description + JSON Schema", "kind": "accent" }, { "id": "user", "x": 20, "y": 250, "w": 220, "h": 110, "label": "User\\n\"How much is a\\nmechanical keyboard?\"", "kind": "box" }, { "id": "llm", "x": 370, "y": 250, "w": 280, "h": 110, "label": "LLM (tool support)\\nDocker Model Runner", "kind": "dark" }, { "id": "intent", "x": 820, "y": 250, "w": 380, "h": 110, "label": "tool_calls — an intention\\nfind_price(\\nproduct=\"mechanical keyboard\")", "kind": "intent" }, { "id": "note", "x": 20, "y": 460, "w": 1180, "h": 60, "label": "The LLM detects and names the tool, it never runs it: executing the call and feeding the result back is the program's job.", "kind": "note" } ], "edges": [ { "from": "user", "to": "llm", "label": "1. prompt +\\ntools[]" }, { "from": "catalog", "to": "llm", "label": "2. catalog sent\\nwith the prompt", "fromSide": "bottom", "fromAt": 600, "toSide": "top", "toAt": 600 }, { "from": "llm", "to": "catalog", "label": "3. intent compared\\nto each description", "dashed": true, "fromSide": "top", "fromAt": 430, "toSide": "bottom", "toAt": 430 }, { "from": "llm", "to": "intent", "label": "4. match:\\ntool + arguments", "dashed": true }, { "from": "llm", "to": "user", "label": "no match → plain text answer", "waypoints": [{ "x": 510, "y": 410 }, { "x": 130, "y": 410 }] } ] }