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
+89
View File
@@ -0,0 +1,89 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 40 900 660" width="900" height="660" style="background:#ffffff">
<defs><marker id="ah" markerWidth="12" markerHeight="8" refX="12" refY="4" orient="auto"><polygon points="0 0, 12 4, 0 8" fill="#333333"/></marker><marker id="ah-light" markerWidth="12" markerHeight="8" refX="12" refY="4" orient="auto"><polygon points="0 0, 12 4, 0 8" fill="#999999"/></marker></defs>
<rect x="10.0" y="55" width="168" height="38" rx="6" fill="#999999" stroke="#333333" stroke-width="2"/>
<text x="94.0" y="74" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="14" fill="#ffffff" text-anchor="middle" dominant-baseline="central" font-weight="bold">Modelo Diff + Apply</text>
<rect x="10.0" y="101" width="168" height="116" rx="3" fill="#f5f5f5" stroke="#999999" stroke-width="2"/>
<text x="16.0" y="117" font-family="'Courier New', Courier, monospace" font-size="8" fill="#333333" text-anchor="start" dominant-baseline="central">El LLM genera explicación Diff:</text>
<text x="16.0" y="134" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central">- def foo(x):</text>
<text x="16.0" y="151" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central">- return x</text>
<text x="16.0" y="168" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central">+ def foo(x, y=0):</text>
<text x="16.0" y="185" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central">+ return x + y</text>
<text x="16.0" y="202" font-family="'Courier New', Courier, monospace" font-size="8" fill="#333333" text-anchor="start" dominant-baseline="central">→ Modelo pequeño ubica y aplica</text>
<rect x="14.0" y="229" width="160" height="80" rx="3" fill="#ffffff" stroke="#999999" stroke-width="2"/>
<text x="94.0" y="244.2" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">Ventajas: Separación de</text>
<text x="94.0" y="258.36" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">responsabilidades</text>
<text x="94.0" y="272.52000000000004" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#666666" text-anchor="middle" dominant-baseline="central" font-weight="normal">Contras: Pequeña</text>
<text x="94.0" y="286.68000000000006" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#666666" text-anchor="middle" dominant-baseline="central" font-weight="normal">desviación rompe</text>
<text x="94.0" y="300.8400000000001" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#666666" text-anchor="middle" dominant-baseline="central" font-weight="normal">alineación</text>
<rect x="188.0" y="55" width="168" height="38" rx="6" fill="#d0d0d0" stroke="#333333" stroke-width="2"/>
<text x="272.0" y="74" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="9.5" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="bold">Cadena antigua → Cadena nueva</text>
<rect x="188.0" y="101" width="168" height="99" rx="3" fill="#f5f5f5" stroke="#999999" stroke-width="2"/>
<text x="194.0" y="117" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central">old: &quot;def foo(x):\n</text>
<text x="194.0" y="134" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central"> return x&quot;</text>
<text x="194.0" y="151" font-family="'Courier New', Courier, monospace" font-size="10.5" fill="#333333" text-anchor="start" dominant-baseline="central">new: &quot;def foo(x, y=0):\n</text>
<text x="194.0" y="168" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central"> return x + y&quot;</text>
<text x="194.0" y="185" font-family="'Courier New', Courier, monospace" font-size="7" fill="#333333" text-anchor="start" dominant-baseline="central">→ Reemplazo por coincidencia exacta</text>
<rect x="192.0" y="229" width="160" height="80" rx="3" fill="#ffffff" stroke="#999999" stroke-width="2"/>
<text x="272.0" y="244.2" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">Ventajas: Predecible, sin</text>
<text x="272.0" y="258.36" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">ambigüedad</text>
<text x="272.0" y="272.52000000000004" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#666666" text-anchor="middle" dominant-baseline="central" font-weight="normal">Contras: Grandes</text>
<text x="272.0" y="286.68000000000006" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#666666" text-anchor="middle" dominant-baseline="central" font-weight="normal">eliminaciones requieren</text>
<text x="272.0" y="300.8400000000001" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#666666" text-anchor="middle" dominant-baseline="central" font-weight="normal">salida completa</text>
<rect x="366.0" y="55" width="168" height="38" rx="6" fill="#f0f0f0" stroke="#333333" stroke-width="2"/>
<text x="450.0" y="74" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="13" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="bold">Ubicación por num. línea</text>
<rect x="366.0" y="101" width="168" height="99" rx="3" fill="#f5f5f5" stroke="#999999" stroke-width="2"/>
<text x="372.0" y="117" font-family="'Courier New', Courier, monospace" font-size="8" fill="#333333" text-anchor="start" dominant-baseline="central">Eliminar líneas 42-43, agregar:</text>
<text x="372.0" y="134" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central"> def foo(x, y=0):</text>
<text x="372.0" y="151" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central"> return x + y</text>
<text x="372.0" y="168" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central"></text>
<text x="372.0" y="185" font-family="'Courier New', Courier, monospace" font-size="6" fill="#333333" text-anchor="start" dominant-baseline="central">→ El núm. de línea especifica el rango exacto</text>
<rect x="370.0" y="229" width="160" height="80" rx="3" fill="#ffffff" stroke="#999999" stroke-width="2"/>
<text x="450.0" y="244.2" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">Ventajas: Eficiente para</text>
<text x="450.0" y="258.36" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">operaciones grandes</text>
<text x="450.0" y="272.52000000000004" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#666666" text-anchor="middle" dominant-baseline="central" font-weight="normal">Contras: Propensa a</text>
<text x="450.0" y="286.68000000000006" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#666666" text-anchor="middle" dominant-baseline="central" font-weight="normal">errores en archivos largos</text>
<rect x="544.0" y="55" width="168" height="38" rx="6" fill="#f0f0f0" stroke="#333333" stroke-width="2"/>
<text x="628.0" y="74" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="14" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="bold">Comandos estilo Vim</text>
<rect x="544.0" y="101" width="168" height="99" rx="3" fill="#f5f5f5" stroke="#999999" stroke-width="2"/>
<text x="550.0" y="117" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central">42G (ir a línea 42)</text>
<text x="550.0" y="134" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central">cw (cambiar palabra)</text>
<text x="550.0" y="151" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central">dd (eliminar línea)</text>
<text x="550.0" y="168" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central">yy/p (copiar/pegar)</text>
<text x="550.0" y="185" font-family="'Courier New', Courier, monospace" font-size="9.5" fill="#333333" text-anchor="start" dominant-baseline="central">→ Semántica de edición rica</text>
<rect x="548.0" y="229" width="160" height="80" rx="3" fill="#ffffff" stroke="#999999" stroke-width="2"/>
<text x="628.0" y="244.2" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">Ventajas:</text>
<text x="628.0" y="258.36" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">Mover/reorganizar</text>
<text x="628.0" y="272.52000000000004" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">eficientemente</text>
<text x="628.0" y="286.68000000000006" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#666666" text-anchor="middle" dominant-baseline="central" font-weight="normal">Contras: Modelos débiles</text>
<text x="628.0" y="300.8400000000001" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#666666" text-anchor="middle" dominant-baseline="central" font-weight="normal">generan más errores</text>
<rect x="722.0" y="55" width="168" height="38" rx="6" fill="#d0d0d0" stroke="#333333" stroke-width="2"/>
<text x="806.0" y="74" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="14" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="bold">Coincidencia inicio-fin</text>
<rect x="722.0" y="101" width="168" height="99" rx="3" fill="#f5f5f5" stroke="#999999" stroke-width="2"/>
<text x="728.0" y="117" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central">start: &quot;def foo(x):&quot;</text>
<text x="728.0" y="134" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central">end: &quot; return x&quot;</text>
<text x="728.0" y="151" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central">new: &quot;def foo(x, y=0):</text>
<text x="728.0" y="168" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central"> return x + y&quot;</text>
<text x="728.0" y="185" font-family="'Courier New', Courier, monospace" font-size="8" fill="#333333" text-anchor="start" dominant-baseline="central">→ Bastan los límites para ubicar</text>
<rect x="726.0" y="229" width="160" height="80" rx="3" fill="#ffffff" stroke="#999999" stroke-width="2"/>
<text x="806.0" y="244.2" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">Ventajas: Gran eliminación</text>
<text x="806.0" y="258.36" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">sin salida completa</text>
<text x="806.0" y="272.52000000000004" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#666666" text-anchor="middle" dominant-baseline="central" font-weight="normal">Contras: La combinación de</text>
<text x="806.0" y="286.68000000000006" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="12" fill="#666666" text-anchor="middle" dominant-baseline="central" font-weight="normal">límites debe ser única</text>
<line x1="30" y1="331" x2="870" y2="331" stroke="#999999" stroke-width="2" stroke-dasharray="8,4"/>
<text x="450.0" y="355" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="20" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="bold">Tasa real de adopción</text>
<text x="240" y="393" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="14" fill="#333333" text-anchor="end" dominant-baseline="central" font-weight="bold">Cadena ant.→nueva</text>
<rect x="250" y="379" width="408.0" height="28" rx="3" fill="#999999" stroke="#333333" stroke-width="2"/>
<text x="454.0" y="393" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="14" fill="#ffffff" text-anchor="middle" dominant-baseline="central" font-weight="normal">Claude Code</text>
<text x="240" y="431" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="14" fill="#333333" text-anchor="end" dominant-baseline="central" font-weight="bold">Ubicación por núm. línea</text>
<rect x="250" y="417" width="240.0" height="28" rx="3" fill="#d0d0d0" stroke="#333333" stroke-width="2"/>
<text x="370.0" y="431" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="14" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">Escenarios integración profunda IDE</text>
<text x="240" y="469" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="14" fill="#333333" text-anchor="end" dominant-baseline="central" font-weight="bold">Diff + Apply</text>
<rect x="250" y="455" width="192.0" height="28" rx="3" fill="#f0f0f0" stroke="#333333" stroke-width="2"/>
<text x="346.0" y="469" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="14" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">Cursor</text>
<text x="240" y="507" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="14" fill="#333333" text-anchor="end" dominant-baseline="central" font-weight="bold">Coincidencia inicio-fin</text>
<rect x="250" y="493" width="144.0" height="28" rx="3" fill="#f0f0f0" stroke="#333333" stroke-width="2"/>
<text x="322.0" y="507" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="8.5" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">Algunas soluciones personalizadas</text>
<text x="240" y="545" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="14" fill="#333333" text-anchor="end" dominant-baseline="central" font-weight="bold">Comandos Vim</text>
<rect x="250" y="531" width="72.0" height="28" rx="3" fill="#f5f5f5" stroke="#333333" stroke-width="2"/>
<text x="286.0" y="545" font-family="Arial, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="7" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">Soluciones experimentales</text>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB