Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
73 lines
4.7 KiB
XML
73 lines
4.7 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 820 470" width="820" height="470" role="img" aria-labelledby="title desc">
|
|
<title id="title">Execution loop of an autonomous Agent</title>
|
|
<desc id="desc">The Agent reasons, acts, and observes before checking exit conditions and either returning the final result or starting another iteration.</desc>
|
|
<defs>
|
|
<marker id="arrow-dark" markerWidth="9" markerHeight="7" refX="8" refY="3.5" orient="auto" markerUnits="userSpaceOnUse">
|
|
<polygon points="0 0, 9 3.5, 0 7" fill="#333333"/>
|
|
</marker>
|
|
<marker id="arrow-light" markerWidth="9" markerHeight="7" refX="8" refY="3.5" orient="auto" markerUnits="userSpaceOnUse">
|
|
<polygon points="0 0, 9 3.5, 0 7" fill="#777777"/>
|
|
</marker>
|
|
<style>
|
|
.sans { font-family: Arial, "Helvetica Neue", Helvetica, "PingFang SC", "Microsoft YaHei", sans-serif; }
|
|
.code { font-family: "Courier New", Courier, monospace; }
|
|
.heading { fill: #333333; font-size: 16px; font-weight: 700; }
|
|
.body { fill: #333333; font-size: 15px; }
|
|
.note { fill: #666666; font-size: 14px; }
|
|
.box { stroke: #333333; stroke-width: 2; }
|
|
.flow { fill: none; stroke: #333333; stroke-width: 2; marker-end: url(#arrow-dark); }
|
|
</style>
|
|
</defs>
|
|
|
|
<rect width="820" height="470" fill="#ffffff"/>
|
|
|
|
<!-- ReAct steps -->
|
|
<rect class="box" x="45" y="70" width="210" height="96" rx="8" fill="#e8e8e8"/>
|
|
<text class="sans heading" x="60" y="95" dominant-baseline="middle">① Think (Reasoning)</text>
|
|
<rect x="60" y="112" width="180" height="38" rx="5" fill="#ffffff" stroke="#777777"/>
|
|
<text class="code body" x="150" y="132" text-anchor="middle" dominant-baseline="middle">"Need more info"</text>
|
|
|
|
<rect class="box" x="305" y="70" width="210" height="96" rx="8" fill="#f0f0f0"/>
|
|
<text class="sans heading" x="320" y="95" dominant-baseline="middle">② Acting</text>
|
|
<rect x="320" y="112" width="180" height="38" rx="5" fill="#ffffff" stroke="#777777"/>
|
|
<text class="code body" x="410" y="132" text-anchor="middle" dominant-baseline="middle">web_search(...)</text>
|
|
|
|
<rect class="box" x="565" y="70" width="210" height="96" rx="8" fill="#f0f0f0"/>
|
|
<text class="sans heading" x="580" y="95" dominant-baseline="middle">③ Observing</text>
|
|
<rect x="580" y="112" width="180" height="38" rx="5" fill="#ffffff" stroke="#777777"/>
|
|
<text class="code body" x="670" y="132" text-anchor="middle" dominant-baseline="middle">tool_result: "..."</text>
|
|
|
|
<line class="flow" x1="255" y1="118" x2="302" y2="118"/>
|
|
<line class="flow" x1="515" y1="118" x2="562" y2="118"/>
|
|
<line class="flow" x1="670" y1="166" x2="670" y2="207"/>
|
|
|
|
<!-- Exit criteria feed the decision point -->
|
|
<rect x="45" y="220" width="430" height="145" rx="8" fill="#ffffff" stroke="#777777" stroke-width="2" stroke-dasharray="7 4"/>
|
|
<text class="sans heading" x="65" y="244" dominant-baseline="middle">Exit conditions (any one)</text>
|
|
<line x1="65" y1="258" x2="455" y2="258" stroke="#cccccc"/>
|
|
<text class="sans body" x="65" y="282" dominant-baseline="middle">① Task complete</text>
|
|
<text class="sans body" x="250" y="282" dominant-baseline="middle">② final_answer called</text>
|
|
<text class="sans body" x="65" y="314" dominant-baseline="middle">③ No tool call</text>
|
|
<text class="sans body" x="250" y="314" dominant-baseline="middle">④ Error limit exceeded</text>
|
|
<text class="sans body" x="65" y="346" dominant-baseline="middle">⑤ Max rounds reached</text>
|
|
|
|
<path d="M 475 260 H 587" fill="none" stroke="#777777" stroke-width="2" stroke-dasharray="6 4" marker-end="url(#arrow-light)"/>
|
|
<rect x="493" y="238" width="80" height="20" rx="3" fill="#ffffff"/>
|
|
<text class="sans note" x="533" y="248" text-anchor="middle" dominant-baseline="middle">Decision criteria</text>
|
|
|
|
<!-- Stop decision and branches -->
|
|
<polygon class="box" points="670,208 750,260 670,312 590,260" fill="#e2e2e2"/>
|
|
<text class="sans heading" x="670" y="252" text-anchor="middle" dominant-baseline="middle">Exit condition</text>
|
|
<text class="sans heading" x="670" y="273" text-anchor="middle" dominant-baseline="middle">met?</text>
|
|
|
|
<path class="flow" d="M 750 260 H 795 V 35 H 150 V 67"/>
|
|
<text class="sans note" x="765" y="245" dominant-baseline="middle">No</text>
|
|
<rect x="360" y="43" width="120" height="22" rx="3" fill="#ffffff"/>
|
|
<text class="sans note" x="420" y="54" text-anchor="middle" dominant-baseline="middle">Continue the loop</text>
|
|
|
|
<line class="flow" x1="670" y1="312" x2="670" y2="379"/>
|
|
<text class="sans note" x="685" y="346" dominant-baseline="middle">Yes</text>
|
|
<rect class="box" x="555" y="382" width="230" height="68" rx="8" fill="#d6d6d6"/>
|
|
<text class="sans heading" x="670" y="416" text-anchor="middle" dominant-baseline="middle">Return final result</text>
|
|
</svg>
|