ToolTree / static /paper /tooltree_search.svg
Pleuron's picture
Upload folder using huggingface_hub
7556728 verified
|
Raw
History Blame Contribute Delete
10.6 kB
<svg xmlns="http://www.w3.org/2000/svg" width="1240" height="720" viewBox="0 0 1240 720" font-family="Helvetica Neue, Helvetica, Arial, sans-serif">
<defs>
<linearGradient id="rootGrad" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#4F46E5"/><stop offset="1" stop-color="#7C3AED"/>
</linearGradient>
<filter id="soft" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="3" stdDeviation="6" flood-color="#0F172A" flood-opacity="0.10"/>
</filter>
<marker id="mSel" viewBox="0 0 10 10" refX="8.5" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
<path d="M0 0L10 5L0 10z" fill="#4F46E5"/>
</marker>
<marker id="mExp" viewBox="0 0 10 10" refX="8.5" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
<path d="M0 0L10 5L0 10z" fill="#94A3B8"/>
</marker>
<marker id="mPru" viewBox="0 0 10 10" refX="8.5" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
<path d="M0 0L10 5L0 10z" fill="#CBD5E1"/>
</marker>
<marker id="mWin" viewBox="0 0 10 10" refX="8.5" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
<path d="M0 0L10 5L0 10z" fill="#059669"/>
</marker>
<g id="ic-search" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round">
<circle cx="10.5" cy="10.5" r="5.5"/><path d="M14.8 14.8L20 20"/>
</g>
<g id="ic-db" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round">
<ellipse cx="12" cy="6" rx="7" ry="2.6"/><path d="M5 6v12c0 1.4 3.1 2.6 7 2.6s7-1.2 7-2.6V6"/><path d="M5 12c0 1.4 3.1 2.6 7 2.6s7-1.2 7-2.6"/>
</g>
<g id="ic-plug" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
<path d="M9 7V3M15 7V3M7 7h10v4a5 5 0 0 1-10 0zM12 16v5"/>
</g>
<g id="ic-term" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="4" width="18" height="16" rx="2"/><path d="M7 9l3 3-3 3M12.5 15H17"/>
</g>
<g id="ic-scale" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 4v16M7 20h10M12 7l6-1M12 7L6 6"/><path d="M4 12l2-6 2 6a2.6 2.6 0 0 1-4 0zM16 11l2-6 2 6a2.6 2.6 0 0 1-4 0z"/>
</g>
<g id="ic-layers" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 3l9 5-9 5-9-5z"/><path d="M3 13l9 5 9-5"/>
</g>
</defs>
<rect width="1240" height="720" fill="#F8FAFC"/>
<text x="44" y="56" font-size="26" font-weight="700" fill="#0F172A">Tree Search over Tool-Call Trajectories</text>
<text x="44" y="82" font-size="14" fill="#64748B">Value-guided expansion: each node is a tool call, v(s) scores the partial trajectory</text>
<!-- ══ edges (drawn first, under nodes) ══ -->
<!-- root → A : selected -->
<path d="M560 178 C 480 220, 400 230, 318 276" fill="none" stroke="#C7D2FE" stroke-width="9" stroke-linecap="round"/>
<path d="M560 178 C 480 220, 400 230, 318 276" fill="none" stroke="#4F46E5" stroke-width="3.2" marker-end="url(#mSel)"/>
<!-- root → B : explored -->
<path d="M620 178 V 274" fill="none" stroke="#94A3B8" stroke-width="2" marker-end="url(#mExp)"/>
<!-- root → C : pruned -->
<path d="M680 178 C 770 220, 850 230, 926 274" fill="none" stroke="#CBD5E1" stroke-width="2" stroke-dasharray="6 5" marker-end="url(#mPru)"/>
<!-- A → A1 : selected -->
<path d="M290 358 C 280 400, 272 414, 264 454" fill="none" stroke="#C7D2FE" stroke-width="9" stroke-linecap="round"/>
<path d="M290 358 C 280 400, 272 414, 264 454" fill="none" stroke="#4F46E5" stroke-width="3.2" marker-end="url(#mSel)"/>
<!-- A → A2 : explored -->
<path d="M340 358 C 400 400, 450 412, 512 454" fill="none" stroke="#94A3B8" stroke-width="2" marker-end="url(#mExp)"/>
<!-- B → B1 : pruned -->
<path d="M650 358 C 710 400, 750 412, 800 454" fill="none" stroke="#CBD5E1" stroke-width="2" stroke-dasharray="6 5" marker-end="url(#mPru)"/>
<!-- A1 → answer : winning -->
<path d="M260 538 V 596" fill="none" stroke="#A7F3D0" stroke-width="9" stroke-linecap="round"/>
<path d="M260 538 V 596" fill="none" stroke="#059669" stroke-width="3.2" marker-end="url(#mWin)"/>
<!-- ══ root ══ -->
<g filter="url(#soft)"><rect x="500" y="110" width="240" height="68" rx="14" fill="url(#rootGrad)"/></g>
<text x="620" y="140" font-size="16" font-weight="700" fill="#FFFFFF" text-anchor="middle">User Query</text>
<text x="620" y="161" font-size="12" fill="#E0E7FF" text-anchor="middle">"cheapest direct flight MEL → SIN, ≤ $400"</text>
<!-- ══ level 1 ══ -->
<!-- A: selected -->
<g filter="url(#soft)"><rect x="185" y="280" width="230" height="78" rx="12" fill="#FFFFFF" stroke="#4F46E5" stroke-width="2"/></g>
<rect x="199" y="296" width="44" height="44" rx="11" fill="#EEF2FF"/>
<use href="#ic-search" transform="translate(208,305) scale(1.1)" color="#4F46E5"/>
<text x="255" y="314" font-size="13.5" font-weight="700" fill="#0F172A" font-family="Menlo, SF Mono, monospace">search_flights</text>
<text x="255" y="334" font-size="11" fill="#64748B" font-family="Menlo, SF Mono, monospace">(MEL→SIN, direct)</text>
<rect x="363" y="269" width="52" height="22" rx="11" fill="#4F46E5"/>
<text x="389" y="284" font-size="11.5" font-weight="700" fill="#FFFFFF" text-anchor="middle">0.82</text>
<!-- B: explored -->
<g filter="url(#soft)"><rect x="505" y="280" width="230" height="78" rx="12" fill="#FFFFFF" stroke="#CBD5E1" stroke-width="1.5"/></g>
<rect x="519" y="296" width="44" height="44" rx="11" fill="#F1F5F9"/>
<use href="#ic-db" transform="translate(528,305) scale(1.1)" color="#64748B"/>
<text x="575" y="314" font-size="13.5" font-weight="700" fill="#334155" font-family="Menlo, SF Mono, monospace">query_history</text>
<text x="575" y="334" font-size="11" fill="#94A3B8" font-family="Menlo, SF Mono, monospace">(user preferences)</text>
<rect x="683" y="269" width="52" height="22" rx="11" fill="#E2E8F0"/>
<text x="709" y="284" font-size="11.5" font-weight="700" fill="#475569" text-anchor="middle">0.41</text>
<!-- C: pruned -->
<g opacity="0.65">
<rect x="825" y="280" width="230" height="78" rx="12" fill="#FFFFFF" stroke="#E2E8F0" stroke-width="1.5" stroke-dasharray="6 4"/>
<rect x="839" y="296" width="44" height="44" rx="11" fill="#F8FAFC"/>
<use href="#ic-plug" transform="translate(848,305) scale(1.1)" color="#94A3B8"/>
<text x="895" y="314" font-size="13.5" font-weight="700" fill="#94A3B8" font-family="Menlo, SF Mono, monospace">call_airline_api</text>
<text x="895" y="334" font-size="11" fill="#CBD5E1" font-family="Menlo, SF Mono, monospace">(auth missing ✗)</text>
<rect x="1003" y="269" width="52" height="22" rx="11" fill="#F1F5F9"/>
<text x="1029" y="284" font-size="11.5" font-weight="700" fill="#94A3B8" text-anchor="middle">0.17</text>
</g>
<!-- ══ level 2 ══ -->
<!-- A1 selected -->
<g filter="url(#soft)"><rect x="145" y="460" width="230" height="78" rx="12" fill="#FFFFFF" stroke="#4F46E5" stroke-width="2"/></g>
<rect x="159" y="476" width="44" height="44" rx="11" fill="#EEF2FF"/>
<use href="#ic-term" transform="translate(168,485) scale(1.1)" color="#4F46E5"/>
<text x="215" y="494" font-size="13.5" font-weight="700" fill="#0F172A" font-family="Menlo, SF Mono, monospace">filter_results</text>
<text x="215" y="514" font-size="11" fill="#64748B" font-family="Menlo, SF Mono, monospace">(price ≤ 400, sort↑)</text>
<rect x="323" y="449" width="52" height="22" rx="11" fill="#4F46E5"/>
<text x="349" y="464" font-size="11.5" font-weight="700" fill="#FFFFFF" text-anchor="middle">0.88</text>
<!-- A2 explored -->
<g filter="url(#soft)"><rect x="425" y="460" width="230" height="78" rx="12" fill="#FFFFFF" stroke="#CBD5E1" stroke-width="1.5"/></g>
<rect x="439" y="476" width="44" height="44" rx="11" fill="#F1F5F9"/>
<use href="#ic-scale" transform="translate(448,485) scale(1.1)" color="#64748B"/>
<text x="495" y="494" font-size="13.5" font-weight="700" fill="#334155" font-family="Menlo, SF Mono, monospace">compare_prices</text>
<text x="495" y="514" font-size="11" fill="#94A3B8" font-family="Menlo, SF Mono, monospace">(3 carriers)</text>
<rect x="603" y="449" width="52" height="22" rx="11" fill="#E2E8F0"/>
<text x="629" y="464" font-size="11.5" font-weight="700" fill="#475569" text-anchor="middle">0.55</text>
<!-- B1 pruned -->
<g opacity="0.65">
<rect x="715" y="460" width="230" height="78" rx="12" fill="#FFFFFF" stroke="#E2E8F0" stroke-width="1.5" stroke-dasharray="6 4"/>
<rect x="729" y="476" width="44" height="44" rx="11" fill="#F8FAFC"/>
<use href="#ic-layers" transform="translate(738,485) scale(1.1)" color="#94A3B8"/>
<text x="785" y="494" font-size="13.5" font-weight="700" fill="#94A3B8" font-family="Menlo, SF Mono, monospace">rerank_memory</text>
<text x="785" y="514" font-size="11" fill="#CBD5E1" font-family="Menlo, SF Mono, monospace">(stale entries)</text>
<rect x="893" y="449" width="52" height="22" rx="11" fill="#F1F5F9"/>
<text x="919" y="464" font-size="11.5" font-weight="700" fill="#94A3B8" text-anchor="middle">0.33</text>
</g>
<!-- ══ answer ══ -->
<g filter="url(#soft)"><rect x="110" y="600" width="300" height="60" rx="12" fill="#ECFDF5" stroke="#059669" stroke-width="2"/></g>
<circle cx="140" cy="630" r="13" fill="#059669"/>
<path d="M134 630l4.5 4.5 8-9" fill="none" stroke="#FFFFFF" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/>
<text x="162" y="626" font-size="13.5" font-weight="700" fill="#065F46">Final answer · SQ218, $372</text>
<text x="162" y="646" font-size="11.5" fill="#059669">trajectory reward R(τ*) = 0.91</text>
<!-- ══ legend ══ -->
<g font-size="12" fill="#475569">
<path d="M560 626 h44" stroke="#C7D2FE" stroke-width="8" stroke-linecap="round"/>
<path d="M560 626 h44" stroke="#4F46E5" stroke-width="3"/>
<text x="614" y="630">selected path</text>
<path d="M720 626 h44" stroke="#94A3B8" stroke-width="2"/>
<text x="774" y="630">explored</text>
<path d="M860 626 h44" stroke="#CBD5E1" stroke-width="2" stroke-dasharray="6 5"/>
<text x="914" y="630">pruned (v &lt; θ)</text>
</g>
<text x="44" y="695" font-size="11.5" fill="#94A3B8">Figure 2 · Generated as native SVG by Claude Code — icons are inline vector paths, no external assets.</text>
</svg>