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
+770
View File
@@ -0,0 +1,770 @@
:root {
--course-blue: #2563eb;
--course-green: #059669;
--course-orange: #ea580c;
--course-purple: #7c3aed;
--course-red: #dc2626;
--course-ink: #172033;
--course-muted: #64748b;
--course-paper: #f8fafc;
}
.slidev-layout {
padding: 2rem 2.35rem !important;
color: var(--course-ink);
}
.slidev-layout h1 {
font-size: 2.05rem !important;
line-height: 1.15;
margin-bottom: 1rem !important;
}
.slidev-layout h2 {
font-size: 1.55rem !important;
line-height: 1.2;
}
.slidev-layout h3 {
font-size: 1.15rem !important;
line-height: 1.25;
margin: 0 0 0.45rem !important;
}
.slidev-layout p,
.slidev-layout li {
font-size: 1rem;
line-height: 1.4;
}
.course-subtitle {
max-width: 760px;
color: var(--course-muted);
font-size: 1.22rem !important;
line-height: 1.35 !important;
}
.course-cover-meta {
position: absolute;
left: 2.35rem;
bottom: 2rem;
max-width: 850px;
color: var(--course-muted);
font-size: 0.8rem;
}
.slidev-layout ul,
.slidev-layout ol {
margin: 0.35rem 0 !important;
}
.slidev-layout li + li {
margin-top: 0.35rem;
}
.slidev-layout pre,
.slidev-layout code {
font-size: 0.87rem !important;
}
.slidev-layout pre {
max-height: 410px;
overflow: hidden;
}
.slidev-layout table {
font-size: 0.9rem;
font-variant-numeric: tabular-nums;
}
.slidev-layout th,
.slidev-layout td {
padding: 0.45rem 0.7rem !important;
}
.course-card {
border: 2px solid #cbd5e1;
border-radius: 0.8rem;
padding: 1rem;
background: rgba(248, 250, 252, 0.92);
}
.course-card p {
margin: 0 !important;
}
.course-card ul {
padding-left: 1.15rem;
}
.course-card.blue {
border-color: #93c5fd;
background: rgba(239, 246, 255, 0.94);
}
.course-card.green {
border-color: #6ee7b7;
background: rgba(236, 253, 245, 0.94);
}
.course-card.orange {
border-color: #fdba74;
background: rgba(255, 247, 237, 0.94);
}
.course-card.purple {
border-color: #c4b5fd;
background: rgba(245, 243, 255, 0.94);
}
.course-card.red {
border-color: #fca5a5;
background: rgba(254, 242, 242, 0.94);
}
.course-kicker {
color: var(--course-blue);
font-size: 0.86rem;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.course-kicker-red {
color: var(--course-red);
}
.course-big {
font-size: 2.45rem;
font-weight: 750;
line-height: 1.15;
}
.course-reflection {
max-width: 850px;
margin: 0 auto;
font-size: 2.1rem;
}
.course-rule {
border-left: 6px solid var(--course-green);
padding: 0.85rem 1.1rem;
background: rgba(236, 253, 245, 0.95);
border-radius: 0.3rem 0.8rem 0.8rem 0.3rem;
font-size: 1.25rem;
line-height: 1.35;
}
.course-boundary {
border-left: 6px solid var(--course-red);
padding: 1rem 1.2rem;
background: rgba(254, 242, 242, 0.96);
border-radius: 0.3rem 0.8rem 0.8rem 0.3rem;
font-size: 1.3rem;
line-height: 1.4;
}
.course-demo-head {
display: flex;
justify-content: space-between;
gap: 1rem;
margin-bottom: 0.55rem;
color: var(--course-blue);
font-size: 0.78rem;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.course-terminal {
background: #0f172a;
color: #e2e8f0;
}
.course-terminal h1,
.course-terminal h2,
.course-terminal h3 {
color: white;
}
.course-terminal .course-kicker {
color: #67e8f9;
}
.course-terminal pre {
border: 1px solid #334155;
background: #020617 !important;
white-space: pre-wrap !important;
overflow-wrap: anywhere;
}
.course-terminal pre code,
.course-terminal pre code span {
white-space: pre-wrap !important;
overflow-wrap: anywhere;
}
.course-terminal-watch {
max-width: 820px;
margin-top: 1rem;
color: #94a3b8;
font-size: 0.86rem;
}
.course-figure {
display: block;
max-height: 430px;
max-width: 100%;
width: auto;
margin: 0 auto;
}
.course-caption {
color: var(--course-muted);
font-size: 0.75rem;
text-align: center;
margin-top: 0.35rem;
}
.course-caption-strong {
color: #475569;
font-size: 0.82rem;
font-weight: 650;
}
.course-link {
display: flex;
min-height: 92px;
flex-direction: column;
justify-content: center;
gap: 0.35rem;
border: 2px solid #cbd5e1;
border-radius: 0.8rem;
padding: 0.9rem 1rem;
background: rgba(248, 250, 252, 0.94);
color: var(--course-ink) !important;
border-style: solid !important;
text-decoration: none !important;
}
.course-link:hover {
border-color: #60a5fa;
background: #eff6ff;
}
.course-link-title {
font-size: 1rem;
font-weight: 700;
}
.course-link-path {
overflow-wrap: anywhere;
color: var(--course-muted);
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
font-size: 0.68rem;
}
.course-next {
max-width: 850px;
margin: 1.2rem auto 0;
font-size: 2rem;
font-weight: 720;
line-height: 1.2;
}
.course-next-arrow {
margin-top: 1rem;
color: var(--course-blue);
font-size: 2.2rem;
}
.course-loop {
display: grid;
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
align-items: stretch;
gap: 0.65rem;
}
.course-loop-step {
display: flex;
min-height: 132px;
flex-direction: column;
align-items: flex-start;
justify-content: center;
gap: 0.7rem;
border: 2px solid #cbd5e1;
border-radius: 0.8rem;
padding: 1rem;
text-align: left;
}
.course-loop-step span {
font-size: 0.78rem;
font-weight: 800;
letter-spacing: 0.08em;
}
.course-loop-step strong {
font-size: 1.15rem;
line-height: 1.25;
}
.course-loop-step.blue {
border-color: #93c5fd;
background: #eff6ff;
}
.course-loop-step.green {
border-color: #6ee7b7;
background: #ecfdf5;
}
.course-loop-step.purple {
border-color: #c4b5fd;
background: #f5f3ff;
}
.course-loop-step.orange {
border-color: #fdba74;
background: #fff7ed;
}
.course-loop-arrow {
align-self: center;
color: var(--course-blue);
font-size: 1.7rem;
}
.course-loop-return {
margin-top: 1.4rem;
color: #475569;
font-size: 1rem;
font-weight: 700;
}
.slidev-layout.section h1::after {
content: "";
display: block;
width: 88px;
height: 3px;
margin: 0.55em auto 0;
border-radius: 2px;
background: #6b95a3;
}
.slidev-layout.cover {
background:
radial-gradient(circle at 85% 15%, rgba(37, 99, 235, 0.15), transparent 32%),
radial-gradient(circle at 10% 90%, rgba(5, 150, 105, 0.11), transparent 30%),
white !important;
color: var(--course-ink) !important;
}
.slidev-layout.cover h1 {
color: var(--course-ink) !important;
}
.slidev-layout.cover .course-subtitle,
.slidev-layout.cover .course-cover-meta {
color: var(--course-muted) !important;
}
.dark .slidev-layout,
.slidev-layout.dark {
color: #e2e8f0;
}
#slidev-goto-dialog {
display: none !important;
}
/* Chapter 1 dense pilots: scoped so Lessons 01 and 0442 retain their current design. */
.slidev-layout.chapter-dense {
padding: 1.45rem 1.8rem !important;
}
.slidev-layout.chapter-dense h1,
.slidev-layout.chapter-terminal h1 {
font-size: 1.72rem !important;
margin-bottom: 0.55rem !important;
}
.slidev-layout.chapter-dense h3 {
font-size: 0.94rem !important;
margin-bottom: 0.28rem !important;
}
.slidev-layout.chapter-dense p,
.slidev-layout.chapter-dense li {
font-size: 0.76rem;
line-height: 1.28;
}
.slidev-layout.chapter-dense li + li {
margin-top: 0.2rem;
}
.slidev-layout.chapter-dense pre,
.slidev-layout.chapter-dense code,
.slidev-layout.chapter-terminal pre,
.slidev-layout.chapter-terminal code {
font-size: 0.67rem !important;
line-height: 1.32 !important;
}
.slidev-layout.chapter-formula-cover {
padding: 2rem 2.55rem !important;
background:
radial-gradient(circle at 88% 12%, rgba(37, 99, 235, 0.17), transparent 32%),
radial-gradient(circle at 7% 92%, rgba(5, 150, 105, 0.13), transparent 34%),
linear-gradient(145deg, #ffffff 0%, #f8fafc 100%) !important;
color: var(--course-ink) !important;
}
.slidev-layout.chapter-formula-cover h1 {
max-width: 900px;
color: var(--course-ink) !important;
font-size: 2.48rem !important;
letter-spacing: -0.035em;
margin: 0.65rem 0 0 !important;
}
.chapter-kicker {
color: var(--course-blue);
font-size: 0.72rem;
font-weight: 800;
letter-spacing: 0.12em;
}
.chapter-cover-footer {
position: absolute;
left: 2.55rem;
right: 2.55rem;
bottom: 1.55rem;
display: flex;
justify-content: space-between;
color: var(--course-muted);
font-size: 0.68rem;
}
.chapter-equation,
.chapter-context-equation {
display: flex;
align-items: stretch;
gap: 0.8rem;
}
.chapter-equation-term,
.chapter-context-group {
display: flex;
min-width: 0;
flex: 1;
flex-direction: column;
justify-content: center;
border: 2px solid #cbd5e1;
border-radius: 0.8rem;
padding: 0.8rem 1rem;
background: rgba(255, 255, 255, 0.86);
}
.chapter-equation-term strong,
.chapter-context-group strong {
font-size: 1.42rem;
line-height: 1.1;
}
.chapter-equation-term span,
.chapter-context-group span {
margin-top: 0.28rem;
font-size: 0.78rem;
font-weight: 700;
}
.chapter-equation-term small,
.chapter-context-group small {
margin-top: 0.18rem;
color: var(--course-muted);
font-size: 0.65rem;
}
.chapter-equation-term.blue,
.chapter-context-group.blue { border-color: #60a5fa; background: #eff6ff; }
.chapter-equation-term.green,
.chapter-context-group.green { border-color: #34d399; background: #ecfdf5; }
.chapter-equation-term.orange { border-color: #fb923c; background: #fff7ed; }
.chapter-equation-sign {
align-self: center;
color: #64748b;
font-size: 1.7rem;
font-weight: 300;
}
.chapter-cover-thesis {
margin-top: 0.85rem;
border-left: 4px solid var(--course-blue);
padding: 0.45rem 0.7rem;
color: #334155;
background: rgba(255, 255, 255, 0.65);
font-size: 0.82rem;
font-weight: 700;
}
.chapter-lead {
max-width: 900px;
color: #334155;
font-size: 0.87rem;
line-height: 1.32;
}
.chapter-table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
overflow: hidden;
border: 1px solid #cbd5e1;
border-radius: 0.55rem;
background: rgba(255, 255, 255, 0.9);
font-size: 0.67rem !important;
line-height: 1.2;
}
.chapter-table th {
color: #f8fafc;
border: 0;
background: #334155;
font-weight: 700;
text-align: left;
}
.chapter-table td {
border-top: 1px solid #e2e8f0;
vertical-align: top;
}
.chapter-table th,
.chapter-table td {
padding: 0.34rem 0.45rem !important;
}
.chapter-table tbody tr:nth-child(even) td { background: #f8fafc; }
.chapter-table-roomy th,
.chapter-table-roomy td { padding: 0.48rem 0.55rem !important; }
.chapter-table-compact th,
.chapter-table-compact td { padding: 0.3rem 0.42rem !important; }
.chapter-panel,
.chapter-callout,
.chapter-mini {
border: 1.5px solid #cbd5e1;
border-radius: 0.62rem;
background: rgba(248, 250, 252, 0.94);
}
.chapter-panel { padding: 0.68rem 0.78rem; }
.chapter-panel ul { padding-left: 1rem; }
.chapter-panel p { margin: 0 !important; }
.chapter-panel.blue,
.chapter-callout.blue,
.chapter-mini.blue { border-color: #93c5fd; background: #eff6ff; }
.chapter-panel.green,
.chapter-callout.green,
.chapter-mini.green { border-color: #6ee7b7; background: #ecfdf5; }
.chapter-panel.orange,
.chapter-callout.orange,
.chapter-mini.orange { border-color: #fdba74; background: #fff7ed; }
.chapter-panel.purple,
.chapter-callout.purple,
.chapter-mini.purple { border-color: #c4b5fd; background: #f5f3ff; }
.chapter-panel.red,
.chapter-callout.red,
.chapter-mini.red { border-color: #fca5a5; background: #fef2f2; }
.chapter-callout {
padding: 0.48rem 0.65rem;
font-size: 0.72rem;
line-height: 1.28;
}
.chapter-conclusion,
.chapter-example {
margin-top: 0.55rem !important;
padding-top: 0.45rem;
border-top: 1px solid rgba(100, 116, 139, 0.25);
color: #475569;
font-size: 0.71rem !important;
line-height: 1.28 !important;
}
.chapter-interface {
display: grid;
grid-template-columns: 1.1fr 0.8fr 1fr 0.8fr 1.1fr;
align-items: stretch;
gap: 0.55rem;
}
.chapter-interface-world,
.chapter-interface-model {
display: flex;
min-height: 96px;
flex-direction: column;
align-items: center;
justify-content: center;
border: 2px solid #93c5fd;
border-radius: 0.7rem;
background: #eff6ff;
text-align: center;
}
.chapter-interface-model { border-color: #c4b5fd; background: #f5f3ff; }
.chapter-interface-world strong,
.chapter-interface-model strong { font-size: 0.92rem; }
.chapter-interface-world span,
.chapter-interface-model span { margin-top: 0.3rem; color: #64748b; font-size: 0.66rem; }
.chapter-interface-arrow { align-self: center; color: var(--course-blue); font-size: 1.25rem; text-align: center; }
.chapter-interface-arrow span { display: block; margin-bottom: 0.25rem; color: #475569; font-size: 0.62rem; font-weight: 700; }
.chapter-five-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 0.7rem;
}
.chapter-five-grid .chapter-panel:nth-child(4),
.chapter-five-grid .chapter-panel:nth-child(5) { grid-column: span 1; }
.chapter-mini {
display: flex;
min-height: 62px;
flex-direction: column;
justify-content: center;
padding: 0.5rem 0.6rem;
}
.chapter-mini strong { font-size: 0.74rem; }
.chapter-mini span { margin-top: 0.22rem; color: #475569; font-size: 0.65rem; line-height: 1.22; }
.chapter-code-grid pre { margin: 0.22rem 0 0 !important; }
.chapter-code-block {
min-height: 92px;
margin: 0.22rem 0 0 !important;
border: 1px solid #334155;
border-radius: 0.45rem;
padding: 0.55rem 0.65rem !important;
background: #0f172a !important;
color: #e2e8f0 !important;
white-space: pre-wrap;
}
.chapter-code-block.tall { min-height: 245px; }
.chapter-code-block code { color: inherit !important; white-space: pre-wrap !important; }
.chapter-step-label { color: #475569; font-size: 0.66rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
.chapter-tag { display: inline-block; margin-top: 0.55rem; border-radius: 99px; padding: 0.22rem 0.5rem; font-size: 0.61rem; font-weight: 800; }
.chapter-tag.green { color: #047857; background: #d1fae5; }
.chapter-tag.orange { color: #c2410c; background: #ffedd5; }
.chapter-muted { color: #94a3b8; font-size: 0.62rem; font-weight: 400; }
.chapter-figure-large,
.chapter-figure-medium,
.chapter-figure-wide {
display: block;
max-width: 100%;
width: auto;
margin: 0 auto;
}
.chapter-figure-large { max-height: 305px; }
.chapter-figure-medium { max-height: 275px; }
.chapter-figure-wide { max-height: 260px; }
.chapter-stack { display: flex; flex-direction: column; gap: 0.55rem; }
.chapter-thesis-line,
.chapter-thesis-box {
border-left: 4px solid var(--course-blue);
padding: 0.5rem 0.68rem;
background: #f8fafc;
color: #334155;
font-size: 0.76rem;
font-weight: 700;
line-height: 1.28;
}
.chapter-thesis-box {
border: 2px solid #60a5fa;
border-radius: 0.65rem;
background: #eff6ff;
font-size: 0.88rem;
text-align: center;
}
.chapter-tight-list { padding-left: 1rem; }
.chapter-small { font-size: 0.71rem !important; line-height: 1.28 !important; }
.chapter-source { margin-top: 0.5rem; color: #64748b; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.59rem; }
.chapter-metrics {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 0.7rem;
}
.chapter-metrics > div {
display: flex;
min-height: 72px;
flex-direction: column;
align-items: center;
justify-content: center;
border: 1.5px solid #93c5fd;
border-radius: 0.65rem;
background: #eff6ff;
}
.chapter-metrics strong { color: #1d4ed8; font-size: 1.35rem; line-height: 1; }
.chapter-metrics span { margin-top: 0.25rem; color: #475569; font-size: 0.63rem; }
.chapter-links a {
display: flex;
min-height: 48px;
flex-direction: column;
justify-content: center;
border: 1.5px solid #cbd5e1 !important;
border-radius: 0.55rem;
padding: 0.45rem 0.65rem;
background: #fff;
color: var(--course-ink) !important;
text-decoration: none !important;
}
.chapter-links strong { font-size: 0.7rem; }
.chapter-links span { margin-top: 0.12rem; color: #64748b; font-size: 0.59rem; }
.slidev-layout.chapter-terminal { padding: 1.55rem 1.9rem !important; }
.slidev-layout.chapter-terminal pre { max-height: 235px; margin-top: 0.6rem !important; }
.chapter-terminal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.7rem; }
.chapter-terminal-grid > div { display: flex; flex-direction: column; border: 1px solid #334155; border-radius: 0.55rem; padding: 0.55rem 0.65rem; background: #111c31; }
.chapter-terminal-grid strong { color: #67e8f9; font-size: 0.7rem; }
.chapter-terminal-grid span { margin-top: 0.2rem; color: #cbd5e1; font-size: 0.62rem; line-height: 1.24; }
.chapter-prefix-flow {
display: grid;
grid-template-columns: 1fr auto 1.7fr auto 1fr;
align-items: stretch;
gap: 0.6rem;
}
.chapter-prefix-block {
display: flex;
min-height: 118px;
flex-direction: column;
justify-content: center;
border: 2px solid #93c5fd;
border-radius: 0.7rem;
padding: 0.65rem 0.75rem;
background: #eff6ff;
}
.chapter-prefix-block.green { border-color: #6ee7b7; background: #ecfdf5; }
.chapter-prefix-block.purple { border-color: #c4b5fd; background: #f5f3ff; }
.chapter-prefix-block strong { font-size: 0.84rem; }
.chapter-prefix-block span { margin-top: 0.2rem; font-size: 0.66rem; }
.chapter-prefix-block small { margin-top: 0.35rem; color: #64748b; font-size: 0.58rem; }
.chapter-plus,
.chapter-equals { align-self: center; color: #64748b; font-size: 1.4rem; }