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
+85
View File
@@ -0,0 +1,85 @@
<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">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="11" fill="#333333" text-anchor="start" dominant-baseline="central">LLM が 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="11" fill="#333333" text-anchor="start" dominant-baseline="central">→ 小モデルが位置特定して適用</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">利点:関心の分離</text>
<text x="94.0" y="258.36" 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">欠点:わずかなズレで位置</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">ずれが発生</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="14" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="bold">旧文字列 → 新文字列</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="11" fill="#333333" text-anchor="start" dominant-baseline="central">→ 厳密な文字列マッチで置換</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">利点:予測可能で曖昧さが</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">ない</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">欠点:大量削除では全文出</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">力が必要</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="14" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="bold">行番号による位置指定</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="11" fill="#333333" text-anchor="start" dominant-baseline="central">42〜43 行目を削除して挿入:</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="11" fill="#333333" text-anchor="start" dominant-baseline="central">→ 行番号で正確な範囲を指定</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">利点:大規模な操作で効率</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"></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">欠点:長いファイルでは行</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">番号がずれやすい</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">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 (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 (単語を置換)</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 (行を削除)</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 (コピー/貼り付け)</text>
<text x="550.0" y="185" font-family="'Courier New', Courier, monospace" font-size="11" fill="#333333" text-anchor="start" dominant-baseline="central">→ 豊富な編集セマンティクス</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">利点:移動/再編成が効率</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"></text>
<text x="628.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">欠点:弱いモデルではエラ</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">ーが増える</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">先頭・末尾マッチ</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="11" fill="#333333" text-anchor="start" dominant-baseline="central">→ 境界だけで位置特定できる</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">利点:全文出力なしで大量</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">削除</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">欠点:境界の組み合わせが</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">一意でなければならない</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">実際の採用状況</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">旧→新</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">行番号による位置指定</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">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">先頭・末尾マッチ</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="9.5" fill="#333333" text-anchor="middle" dominant-baseline="central" font-weight="normal">一部のカスタムソリューション</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">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">実験的なソリューション</text>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB