ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
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

This commit is contained in:
2026-08-20 13:12:50 +00:00
commit b119135836
10275 changed files with 3284984 additions and 0 deletions
+70
View File
@@ -0,0 +1,70 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 820 470" width="820" height="470" role="img" aria-labelledby="title desc" lang="ru">
<title id="title">Цикл выполнения автономного агента</title>
<desc id="desc">Агент последовательно размышляет, действует и наблюдает, затем проверяет условия выхода и либо возвращает итоговый результат, либо начинает новую итерацию.</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, sans-serif; }
.code { font-family: "Courier New", Courier, monospace; }
.heading { fill: #333333; font-size: 16px; font-weight: 700; }
.body { fill: #333333; font-size: 15px; }
.small { font-size: 14px; }
.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"/>
<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">① Размышление</text>
<rect x="60" y="112" width="180" height="38" rx="5" fill="#ffffff" stroke="#777777"/>
<text class="code body small" x="150" y="132" text-anchor="middle" dominant-baseline="middle">&quot;Нужно больше данных&quot;</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">② Действие</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">③ Наблюдение</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: &quot;...&quot;</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"/>
<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">Условия выхода (любое)</text>
<line x1="65" y1="258" x2="455" y2="258" stroke="#cccccc"/>
<text class="sans body small" x="65" y="282" dominant-baseline="middle">① Задача выполнена</text>
<text class="sans body small" x="250" y="282" dominant-baseline="middle">② Вызван final_answer</text>
<text class="sans body small" x="65" y="314" dominant-baseline="middle">③ Нет вызова инструмента</text>
<text class="sans body small" x="250" y="314" dominant-baseline="middle">④ Превышен лимит ошибок</text>
<text class="sans body small" x="65" y="346" dominant-baseline="middle">⑤ Достигнут максимум раундов</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="499" y="238" width="68" height="20" rx="3" fill="#ffffff"/>
<text class="sans note" x="533" y="248" text-anchor="middle" dominant-baseline="middle">Критерии</text>
<polygon class="box" points="670,208 750,260 670,312 590,260" fill="#e2e2e2"/>
<text class="sans heading small" x="670" y="252" text-anchor="middle" dominant-baseline="middle">Условие выхода</text>
<text class="sans heading" x="670" y="273" text-anchor="middle" dominant-baseline="middle">выполнено?</text>
<path class="flow" d="M 750 260 H 795 V 35 H 150 V 67"/>
<text class="sans note" x="773" y="245" text-anchor="middle" dominant-baseline="middle">Нет</text>
<rect x="352" y="43" width="136" height="22" rx="3" fill="#ffffff"/>
<text class="sans note" x="420" y="54" text-anchor="middle" dominant-baseline="middle">Продолжить цикл</text>
<line class="flow" x1="670" y1="312" x2="670" y2="379"/>
<text class="sans note" x="685" y="346" dominant-baseline="middle">Да</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">Вернуть результат</text>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB