| <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> |
|
|
| |
| |
| <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)"/> |
| |
| <path d="M620 178 V 274" fill="none" stroke="#94A3B8" stroke-width="2" marker-end="url(#mExp)"/> |
| |
| <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)"/> |
| |
| <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)"/> |
| |
| <path d="M340 358 C 400 400, 450 412, 512 454" fill="none" stroke="#94A3B8" stroke-width="2" marker-end="url(#mExp)"/> |
| |
| <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)"/> |
| |
| <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)"/> |
|
|
| |
| <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> |
|
|
| |
| |
| <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> |
|
|
| |
| <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> |
|
|
| |
| <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> |
|
|
| |
| |
| <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> |
|
|
| |
| <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> |
|
|
| |
| <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> |
|
|
| |
| <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> |
|
|
| |
| <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 < θ)</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> |
|
|