Pleuron commited on
Commit
646c6af
·
verified ·
1 Parent(s): 65c5644

Upload folder using huggingface_hub

Browse files
Files changed (3) hide show
  1. demo.html +60 -16
  2. index.html +1 -0
  3. static/demo_data.js +1 -1
demo.html CHANGED
@@ -4,7 +4,7 @@
4
  <meta charset="utf-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
  <title>ToolTree — Interactive Case Walkthrough</title>
7
- <meta name="description" content="Step through real ToolTree search traces on two GTA tasks: candidate drafts, pre/post evaluation, bidirectional pruning, real tool outputs, and Q/N backpropagation.">
8
  <link rel="icon" href="data:,">
9
  <style>
10
  :root {
@@ -157,7 +157,7 @@
157
  <div class="wrap">
158
  <header>
159
  <h1>ToolTree — Interactive Case Walkthrough</h1>
160
- <div class="sub">Real execution traces from this repository (real tool-execution mode) on two GTA tasks:
161
  step through each rollout — candidate drafts, pre-evaluation, execution with real tool outputs,
162
  post-evaluation, pruning, and Q/N backpropagation.</div>
163
  <div class="navlinks">
@@ -167,11 +167,14 @@
167
  </div>
168
  <div class="banner">
169
  <b>Provenance:</b> every candidate draft, score (r_pre / r_post), Q/N value, tool output, and final
170
- answer below is taken verbatim from a logged run of this repository on 5 GTA tasks with
 
171
  <code>tool_execution: real</code> (seed 42, &tau;<sub>pre</sub> 0.3, &tau;<sub>post</sub> 0.4,
172
- c 1.4, max 40 rollouts). Long OCR outputs are truncated to 300 characters and flagged. Failed tool
173
- calls (e.g. a tool without a real backend) are shown verbatim — post-evaluation prunes those
174
- branches. Task images are referenced by their dataset-relative paths and are not embedded here.
 
 
175
  </div>
176
  </header>
177
 
@@ -204,8 +207,8 @@
204
  <div class="card" id="stepPanel"></div>
205
 
206
  <footer>
207
- Data source: <code>static/demo_data.js</code>, generated from the audit log of a real-execution
208
- validation run of this codebase (per-rollout AUDIT events, LLM traffic, and final results).
209
  &middot; <a href="index.html">Project page</a>
210
  &middot; <a href="https://github.com/SYang2000/ICLR_2026_ToolTree" target="_blank" rel="noopener">GitHub repo</a>
211
  </footer>
@@ -251,12 +254,38 @@
251
  return "<span class='badge gray'>dedup &middot; duplicate action</span>";
252
  }
253
 
 
 
 
 
 
 
 
 
 
 
 
254
  function renderRollout(s, total) {
255
  var h = "<div class='stephead'><span class='sid'>Rollout " + s.rollout + " of " +
256
  total + "</span>";
257
  if (s.post_pruned) h += "<span class='badge bad'>branch post-pruned</span>";
258
  h += "</div>";
259
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
260
  var sel = s.selected;
261
  h += "<div class='secline'><b>Selection:</b> leaf <code>" + esc(sel.action) + "</code> " +
262
  "(Q=" + num(sel.Q) + ", N=" + sel.N + ", r_pre=" + num(sel.r_pre) + ")";
@@ -268,14 +297,7 @@
268
  if (s.candidates.length) {
269
  h += "<span class='seclabel'>EXPANSION &mdash; CANDIDATES &amp; PRE-EVALUATION (&tau;<sub>pre</sub> = " +
270
  num(D.meta.tau_pre) + ")</span>";
271
- h += "<table class='cands'><tr><th>tool</th><th>argument draft</th><th>r_pre</th><th>outcome</th></tr>";
272
- s.candidates.forEach(function (c) {
273
- h += "<tr><td><code>" + esc(c.tool) + "</code></td><td>" +
274
- (c.args ? args(c.args) : "&mdash;") + "</td><td class='num'>" +
275
- (c.r_pre == null ? "&mdash;" : num(c.r_pre)) + "</td><td>" +
276
- statusBadge(c.status) + "</td></tr>";
277
- });
278
- h += "</table>";
279
  }
280
 
281
  if (s.executed) {
@@ -287,6 +309,10 @@
287
  h += "<div class='trunc'>output truncated to " + D.meta.trunc_chars +
288
  " characters for display; the full text is in the run artifacts</div>";
289
  }
 
 
 
 
290
  h += "<span class='seclabel'>POST-EVALUATION (&tau;<sub>post</sub> = " + num(s.tau_post) + ")</span>";
291
  h += "<div class='secline'>r_post = <b>" + num(s.r_post) + "</b> &rarr; " +
292
  (s.post_pruned ? "<span class='badge bad'>post-pruned</span>" : "<span class='badge ok'>kept</span>") +
@@ -306,6 +332,24 @@
306
  }
307
 
308
  function renderTerminal(s) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
309
  var h = "<div class='stephead'><span class='sid'>Search terminated</span>" +
310
  "<span class='badge gray'>search_exhausted &middot; rollouts_used=" + s.rollouts_used + "</span></div>";
311
  if (s.dedups.length) {
 
4
  <meta charset="utf-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
  <title>ToolTree — Interactive Case Walkthrough</title>
7
+ <meta name="description" content="Step through real ToolTree search traces on three GTA tasks: candidate drafts, pre/post evaluation, bidirectional pruning, real tool outputs, and Q/N backpropagation.">
8
  <link rel="icon" href="data:,">
9
  <style>
10
  :root {
 
157
  <div class="wrap">
158
  <header>
159
  <h1>ToolTree — Interactive Case Walkthrough</h1>
160
+ <div class="sub">Real execution traces from this repository (real tool-execution mode) on three GTA tasks:
161
  step through each rollout — candidate drafts, pre-evaluation, execution with real tool outputs,
162
  post-evaluation, pruning, and Q/N backpropagation.</div>
163
  <div class="navlinks">
 
167
  </div>
168
  <div class="banner">
169
  <b>Provenance:</b> every candidate draft, score (r_pre / r_post), Q/N value, tool output, and final
170
+ answer below is taken verbatim from two logged runs of this repository 5 GTA tasks (Cases 1&ndash;2)
171
+ and 4 GTA tasks with 3&ndash;4-step reference plans (Case 3) — both with
172
  <code>tool_execution: real</code> (seed 42, &tau;<sub>pre</sub> 0.3, &tau;<sub>post</sub> 0.4,
173
+ c 1.4, max 40 rollouts). Long tool outputs are truncated to 300 characters and flagged. Failed tool
174
+ calls (e.g. a tool without a real backend, or a malformed argument draft) are shown verbatim —
175
+ post-evaluation prunes those branches; one error message that echoed a local filesystem path has
176
+ that path masked and is flagged. Task images are referenced by their dataset-relative paths and are
177
+ not embedded here.
178
  </div>
179
  </header>
180
 
 
207
  <div class="card" id="stepPanel"></div>
208
 
209
  <footer>
210
+ Data source: <code>static/demo_data.js</code>, generated from the audit logs of two real-execution
211
+ validation runs of this codebase (per-rollout AUDIT events, LLM traffic, and final results).
212
  &middot; <a href="index.html">Project page</a>
213
  &middot; <a href="https://github.com/SYang2000/ICLR_2026_ToolTree" target="_blank" rel="noopener">GitHub repo</a>
214
  </footer>
 
254
  return "<span class='badge gray'>dedup &middot; duplicate action</span>";
255
  }
256
 
257
+ function candTable(cands) {
258
+ var h = "<table class='cands'><tr><th>tool</th><th>argument draft</th><th>r_pre</th><th>outcome</th></tr>";
259
+ cands.forEach(function (c) {
260
+ h += "<tr><td><code>" + esc(c.tool) + "</code></td><td>" +
261
+ (c.args ? args(c.args) : "&mdash;") + "</td><td class='num'>" +
262
+ (c.r_pre == null ? "&mdash;" : num(c.r_pre)) + "</td><td>" +
263
+ statusBadge(c.status) + "</td></tr>";
264
+ });
265
+ return h + "</table>";
266
+ }
267
+
268
  function renderRollout(s, total) {
269
  var h = "<div class='stephead'><span class='sid'>Rollout " + s.rollout + " of " +
270
  total + "</span>";
271
  if (s.post_pruned) h += "<span class='badge bad'>branch post-pruned</span>";
272
  h += "</div>";
273
 
274
+ if (s.discovery) {
275
+ s.discovery.forEach(function (d) {
276
+ h += "<span class='seclabel'>DISCOVERY PASS &mdash; CONSUMES NO ROLLOUT BUDGET</span>";
277
+ h += "<div class='secline'>Selection first landed on leaf <code>" + esc(d.selected.action) +
278
+ "</code> (Q=" + num(d.selected.Q) + ", N=" + d.selected.N + ", r_pre=" +
279
+ num(d.selected.r_pre) + "), but its expansion produced no usable child:</div>";
280
+ h += candTable(d.candidates);
281
+ if (d.exhausted) {
282
+ h += "<div class='secline'><code>" + esc(d.exhausted.node) +
283
+ "</code> is marked exhausted (depth " + d.exhausted.depth +
284
+ ") and selection re-runs.</div>";
285
+ }
286
+ });
287
+ }
288
+
289
  var sel = s.selected;
290
  h += "<div class='secline'><b>Selection:</b> leaf <code>" + esc(sel.action) + "</code> " +
291
  "(Q=" + num(sel.Q) + ", N=" + sel.N + ", r_pre=" + num(sel.r_pre) + ")";
 
297
  if (s.candidates.length) {
298
  h += "<span class='seclabel'>EXPANSION &mdash; CANDIDATES &amp; PRE-EVALUATION (&tau;<sub>pre</sub> = " +
299
  num(D.meta.tau_pre) + ")</span>";
300
+ h += candTable(s.candidates);
 
 
 
 
 
 
 
301
  }
302
 
303
  if (s.executed) {
 
309
  h += "<div class='trunc'>output truncated to " + D.meta.trunc_chars +
310
  " characters for display; the full text is in the run artifacts</div>";
311
  }
312
+ if (ex.redacted) {
313
+ h += "<div class='trunc'>a local filesystem path in this message is masked as " +
314
+ "&lt;local dataset dir&gt;; everything else is verbatim</div>";
315
+ }
316
  h += "<span class='seclabel'>POST-EVALUATION (&tau;<sub>post</sub> = " + num(s.tau_post) + ")</span>";
317
  h += "<div class='secline'>r_post = <b>" + num(s.r_post) + "</b> &rarr; " +
318
  (s.post_pruned ? "<span class='badge bad'>post-pruned</span>" : "<span class='badge ok'>kept</span>") +
 
332
  }
333
 
334
  function renderTerminal(s) {
335
+ if (s.event === "early_stop") {
336
+ var eh = "<div class='stephead'><span class='sid'>Search terminated</span>" +
337
+ "<span class='badge gray'>early_stop &middot; rollouts_used=" + s.rollouts_used + "</span></div>";
338
+ eh += "<div class='secline'>The best root Q has plateaued: baseline " + num(s.baseline) +
339
+ " vs best recent " + num(s.best_recent) + " &mdash; improvement " + num(s.improvement) +
340
+ " &lt; &delta; = " + num(s.delta) + " over the last " + s.patience + " rollouts.</div>";
341
+ if (s.exhausted.length) {
342
+ eh += "<div class='secline'>Nodes marked exhausted during the search:</div><ul class='plain'>";
343
+ s.exhausted.forEach(function (e) {
344
+ eh += "<li><code>" + esc(e.node) + "</code> (depth " + e.depth + ")</li>";
345
+ });
346
+ eh += "</ul>";
347
+ }
348
+ eh += "<div class='secline'>The early-stopping rule halts the search at rollout " +
349
+ s.rollouts_used + " &mdash; well under the budget of " + D.meta.max_rollouts +
350
+ " rollouts.</div>";
351
+ return eh;
352
+ }
353
  var h = "<div class='stephead'><span class='sid'>Search terminated</span>" +
354
  "<span class='badge gray'>search_exhausted &middot; rollouts_used=" + s.rollouts_used + "</span></div>";
355
  if (s.dedups.length) {
index.html CHANGED
@@ -39,6 +39,7 @@
39
  <p class="venue"><span class="venue-chip">ICLR 2026</span></p>
40
  <nav class="button-row" aria-label="Paper links">
41
  <a class="btn" href="https://openreview.net/forum?id=Ef5O9gNNLE" target="_blank" rel="noopener"><svg class="btn-ico" viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>Paper</a>
 
42
  <a class="btn" href="https://openreview.net/pdf?id=Ef5O9gNNLE" target="_blank" rel="noopener"><svg class="btn-ico" viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>PDF</a>
43
  <a class="btn" href="https://github.com/SYang2000/ICLR_2026_ToolTree" target="_blank" rel="noopener"><svg class="btn-ico" viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg>Code</a>
44
  <a class="btn" href="demo.html"><svg class="btn-ico" viewBox="0 0 24 24" aria-hidden="true" fill="currentColor" stroke="none"><polygon points="7 4 20 12 7 20 7 4"/></svg>Demo</a>
 
39
  <p class="venue"><span class="venue-chip">ICLR 2026</span></p>
40
  <nav class="button-row" aria-label="Paper links">
41
  <a class="btn" href="https://openreview.net/forum?id=Ef5O9gNNLE" target="_blank" rel="noopener"><svg class="btn-ico" viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>Paper</a>
42
+ <a class="btn" href="https://arxiv.org/abs/2603.12740" target="_blank" rel="noopener"><svg class="btn-ico" viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>arXiv</a>
43
  <a class="btn" href="https://openreview.net/pdf?id=Ef5O9gNNLE" target="_blank" rel="noopener"><svg class="btn-ico" viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>PDF</a>
44
  <a class="btn" href="https://github.com/SYang2000/ICLR_2026_ToolTree" target="_blank" rel="noopener"><svg class="btn-ico" viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg>Code</a>
45
  <a class="btn" href="demo.html"><svg class="btn-ico" viewBox="0 0 24 24" aria-hidden="true" fill="currentColor" stroke="none"><polygon points="7 4 20 12 7 20 7 4"/></svg>Demo</a>
static/demo_data.js CHANGED
@@ -1 +1 @@
1
- window.DEMO_DATA = {"meta":{"benchmark":"GTA","tool_execution":"real","seed":42,"tau_pre":0.3,"tau_post":0.4,"exploration_constant":1.4,"max_rollouts":40,"trunc_chars":300},"cases":[{"title":"Case 1 \u2014 Wholesale catalogue: total price (OCR \u2192 Calculator)","query":"I want to buy all the items in the picture, how much should it cost?","steps":[{"type":"rollout","candidates":[{"tool":"OCR","r_pre":0.8,"status":"kept","args":{"image":"image/image_407.jpg"}},{"tool":"Calculator","r_pre":0.3,"status":"kept","args":{"expression":"sum(float(item) for item in ocr_results.split())"}}],"backprop":[{"node":"OCR","reward":0.7,"Q":0.7,"N":1},{"node":"root","reward":0.7,"Q":0.7,"N":1}],"selected":{"action":"root","Q":0.0,"N":0,"r_pre":0.0},"executed":{"tool":"OCR","args":{"image":"image/image_407.jpg"},"output":"(204, 66, 398, 98) C 0 MPANY\n(691, 42, 1186, 120) VARIOUS ITEMS\n(1193, 32, 1231, 177) L\n(242, 92, 400, 146) LOGO\n(913, 137, 1184, 170) Summer 2020 Collection\n(364, 256, 574, 280) DUMMY PRODUCT #1\n(954, 256, 1166, 280) DUMMY PRODUCT #2\n(362, 286, 480, 310) ID : 202256\n(954, 286, 1070, 310) ID: 202250","error":false,"truncated":true},"r_post":0.7,"tau_post":0.4,"post_pruned":false,"rollout":1,"best_q":0.7},{"type":"rollout","candidates":[],"backprop":[{"node":"Calculator","reward":0.0,"Q":0.0,"N":1},{"node":"root","reward":0.0,"Q":0.35,"N":2}],"selected":{"action":"Calculator","Q":0.0,"N":0,"r_pre":0.3},"realize":"Calculator","executed":{"tool":"Calculator","args":{"expression":"sum(float(item) for item in ocr_results.split())"},"output":"invocation_failed: Sympify of expression 'could not parse 'sum(float(item) for item in ocr_results.split())'' failed, because of exception being raised:\nSyntaxError: cannot assign to function call (<string>, line 1)","error":true,"truncated":false},"r_post":0.0,"tau_post":0.4,"post_pruned":true,"rollout":2,"best_q":0.7},{"type":"rollout","candidates":[{"tool":"OCR","r_pre":null,"status":"dedup","args":{"image":"image/image_407.jpg"}},{"tool":"Calculator","r_pre":0.9,"status":"kept","args":{"expression":"45.99 + 32.99 + 869.99 + 29.99 + 125.99 + 4.99 + 12.99 + 22.99"}}],"backprop":[{"node":"Calculator","reward":0.9,"Q":0.9,"N":1},{"node":"OCR","reward":0.9,"Q":0.8,"N":2},{"node":"root","reward":0.9,"Q":0.533333,"N":3}],"selected":{"action":"OCR","Q":0.7,"N":1,"r_pre":0.8},"executed":{"tool":"Calculator","args":{"expression":"45.99 + 32.99 + 869.99 + 29.99 + 125.99 + 4.99 + 12.99 + 22.99"},"output":"1145.92","error":false,"truncated":false},"r_post":0.9,"tau_post":0.4,"post_pruned":false,"rollout":3,"best_q":0.8},{"type":"terminal","event":"search_exhausted","rollouts_used":3,"exhausted":[{"node":"Calculator","depth":2},{"node":"OCR","depth":1},{"node":"root","depth":0}],"dedups":[{"tool":"Calculator","args":{"expression":"45.99 + 32.99 + 869.99 + 29.99 + 125.99 + 4.99 + 12.99 + 22.99"}},{"tool":"OCR","args":{"image":"image/image_407.jpg"}}]},{"type":"final","plan":[{"tool":"OCR","args":{"image":"image/image_407.jpg"}},{"tool":"Calculator","args":{"expression":"45.99 + 32.99 + 869.99 + 29.99 + 125.99 + 4.99 + 12.99 + 22.99"}}],"answer":"The total cost for all the items in the picture is $1,145.92.","reward":0.9,"rollouts_used":3}]},{"title":"Case 2 \u2014 Counting sheep: equal numbers? (CountGivenObject \u00d7 2)","query":"Are there equal numbers of small and big sheep?","steps":[{"type":"rollout","candidates":[{"tool":"Calculator","r_pre":0.0,"status":"pre_pruned","args":{"expression":"len([1, 2]) == len([3, 4])"}},{"tool":"TextToBbox","r_pre":0.8,"status":"kept","args":{"image":"image/image_260.jpg","text":"sheep","top1":false}},{"tool":"CountGivenObject","r_pre":0.5,"status":"kept","args":{"image":"image/image_260.jpg","text":"small sheep"}}],"backprop":[{"node":"TextToBbox","reward":0.0,"Q":0.0,"N":1},{"node":"root","reward":0.0,"Q":0.0,"N":1}],"selected":{"action":"root","Q":0.0,"N":0,"r_pre":0.0},"executed":{"tool":"TextToBbox","args":{"image":"image/image_260.jpg","text":"sheep","top1":false},"output":"invocation_failed: No real backend for tool: TextToBbox","error":true,"truncated":false},"r_post":0.0,"tau_post":0.4,"post_pruned":true,"rollout":1,"best_q":0.0},{"type":"rollout","candidates":[],"backprop":[{"node":"CountGivenObject","reward":0.5,"Q":0.5,"N":1},{"node":"root","reward":0.5,"Q":0.25,"N":2}],"selected":{"action":"CountGivenObject","Q":0.0,"N":0,"r_pre":0.5},"realize":"CountGivenObject","executed":{"tool":"CountGivenObject","args":{"image":"image/image_260.jpg","text":"small sheep"},"output":4,"error":false,"truncated":false},"r_post":0.5,"tau_post":0.4,"post_pruned":false,"rollout":2,"best_q":0.5},{"type":"rollout","candidates":[{"tool":"Calculator","r_pre":0.0,"status":"pre_pruned","args":{"expression":"4 == 4"}},{"tool":"CountGivenObject","r_pre":0.9,"status":"kept","args":{"image":"image/image_260.jpg","text":"big sheep"}},{"tool":"TextToBbox","r_pre":0.7,"status":"kept","args":{"image":"image/image_260.jpg","text":"big sheep"}}],"backprop":[{"node":"CountGivenObject","reward":1.0,"Q":1.0,"N":1},{"node":"CountGivenObject","reward":1.0,"Q":0.75,"N":2},{"node":"root","reward":1.0,"Q":0.5,"N":3}],"selected":{"action":"CountGivenObject","Q":0.5,"N":1,"r_pre":0.5},"executed":{"tool":"CountGivenObject","args":{"image":"image/image_260.jpg","text":"big sheep"},"output":4,"error":false,"truncated":false},"r_post":1.0,"tau_post":0.4,"post_pruned":false,"rollout":3,"best_q":0.75},{"type":"rollout","candidates":[],"backprop":[{"node":"TextToBbox","reward":0.0,"Q":0.0,"N":1},{"node":"CountGivenObject","reward":0.0,"Q":0.5,"N":3},{"node":"root","reward":0.0,"Q":0.375,"N":4}],"selected":{"action":"TextToBbox","Q":0.0,"N":0,"r_pre":0.7},"realize":"TextToBbox","executed":{"tool":"TextToBbox","args":{"image":"image/image_260.jpg","text":"big sheep"},"output":"invocation_failed: No real backend for tool: TextToBbox","error":true,"truncated":false},"r_post":0.0,"tau_post":0.4,"post_pruned":true,"rollout":4,"best_q":0.5},{"type":"rollout","candidates":[{"tool":"Calculator","r_pre":0.0,"status":"pre_pruned","args":{"expression":"4 == 4"}},{"tool":"CountGivenObject","r_pre":0.2,"status":"pre_pruned","args":{"image":"image/image_260.jpg","text":"small sheep","bbox":"(0, 0, 100, 100)"}},{"tool":"TextToBbox","r_pre":0.3,"status":"kept","args":{"image":"image/image_260.jpg","text":"small sheep and big sheep","top1":false}}],"backprop":[{"node":"TextToBbox","reward":0.0,"Q":0.0,"N":1},{"node":"CountGivenObject","reward":0.0,"Q":0.5,"N":2},{"node":"CountGivenObject","reward":0.0,"Q":0.375,"N":4},{"node":"root","reward":0.0,"Q":0.3,"N":5}],"selected":{"action":"CountGivenObject","Q":1.0,"N":1,"r_pre":0.9},"executed":{"tool":"TextToBbox","args":{"image":"image/image_260.jpg","text":"small sheep and big sheep","top1":false},"output":"invocation_failed: No real backend for tool: TextToBbox","error":true,"truncated":false},"r_post":0.0,"tau_post":0.4,"post_pruned":true,"rollout":5,"best_q":0.375},{"type":"terminal","event":"search_exhausted","rollouts_used":5,"exhausted":[{"node":"CountGivenObject","depth":2},{"node":"CountGivenObject","depth":1},{"node":"root","depth":0}],"dedups":[]},{"type":"final","plan":[{"tool":"CountGivenObject","args":{"image":"image/image_260.jpg","text":"small sheep"}},{"tool":"CountGivenObject","args":{"image":"image/image_260.jpg","text":"big sheep"}}],"answer":"Based on the tool outputs, there are equal numbers of small and big sheep, with 4 small sheep and 4 big sheep.","reward":0.5,"rollouts_used":5}]}]};
 
1
+ window.DEMO_DATA = {"meta":{"benchmark":"GTA","tool_execution":"real","seed":42,"tau_pre":0.3,"tau_post":0.4,"exploration_constant":1.4,"max_rollouts":40,"trunc_chars":300},"cases":[{"id":"case1","title":"Case 1 \u2014 Wholesale catalogue: total price (OCR \u2192 Calculator)","query":"I want to buy all the items in the picture, how much should it cost?","steps":[{"type":"rollout","candidates":[{"tool":"OCR","r_pre":0.8,"status":"kept","args":{"image":"image/image_407.jpg"}},{"tool":"Calculator","r_pre":0.3,"status":"kept","args":{"expression":"sum(float(item) for item in ocr_results.split())"}}],"backprop":[{"node":"OCR","reward":0.7,"Q":0.7,"N":1},{"node":"root","reward":0.7,"Q":0.7,"N":1}],"selected":{"action":"root","Q":0.0,"N":0,"r_pre":0.0},"executed":{"tool":"OCR","args":{"image":"image/image_407.jpg"},"output":"(204, 66, 398, 98) C 0 MPANY\n(691, 42, 1186, 120) VARIOUS ITEMS\n(1193, 32, 1231, 177) L\n(242, 92, 400, 146) LOGO\n(913, 137, 1184, 170) Summer 2020 Collection\n(364, 256, 574, 280) DUMMY PRODUCT #1\n(954, 256, 1166, 280) DUMMY PRODUCT #2\n(362, 286, 480, 310) ID : 202256\n(954, 286, 1070, 310) ID: 202250","error":false,"truncated":true},"r_post":0.7,"tau_post":0.4,"post_pruned":false,"rollout":1,"best_q":0.7},{"type":"rollout","candidates":[],"backprop":[{"node":"Calculator","reward":0.0,"Q":0.0,"N":1},{"node":"root","reward":0.0,"Q":0.35,"N":2}],"selected":{"action":"Calculator","Q":0.0,"N":0,"r_pre":0.3},"realize":"Calculator","executed":{"tool":"Calculator","args":{"expression":"sum(float(item) for item in ocr_results.split())"},"output":"invocation_failed: Sympify of expression 'could not parse 'sum(float(item) for item in ocr_results.split())'' failed, because of exception being raised:\nSyntaxError: cannot assign to function call (<string>, line 1)","error":true,"truncated":false},"r_post":0.0,"tau_post":0.4,"post_pruned":true,"rollout":2,"best_q":0.7},{"type":"rollout","candidates":[{"tool":"OCR","r_pre":null,"status":"dedup","args":{"image":"image/image_407.jpg"}},{"tool":"Calculator","r_pre":0.9,"status":"kept","args":{"expression":"45.99 + 32.99 + 869.99 + 29.99 + 125.99 + 4.99 + 12.99 + 22.99"}}],"backprop":[{"node":"Calculator","reward":0.9,"Q":0.9,"N":1},{"node":"OCR","reward":0.9,"Q":0.8,"N":2},{"node":"root","reward":0.9,"Q":0.533333,"N":3}],"selected":{"action":"OCR","Q":0.7,"N":1,"r_pre":0.8},"executed":{"tool":"Calculator","args":{"expression":"45.99 + 32.99 + 869.99 + 29.99 + 125.99 + 4.99 + 12.99 + 22.99"},"output":"1145.92","error":false,"truncated":false},"r_post":0.9,"tau_post":0.4,"post_pruned":false,"rollout":3,"best_q":0.8},{"type":"terminal","event":"search_exhausted","rollouts_used":3,"exhausted":[{"node":"Calculator","depth":2},{"node":"OCR","depth":1},{"node":"root","depth":0}],"dedups":[{"tool":"Calculator","args":{"expression":"45.99 + 32.99 + 869.99 + 29.99 + 125.99 + 4.99 + 12.99 + 22.99"}},{"tool":"OCR","args":{"image":"image/image_407.jpg"}}]},{"type":"final","plan":[{"tool":"OCR","args":{"image":"image/image_407.jpg"}},{"tool":"Calculator","args":{"expression":"45.99 + 32.99 + 869.99 + 29.99 + 125.99 + 4.99 + 12.99 + 22.99"}}],"answer":"The total cost for all the items in the picture is $1,145.92.","reward":0.9,"rollouts_used":3}]},{"id":"case2","title":"Case 2 \u2014 Counting sheep: equal numbers? (CountGivenObject \u00d7 2)","query":"Are there equal numbers of small and big sheep?","steps":[{"type":"rollout","candidates":[{"tool":"Calculator","r_pre":0.0,"status":"pre_pruned","args":{"expression":"len([1, 2]) == len([3, 4])"}},{"tool":"TextToBbox","r_pre":0.8,"status":"kept","args":{"image":"image/image_260.jpg","text":"sheep","top1":false}},{"tool":"CountGivenObject","r_pre":0.5,"status":"kept","args":{"image":"image/image_260.jpg","text":"small sheep"}}],"backprop":[{"node":"TextToBbox","reward":0.0,"Q":0.0,"N":1},{"node":"root","reward":0.0,"Q":0.0,"N":1}],"selected":{"action":"root","Q":0.0,"N":0,"r_pre":0.0},"executed":{"tool":"TextToBbox","args":{"image":"image/image_260.jpg","text":"sheep","top1":false},"output":"invocation_failed: No real backend for tool: TextToBbox","error":true,"truncated":false},"r_post":0.0,"tau_post":0.4,"post_pruned":true,"rollout":1,"best_q":0.0},{"type":"rollout","candidates":[],"backprop":[{"node":"CountGivenObject","reward":0.5,"Q":0.5,"N":1},{"node":"root","reward":0.5,"Q":0.25,"N":2}],"selected":{"action":"CountGivenObject","Q":0.0,"N":0,"r_pre":0.5},"realize":"CountGivenObject","executed":{"tool":"CountGivenObject","args":{"image":"image/image_260.jpg","text":"small sheep"},"output":4,"error":false,"truncated":false},"r_post":0.5,"tau_post":0.4,"post_pruned":false,"rollout":2,"best_q":0.5},{"type":"rollout","candidates":[{"tool":"Calculator","r_pre":0.0,"status":"pre_pruned","args":{"expression":"4 == 4"}},{"tool":"CountGivenObject","r_pre":0.9,"status":"kept","args":{"image":"image/image_260.jpg","text":"big sheep"}},{"tool":"TextToBbox","r_pre":0.7,"status":"kept","args":{"image":"image/image_260.jpg","text":"big sheep"}}],"backprop":[{"node":"CountGivenObject","reward":1.0,"Q":1.0,"N":1},{"node":"CountGivenObject","reward":1.0,"Q":0.75,"N":2},{"node":"root","reward":1.0,"Q":0.5,"N":3}],"selected":{"action":"CountGivenObject","Q":0.5,"N":1,"r_pre":0.5},"executed":{"tool":"CountGivenObject","args":{"image":"image/image_260.jpg","text":"big sheep"},"output":4,"error":false,"truncated":false},"r_post":1.0,"tau_post":0.4,"post_pruned":false,"rollout":3,"best_q":0.75},{"type":"rollout","candidates":[],"backprop":[{"node":"TextToBbox","reward":0.0,"Q":0.0,"N":1},{"node":"CountGivenObject","reward":0.0,"Q":0.5,"N":3},{"node":"root","reward":0.0,"Q":0.375,"N":4}],"selected":{"action":"TextToBbox","Q":0.0,"N":0,"r_pre":0.7},"realize":"TextToBbox","executed":{"tool":"TextToBbox","args":{"image":"image/image_260.jpg","text":"big sheep"},"output":"invocation_failed: No real backend for tool: TextToBbox","error":true,"truncated":false},"r_post":0.0,"tau_post":0.4,"post_pruned":true,"rollout":4,"best_q":0.5},{"type":"rollout","candidates":[{"tool":"Calculator","r_pre":0.0,"status":"pre_pruned","args":{"expression":"4 == 4"}},{"tool":"CountGivenObject","r_pre":0.2,"status":"pre_pruned","args":{"image":"image/image_260.jpg","text":"small sheep","bbox":"(0, 0, 100, 100)"}},{"tool":"TextToBbox","r_pre":0.3,"status":"kept","args":{"image":"image/image_260.jpg","text":"small sheep and big sheep","top1":false}}],"backprop":[{"node":"TextToBbox","reward":0.0,"Q":0.0,"N":1},{"node":"CountGivenObject","reward":0.0,"Q":0.5,"N":2},{"node":"CountGivenObject","reward":0.0,"Q":0.375,"N":4},{"node":"root","reward":0.0,"Q":0.3,"N":5}],"selected":{"action":"CountGivenObject","Q":1.0,"N":1,"r_pre":0.9},"executed":{"tool":"TextToBbox","args":{"image":"image/image_260.jpg","text":"small sheep and big sheep","top1":false},"output":"invocation_failed: No real backend for tool: TextToBbox","error":true,"truncated":false},"r_post":0.0,"tau_post":0.4,"post_pruned":true,"rollout":5,"best_q":0.375},{"type":"terminal","event":"search_exhausted","rollouts_used":5,"exhausted":[{"node":"CountGivenObject","depth":2},{"node":"CountGivenObject","depth":1},{"node":"root","depth":0}],"dedups":[]},{"type":"final","plan":[{"tool":"CountGivenObject","args":{"image":"image/image_260.jpg","text":"small sheep"}},{"tool":"CountGivenObject","args":{"image":"image/image_260.jpg","text":"big sheep"}}],"answer":"Based on the tool outputs, there are equal numbers of small and big sheep, with 4 small sheep and 4 big sheep.","reward":0.5,"rollouts_used":5}]},{"id":"case3","title":"Case 3 \u2014 How far can the animal fly in 2.5 hours? (ImageDescription \u2192 GoogleSearch \u2192 Calculator)","query":"How far can the animal in the picture fly in 2.5hours at most?","steps":[{"type":"rollout","candidates":[{"tool":"ImageDescription","r_pre":0.8,"status":"kept","args":{"image":"image/image_395.jpg"}},{"tool":"GoogleSearch","r_pre":0.5,"status":"kept","args":{"query":"How far can the animal in the picture fly in 2.5 hours at most?","k":5}},{"tool":"Calculator","r_pre":0.3,"status":"kept","args":{"expression":"2.5 * 100"}}],"backprop":[{"node":"ImageDescription","reward":0.8,"Q":0.8,"N":1},{"node":"root","reward":0.8,"Q":0.8,"N":1}],"selected":{"action":"root","Q":0.0,"N":0,"r_pre":0.0},"executed":{"tool":"ImageDescription","args":{"image":"image/image_395.jpg"},"output":"a bald eagle flying over a lake","error":false,"truncated":false},"r_post":0.8,"tau_post":0.4,"post_pruned":false,"rollout":1,"best_q":0.8},{"type":"rollout","candidates":[],"backprop":[{"node":"Calculator","reward":0.5,"Q":0.5,"N":1},{"node":"root","reward":0.5,"Q":0.65,"N":2}],"selected":{"action":"Calculator","Q":0.0,"N":0,"r_pre":0.3},"realize":"Calculator","executed":{"tool":"Calculator","args":{"expression":"2.5 * 100"},"output":"250","error":false,"truncated":false},"r_post":0.5,"tau_post":0.4,"post_pruned":false,"rollout":2,"best_q":0.8},{"type":"rollout","candidates":[],"backprop":[{"node":"GoogleSearch","reward":0.5,"Q":0.5,"N":1},{"node":"root","reward":0.5,"Q":0.6,"N":3}],"selected":{"action":"GoogleSearch","Q":0.0,"N":0,"r_pre":0.5},"realize":"GoogleSearch","executed":{"tool":"GoogleSearch","args":{"query":"How far can the animal in the picture fly in 2.5 hours at most?","k":5},"output":"1. How Far Can a Drone Fly? Maximum Ranges and Legal Limits - JOUAV \u2014 March 26, 2026 - Depending on the setup, FPV drones can fly anywhere from 0.5 miles (0.8 kilometers) to 4 miles (6.5 kilometers), though many racers prefer closer ranges to minimize latency in video feedback.\n2. Bird - Flight, Fea","error":false,"truncated":true},"r_post":0.5,"tau_post":0.4,"post_pruned":false,"rollout":3,"best_q":0.8},{"type":"rollout","candidates":[{"tool":"ImageDescription","r_pre":null,"status":"dedup","args":{"image":"image/image_395.jpg"}},{"tool":"GoogleSearch","r_pre":0.8,"status":"kept","args":{"query":"How far can a bald eagle fly in 2.5 hours at most?","k":5}},{"tool":"Calculator","r_pre":0.5,"status":"kept","args":{"expression":"2.5 * 150"}}],"backprop":[{"node":"GoogleSearch","reward":0.7,"Q":0.7,"N":1},{"node":"ImageDescription","reward":0.7,"Q":0.75,"N":2},{"node":"root","reward":0.7,"Q":0.625,"N":4}],"selected":{"action":"ImageDescription","Q":0.8,"N":1,"r_pre":0.8},"executed":{"tool":"GoogleSearch","args":{"query":"How far can a bald eagle fly in 2.5 hours at most?","k":5},"output":"1. Bald eagle - Wikipedia \u2014 The bald eagle (Haliaeetus leucocephalus) is a bird of prey found in North America. A sea eagle, it has two known subspecies and forms a species pair with the white-tailed eagle (Haliaeetus albicilla), which occupies the same niche as the bald eagle in the Palearctic. Its","error":false,"truncated":true},"r_post":0.7,"tau_post":0.4,"post_pruned":false,"rollout":4,"best_q":0.75},{"type":"rollout","candidates":[],"backprop":[{"node":"Calculator","reward":0.5,"Q":0.5,"N":1},{"node":"ImageDescription","reward":0.5,"Q":0.666667,"N":3},{"node":"root","reward":0.5,"Q":0.6,"N":5}],"selected":{"action":"Calculator","Q":0.0,"N":0,"r_pre":0.5},"realize":"Calculator","executed":{"tool":"Calculator","args":{"expression":"2.5 * 150"},"output":"375","error":false,"truncated":false},"r_post":0.5,"tau_post":0.4,"post_pruned":false,"rollout":5,"best_q":0.666667},{"type":"rollout","candidates":[{"tool":"Calculator","r_pre":0.8,"status":"kept","args":{"expression":"2.5 * 45"}},{"tool":"ImageDescription","r_pre":0.8,"status":"kept","args":{"expression":"2.5 * 45"}},{"tool":"GoogleSearch","r_pre":0.5,"status":"kept","args":{"query":"How far can a bald eagle fly in 2.5 hours at most?"}}],"backprop":[{"node":"Calculator","reward":0.9,"Q":0.9,"N":1},{"node":"GoogleSearch","reward":0.9,"Q":0.8,"N":2},{"node":"ImageDescription","reward":0.9,"Q":0.725,"N":4},{"node":"root","reward":0.9,"Q":0.65,"N":6}],"selected":{"action":"GoogleSearch","Q":0.7,"N":1,"r_pre":0.8},"executed":{"tool":"Calculator","args":{"expression":"2.5 * 45"},"output":"112.5","error":false,"truncated":false},"r_post":0.9,"tau_post":0.4,"post_pruned":false,"rollout":6,"best_q":0.725},{"type":"rollout","candidates":[],"backprop":[{"node":"GoogleSearch","reward":0.7,"Q":0.7,"N":1},{"node":"GoogleSearch","reward":0.7,"Q":0.766667,"N":3},{"node":"ImageDescription","reward":0.7,"Q":0.72,"N":5},{"node":"root","reward":0.7,"Q":0.657143,"N":7}],"selected":{"action":"GoogleSearch","Q":0.0,"N":0,"r_pre":0.5},"realize":"GoogleSearch","executed":{"tool":"GoogleSearch","args":{"query":"How far can a bald eagle fly in 2.5 hours at most?"},"output":"1. Bald Eagle Behavior | American Eagle Foundation \u2014 How fast can a bald eagle fly? Average migratory flight / soaring speed is 50 kilometers/hour (31.06 mph). Normal flight speed going from perch to perch is much less than this.\n2. Bald Eagle | Audubon Field Guide \u2014 The Bald Eagle nest is one of th","error":false,"truncated":true},"r_post":0.7,"tau_post":0.4,"post_pruned":false,"rollout":7,"best_q":0.72},{"type":"rollout","candidates":[{"tool":"GoogleSearch","r_pre":null,"status":"dedup","args":{"query":"How far can the animal in the picture fly in 2.5 hours at most?","k":5}},{"tool":"ImageDescription","r_pre":0.2,"status":"pre_pruned","args":{"image":"image/image_395.jpg"}},{"tool":"Calculator","r_pre":0.3,"status":"kept","args":{"expression":"2.5 * 30"}}],"backprop":[{"node":"Calculator","reward":0.5,"Q":0.5,"N":1},{"node":"GoogleSearch","reward":0.5,"Q":0.5,"N":2},{"node":"root","reward":0.5,"Q":0.6375,"N":8}],"selected":{"action":"GoogleSearch","Q":0.5,"N":1,"r_pre":0.5},"executed":{"tool":"Calculator","args":{"expression":"2.5 * 30"},"output":"75","error":false,"truncated":false},"r_post":0.5,"tau_post":0.4,"post_pruned":false,"rollout":8,"best_q":0.72},{"type":"rollout","candidates":[],"backprop":[{"node":"ImageDescription","reward":0.0,"Q":0.0,"N":1},{"node":"GoogleSearch","reward":0.0,"Q":0.575,"N":4},{"node":"ImageDescription","reward":0.0,"Q":0.6,"N":6},{"node":"root","reward":0.0,"Q":0.566667,"N":9}],"selected":{"action":"ImageDescription","Q":0.0,"N":0,"r_pre":0.8},"realize":"ImageDescription","executed":{"tool":"ImageDescription","args":{"expression":"2.5 * 45"},"output":"invocation_failed: Incorrect image source. Must be a valid URL starting with `http://` or `https://`, a valid path to an image file, or a base64 encoded string. Got <local dataset dir>. Failed with Incorrect padding","error":true,"truncated":false,"redacted":true},"r_post":0.0,"tau_post":0.4,"post_pruned":true,"rollout":9,"best_q":0.6},{"type":"rollout","candidates":[{"tool":"Calculator","r_pre":null,"status":"dedup","args":{"expression":"2.5 * 150"}},{"tool":"ImageDescription","r_pre":null,"status":"dedup","args":{"image":"image/image_395.jpg"}},{"tool":"GoogleSearch","r_pre":0.7,"status":"kept","args":{"query":"How far can a bald eagle fly in 2.5 hours at most?","k":5}}],"backprop":[{"node":"GoogleSearch","reward":0.7,"Q":0.7,"N":1},{"node":"Calculator","reward":0.7,"Q":0.6,"N":2},{"node":"ImageDescription","reward":0.7,"Q":0.614286,"N":7},{"node":"root","reward":0.7,"Q":0.58,"N":10}],"selected":{"action":"Calculator","Q":0.5,"N":1,"r_pre":0.5},"executed":{"tool":"GoogleSearch","args":{"query":"How far can a bald eagle fly in 2.5 hours at most?","k":5},"output":"1. Bald eagle - Wikipedia \u2014 The bald eagle (Haliaeetus leucocephalus) is a bird of prey found in North America. A sea eagle, it has two known subspecies and forms a species pair with the white-tailed eagle (Haliaeetus albicilla), which occupies the same niche as the bald eagle in the Palearctic. Its","error":false,"truncated":true},"r_post":0.7,"tau_post":0.4,"post_pruned":false,"rollout":10,"best_q":0.614286},{"type":"rollout","candidates":[{"tool":"GoogleSearch","r_pre":null,"status":"dedup","args":{"query":"How far can a bald eagle fly in 2.5 hours at most?"}},{"tool":"ImageDescription","r_pre":null,"status":"dedup","args":{"image":"image/image_395.jpg"}},{"tool":"Calculator","r_pre":0.8,"status":"kept","args":{"expression":"2.5 * 45"}}],"backprop":[{"node":"Calculator","reward":0.8,"Q":0.8,"N":1},{"node":"GoogleSearch","reward":0.8,"Q":0.75,"N":2},{"node":"GoogleSearch","reward":0.8,"Q":0.62,"N":5},{"node":"ImageDescription","reward":0.8,"Q":0.6375,"N":8},{"node":"root","reward":0.8,"Q":0.6,"N":11}],"selected":{"action":"GoogleSearch","Q":0.7,"N":1,"r_pre":0.5},"executed":{"tool":"Calculator","args":{"expression":"2.5 * 45"},"output":"112.5","error":false,"truncated":false},"r_post":0.8,"tau_post":0.4,"post_pruned":false,"rollout":11,"best_q":0.6375,"discovery":[{"candidates":[{"tool":"Calculator","r_pre":null,"status":"dedup","args":{"expression":"2.5 * 45"}},{"tool":"ImageDescription","r_pre":null,"status":"dedup","args":{"image":"image/image_395.jpg"}},{"tool":"GoogleSearch","r_pre":0.2,"status":"pre_pruned","args":{"query":"How far can a bald eagle fly in 2.5 hours at most?"}}],"selected":{"action":"Calculator","Q":0.9,"N":1,"r_pre":0.8},"exhausted":{"node":"Calculator","depth":3}}]},{"type":"terminal","event":"early_stop","rollouts_used":11,"exhausted":[{"node":"Calculator","depth":3}],"dedups":[],"baseline":0.8,"best_recent":0.8,"improvement":0.0,"delta":0.001,"patience":10},{"type":"final","plan":[{"tool":"ImageDescription","args":{"image":"image/image_395.jpg"}},{"tool":"GoogleSearch","args":{"query":"How far can a bald eagle fly in 2.5 hours at most?","k":5}},{"tool":"Calculator","args":{"expression":"2.5 * 45"}}],"answer":"The animal in the picture is a bald eagle. Based on the information provided, a bald eagle can fly up to 45 miles per hour while gliding. Therefore, in 2.5 hours, the maximum distance it can fly is 112.5 miles.","reward":0.9,"rollouts_used":11}]}]};