forked from bots-garden/ori
| ✨ Workspace panel, selectors, previews, desktop app, sandbox template, resizable file tree, light/dark theme | 1 | { |
| 2 | "name": "Tool detection", | |
| 3 | "width": 1220, | |
| 4 | "height": 540, | |
| 5 | "nodes": [ | |
| 6 | { "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" }, | |
| 7 | { "id": "user", "x": 20, "y": 250, "w": 220, "h": 110, "label": "User\\n\"How much is a\\nmechanical keyboard?\"", "kind": "box" }, | |
| 8 | { "id": "llm", "x": 370, "y": 250, "w": 280, "h": 110, "label": "LLM (tool support)\\nDocker Model Runner", "kind": "dark" }, | |
| 9 | { "id": "intent", "x": 820, "y": 250, "w": 380, "h": 110, "label": "tool_calls — an intention\\nfind_price(\\nproduct=\"mechanical keyboard\")", "kind": "intent" }, | |
| 10 | { "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" } | |
| 11 | ], | |
| 12 | "edges": [ | |
| 13 | { "from": "user", "to": "llm", "label": "1. prompt +\\ntools[]" }, | |
| 14 | { "from": "catalog", "to": "llm", "label": "2. catalog sent\\nwith the prompt", "fromSide": "bottom", "fromAt": 600, "toSide": "top", "toAt": 600 }, | |
| 15 | { "from": "llm", "to": "catalog", "label": "3. intent compared\\nto each description", "dashed": true, "fromSide": "top", "fromAt": 430, "toSide": "bottom", "toAt": 430 }, | |
| 16 | { "from": "llm", "to": "intent", "label": "4. match:\\ntool + arguments", "dashed": true }, | |
| 17 | { "from": "llm", "to": "user", "label": "no match → plain text answer", "waypoints": [{ "x": 510, "y": 410 }, { "x": 130, "y": 410 }] } | |
| 18 | ] | |
| 19 | } |