feat: 导出 SproutClaw .sproutclaw 配置
包含 extensions、skills、prompts、settings、auth、models、mcp 等配置。 排除 node_modules、npm 缓存、sessions 等运行时数据。
@@ -0,0 +1,14 @@
|
||||
# building_effective_agents
|
||||
|
||||
- Canvas format: ppt169
|
||||
- Created: 20260424
|
||||
|
||||
## Directories
|
||||
|
||||
- `svg_output/`: raw SVG output
|
||||
- `svg_final/`: finalized SVG output
|
||||
- `images/`: presentation assets
|
||||
- `notes/`: speaker notes
|
||||
- `templates/`: project templates
|
||||
- `sources/`: source materials and normalized markdown
|
||||
- `exports/`: generated PPTX files (timestamped history)
|
||||
@@ -0,0 +1,382 @@
|
||||
# Building Effective Agents - Design Spec
|
||||
|
||||
> This document is the human-readable design narrative — rationale, audience, style, color choices, content outline. It is read once by downstream roles for context.
|
||||
>
|
||||
> The machine-readable execution contract lives in `spec_lock.md` (short form of color / typography / icon / image decisions). Executor re-reads `spec_lock.md` before every SVG page to resist context-compression drift. Keep the two files in sync; if they diverge, `spec_lock.md` wins.
|
||||
|
||||
## I. Project Information
|
||||
|
||||
| Item | Value |
|
||||
| ---- | ----- |
|
||||
| **Project Name** | building_effective_agents |
|
||||
| **Canvas Format** | PPT 16:9 (1280×720) |
|
||||
| **Page Count** | 12 |
|
||||
| **Design Style** | General Versatile |
|
||||
| **Target Audience** | Software engineers, AI/ML practitioners, technical leaders building LLM-based applications |
|
||||
| **Use Case** | Technical talks, team knowledge sharing, developer workshops |
|
||||
| **Created Date** | 2026-04-24 |
|
||||
|
||||
---
|
||||
|
||||
## II. Canvas Specification
|
||||
|
||||
| Property | Value |
|
||||
| -------- | ----- |
|
||||
| **Format** | PPT 16:9 |
|
||||
| **Dimensions** | 1280×720 |
|
||||
| **viewBox** | `0 0 1280 720` |
|
||||
| **Margins** | left/right 60px, top/bottom 50px |
|
||||
| **Content Area** | 1160×620 |
|
||||
|
||||
---
|
||||
|
||||
## III. Visual Theme
|
||||
|
||||
### Theme Style
|
||||
|
||||
- **Style**: General Versatile
|
||||
- **Theme**: Dark theme
|
||||
- **Tone**: Technical, precise, modern engineering — warm-on-dark with Anthropic-inspired coral accents
|
||||
|
||||
### Color Scheme
|
||||
|
||||
| Role | HEX | Purpose |
|
||||
| ---- | --- | ------- |
|
||||
| **Background** | `#0F1117` | Deep dark canvas |
|
||||
| **Secondary bg** | `#1A1D27` | Card background, section background |
|
||||
| **Primary** | `#D4845A` | Anthropic-inspired warm coral — titles, key decorative elements |
|
||||
| **Accent** | `#5B9BD5` | Cool blue — workflow highlights, links, interactive elements |
|
||||
| **Secondary accent** | `#E8B87D` | Warm gold — secondary emphasis, gradient transitions |
|
||||
| **Body text** | `#E8E8EC` | Main body text (light on dark) |
|
||||
| **Secondary text** | `#9CA3AF` | Captions, annotations |
|
||||
| **Tertiary text** | `#6B7280` | Supplementary info, footers |
|
||||
| **Border/divider** | `#2D3348` | Card borders, divider lines |
|
||||
| **Success** | `#4ADE80` | Positive indicators |
|
||||
| **Warning** | `#F87171` | Cautions, blockers |
|
||||
|
||||
### Gradient Scheme
|
||||
|
||||
```xml
|
||||
<!-- Title accent gradient -->
|
||||
<linearGradient id="titleGradient" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#D4845A"/>
|
||||
<stop offset="100%" stop-color="#E8B87D"/>
|
||||
</linearGradient>
|
||||
|
||||
<!-- Background decorative gradient -->
|
||||
<radialGradient id="bgDecor" cx="85%" cy="15%" r="45%">
|
||||
<stop offset="0%" stop-color="#D4845A" stop-opacity="0.08"/>
|
||||
<stop offset="100%" stop-color="#D4845A" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
|
||||
<!-- Card subtle glow -->
|
||||
<radialGradient id="cardGlow" cx="50%" cy="0%" r="80%">
|
||||
<stop offset="0%" stop-color="#5B9BD5" stop-opacity="0.05"/>
|
||||
<stop offset="100%" stop-color="#5B9BD5" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## IV. Typography System
|
||||
|
||||
### Font Plan
|
||||
|
||||
**Typography direction**: Tech / developer — clean, modern, Latin-primary for English engineering content.
|
||||
|
||||
| Role | Chinese | English | Fallback tail |
|
||||
| ---- | ------- | ------- | ------------- |
|
||||
| **Title** | — | `"Helvetica Neue", Arial` | `sans-serif` |
|
||||
| **Body** | — | `"Helvetica Neue", Arial` | `sans-serif` |
|
||||
| **Emphasis** | — | `"Helvetica Neue", Arial` | `sans-serif` |
|
||||
| **Code** | — | `Consolas, "Courier New"` | `monospace` |
|
||||
|
||||
**Per-role font stacks**:
|
||||
|
||||
- Title: `"Helvetica Neue", Arial, sans-serif`
|
||||
- Body: `"Helvetica Neue", Arial, sans-serif`
|
||||
- Emphasis: same as Body
|
||||
- Code: `Consolas, "Courier New", monospace`
|
||||
|
||||
### Font Size Hierarchy
|
||||
|
||||
**Baseline**: Body font size = 18px (dense — multiple technical points per page, architectural diagrams)
|
||||
|
||||
| Purpose | Ratio to body | Actual Size | Weight |
|
||||
| ------- | ------------- | ----------- | ------ |
|
||||
| Cover title | 3.3x | 60px | Bold |
|
||||
| Page title | 1.78x | 32px | Bold |
|
||||
| Subtitle | 1.33x | 24px | SemiBold |
|
||||
| **Body content** | **1x** | **18px** | Regular |
|
||||
| Annotation / caption | 0.78x | 14px | Regular |
|
||||
| Page number / footnote | 0.56x | 10px | Regular |
|
||||
|
||||
---
|
||||
|
||||
## V. Layout Principles
|
||||
|
||||
### Page Structure
|
||||
|
||||
- **Header area**: 50px top margin; page title zone with coral accent bar (4px wide, 40px tall, left-aligned)
|
||||
- **Content area**: ~560px height; flexible layout per page rhythm
|
||||
- **Footer area**: 40px bottom zone; page number right-aligned, subtle source attribution left-aligned
|
||||
|
||||
### Layout Pattern Library
|
||||
|
||||
The deck uses a variety of patterns to avoid the "every page is a card grid" monotony:
|
||||
|
||||
- **Cover**: Full-bleed dark background + centered title with gradient accent
|
||||
- **Concept pages** (breathing): Asymmetric split with hero diagram + key text; generous whitespace
|
||||
- **Pattern pages** (dense): Top-bottom split — ultra-wide workflow diagram above, structured content below
|
||||
- **Summary pages** (anchor): Single column centered with key principles
|
||||
|
||||
### Spacing Specification
|
||||
|
||||
**Universal**:
|
||||
|
||||
| Element | Value |
|
||||
| ------- | ----- |
|
||||
| Safe margin from canvas edge | 60px left/right, 50px top/bottom |
|
||||
| Content block gap | 30px |
|
||||
| Icon-text gap | 12px |
|
||||
|
||||
**Card-based layouts** (dense pages):
|
||||
|
||||
| Element | Value |
|
||||
| ------- | ----- |
|
||||
| Card gap | 24px |
|
||||
| Card padding | 24px |
|
||||
| Card border radius | 12px |
|
||||
| Card border | 1px solid #2D3348 |
|
||||
| Card background | #1A1D27 |
|
||||
|
||||
---
|
||||
|
||||
## VI. Icon Usage Specification
|
||||
|
||||
### Source
|
||||
|
||||
- **Built-in icon library**: `chunk` — sharp, rectilinear geometry matching the precise engineering tone
|
||||
- **Usage method**: Placeholder format `{{icon:chunk/icon-name}}`
|
||||
|
||||
### Recommended Icon List
|
||||
|
||||
| Purpose | Icon Path | Page |
|
||||
| ------- | --------- | ---- |
|
||||
| Agent/Robot | `{{icon:chunk/robot}}` | P01, P10 |
|
||||
| Code | `{{icon:chunk/code}}` | P03, P11 |
|
||||
| Lightbulb / Idea | `{{icon:chunk/lightbulb}}` | P02, P12 |
|
||||
| Layers / Building blocks | `{{icon:chunk/layers}}` | P04 |
|
||||
| Arrow chain | `{{icon:chunk/arrow-right}}` | P05 |
|
||||
| Route / Routing | `{{icon:chunk/route}}` | P06 |
|
||||
| Grid / Parallelization | `{{icon:chunk/grid}}` | P07 |
|
||||
| Cube / Orchestrator | `{{icon:chunk/cube}}` | P08 |
|
||||
| Loop / Evaluator | `{{icon:chunk/arrows-repeat}}` | P09 |
|
||||
| Shield / Safety | `{{icon:chunk/shield-check}}` | P10 |
|
||||
| Toolbox / Tools | `{{icon:chunk/toolbox}}` | P11 |
|
||||
| Target | `{{icon:chunk/target}}` | P12 |
|
||||
| Badge check | `{{icon:chunk/badge-check}}` | P12 |
|
||||
| Terminal | `{{icon:chunk/terminal}}` | P03 |
|
||||
| Cog / Settings | `{{icon:chunk/cog}}` | P08 |
|
||||
| Share/Network | `{{icon:chunk/share-nodes}}` | P04 |
|
||||
| Eye | `{{icon:chunk/eye}}` | P09 |
|
||||
| Book | `{{icon:chunk/book-open}}` | P11 |
|
||||
| Microchip | `{{icon:chunk/microchip}}` | P04 |
|
||||
| Server | `{{icon:chunk/server}}` | P08 |
|
||||
| Star | `{{icon:chunk/star}}` | P12 |
|
||||
| Checkmark | `{{icon:chunk/checkmark}}` | P12 |
|
||||
| Link | `{{icon:chunk/link}}` | P05 |
|
||||
|
||||
---
|
||||
|
||||
## VII. Visualization Reference List
|
||||
|
||||
No additional chart templates needed — the article's 8 architectural diagrams (provided as existing images) serve as the primary visualizations. Each workflow pattern page features its corresponding diagram.
|
||||
|
||||
---
|
||||
|
||||
## VIII. Image Resource List
|
||||
|
||||
| Filename | Dimensions | Ratio | Purpose | Type | Status | Narrative Intent |
|
||||
| -------- | ---------- | ----- | ------- | ---- | ------ | ---------------- |
|
||||
| image.png | 2401×1000 | 2.40 | The augmented LLM — foundational building block diagram | Diagram | Existing | Side-by-side (top-bottom split, ultra-wide) |
|
||||
| image_1.png | 2401×1000 | 2.40 | Prompt chaining workflow diagram | Diagram | Existing | Side-by-side (top-bottom split, ultra-wide) |
|
||||
| image_2.png | 2401×1000 | 2.40 | Routing workflow diagram | Diagram | Existing | Side-by-side (top-bottom split, ultra-wide) |
|
||||
| image_3.png | 2401×1000 | 2.40 | Parallelization workflow diagram | Diagram | Existing | Side-by-side (top-bottom split, ultra-wide) |
|
||||
| image_4.png | 2401×1000 | 2.40 | Orchestrator-workers workflow diagram | Diagram | Existing | Side-by-side (top-bottom split, ultra-wide) |
|
||||
| image_5.png | 2401×1000 | 2.40 | Evaluator-optimizer workflow diagram | Diagram | Existing | Side-by-side (top-bottom split, ultra-wide) |
|
||||
| image_6.png | 2401×1000 | 2.40 | Autonomous agent loop diagram | Diagram | Existing | Side-by-side (top-bottom split, ultra-wide) |
|
||||
| image_7.png | 2400×1666 | 1.44 | High-level coding agent flow | Diagram | Existing | Side-by-side (left-right split, standard landscape) |
|
||||
|
||||
---
|
||||
|
||||
## IX. Content Outline
|
||||
|
||||
### Part 1: Introduction
|
||||
|
||||
#### Slide 01 — Cover (P01)
|
||||
|
||||
- **Layout**: Full-bleed dark background, centered title block, coral accent line, subtle radial glow
|
||||
- **Title**: Building Effective Agents
|
||||
- **Subtitle**: Simple, composable patterns for LLM-based agentic systems
|
||||
- **Info**: Anthropic Engineering · December 2024
|
||||
|
||||
#### Slide 02 — What Are Agents? (P02)
|
||||
|
||||
- **Layout**: Breathing — asymmetric split, left text block (60%) with key distinction, right visual accent
|
||||
- **Title**: What Are Agents?
|
||||
- **Content**:
|
||||
- **Workflows**: LLMs + tools orchestrated through predefined code paths
|
||||
- **Agents**: LLMs dynamically direct their own processes and tool usage
|
||||
- The key architectural distinction: orchestration vs. autonomy
|
||||
- All variations are "agentic systems" — the spectrum matters more than the label
|
||||
|
||||
### Part 2: Foundations
|
||||
|
||||
#### Slide 03 — When to Use Agents (P03)
|
||||
|
||||
- **Layout**: Dense — two-column with decision guidance
|
||||
- **Title**: When (and When Not) to Use Agents
|
||||
- **Content**:
|
||||
- Start with the simplest solution — single LLM calls with retrieval often suffice
|
||||
- Agentic systems trade latency and cost for better task performance
|
||||
- **Workflows**: Predictability and consistency for well-defined tasks
|
||||
- **Agents**: Flexibility and model-driven decisions at scale
|
||||
- Framework advice: start with LLM APIs directly; understand what's under the hood
|
||||
|
||||
#### Slide 04 — The Augmented LLM (P04)
|
||||
|
||||
- **Layout**: Breathing — top-bottom split; ultra-wide diagram above, key text below
|
||||
- **Title**: Building Block: The Augmented LLM
|
||||
- **Image**: image.png (top, full-width)
|
||||
- **Content**:
|
||||
- The foundational building block: LLM + retrieval + tools + memory
|
||||
- Models actively generate search queries, select tools, determine what to retain
|
||||
- Two key implementation aspects: tailor capabilities to your use case; ensure well-documented interfaces
|
||||
- Model Context Protocol (MCP) for third-party tool integration
|
||||
|
||||
### Part 3: Workflow Patterns
|
||||
|
||||
#### Slide 05 — Prompt Chaining (P05)
|
||||
|
||||
- **Layout**: Dense — top-bottom split; diagram above, structured content below
|
||||
- **Title**: Workflow: Prompt Chaining
|
||||
- **Image**: image_1.png (top, full-width)
|
||||
- **Content**:
|
||||
- Decompose task into sequential steps; each LLM call processes previous output
|
||||
- Add programmatic "gate" checks at intermediate steps
|
||||
- **When to use**: Tasks cleanly decomposed into fixed subtasks; trade latency for accuracy
|
||||
- **Examples**: Generate copy → translate; Write outline → check criteria → write document
|
||||
|
||||
#### Slide 06 — Routing (P06)
|
||||
|
||||
- **Layout**: Dense — top-bottom split; diagram above, structured content below
|
||||
- **Title**: Workflow: Routing
|
||||
- **Image**: image_2.png (top, full-width)
|
||||
- **Content**:
|
||||
- Classify input → direct to specialized followup task
|
||||
- Separation of concerns; more specialized prompts
|
||||
- **When to use**: Distinct categories better handled separately; accurate classification possible
|
||||
- **Examples**: Customer service query routing; Model selection by difficulty (Haiku vs Sonnet)
|
||||
|
||||
#### Slide 07 — Parallelization (P07)
|
||||
|
||||
- **Layout**: Dense — top-bottom split; diagram above, two-column content below (Sectioning | Voting)
|
||||
- **Title**: Workflow: Parallelization
|
||||
- **Image**: image_3.png (top, full-width)
|
||||
- **Content**:
|
||||
- **Sectioning**: Break task into independent subtasks run simultaneously
|
||||
- **Voting**: Run same task multiple times for diverse outputs
|
||||
- **When to use**: Subtasks parallelizable for speed; multiple perspectives needed
|
||||
- **Examples**: Guardrails + response in parallel; Code vulnerability multi-prompt review
|
||||
|
||||
#### Slide 08 — Orchestrator-Workers (P08)
|
||||
|
||||
- **Layout**: Dense — top-bottom split; diagram above, structured content below
|
||||
- **Title**: Workflow: Orchestrator-Workers
|
||||
- **Image**: image_4.png (top, full-width)
|
||||
- **Content**:
|
||||
- Central LLM dynamically breaks down tasks, delegates to workers, synthesizes results
|
||||
- Key difference from parallelization: subtasks are not pre-defined but determined dynamically
|
||||
- **When to use**: Complex tasks with unpredictable subtasks
|
||||
- **Examples**: Multi-file code changes; Multi-source search and analysis
|
||||
|
||||
#### Slide 09 — Evaluator-Optimizer (P09)
|
||||
|
||||
- **Layout**: Dense — top-bottom split; diagram above, structured content below
|
||||
- **Title**: Workflow: Evaluator-Optimizer
|
||||
- **Image**: image_5.png (top, full-width)
|
||||
- **Content**:
|
||||
- One LLM generates; another evaluates and provides feedback in a loop
|
||||
- **When to use**: Clear evaluation criteria; iterative refinement adds measurable value
|
||||
- Two signs of good fit: human feedback demonstrably improves responses; LLM can provide such feedback
|
||||
- **Examples**: Literary translation refinement; Multi-round search with evaluator-driven decisions
|
||||
|
||||
### Part 4: Autonomous Agents
|
||||
|
||||
#### Slide 10 — Agents (P10)
|
||||
|
||||
- **Layout**: Breathing — hero concept; diagram centered, key capabilities floating
|
||||
- **Title**: Agents: Autonomous LLM Systems
|
||||
- **Image**: image_6.png (centered, prominent)
|
||||
- **Content**:
|
||||
- Emerging as LLMs mature: complex inputs, reasoning, reliable tool use, error recovery
|
||||
- Plan and operate independently; return to human for judgement at checkpoints
|
||||
- Ground truth from environment at each step (tool results, code execution)
|
||||
- Implementation is often straightforward: LLMs using tools in a loop
|
||||
- Higher costs + compounding errors → extensive testing + guardrails required
|
||||
|
||||
#### Slide 11 — Agents in Practice (P11)
|
||||
|
||||
- **Layout**: Dense — left-right split; coding agent diagram on right, two application areas on left
|
||||
- **Title**: Agents in Practice
|
||||
- **Image**: image_7.png (right side, standard landscape)
|
||||
- **Content**:
|
||||
- **Customer Support**: Natural conversation + tool access + programmatic actions; measurable success via resolutions
|
||||
- **Coding Agents**: Verifiable via automated tests; iterate using test feedback; well-defined problem space
|
||||
- SWE-bench Verified: solving real GitHub issues from PR descriptions alone
|
||||
- Tool engineering insight: spent more time optimizing tools than prompts
|
||||
|
||||
### Part 5: Conclusion
|
||||
|
||||
#### Slide 12 — Summary & Key Principles (P12)
|
||||
|
||||
- **Layout**: Anchor — single column centered; three principle cards with icons
|
||||
- **Title**: Three Core Principles
|
||||
- **Content**:
|
||||
- ① **Simplicity** — Maintain simplicity in your agent's design
|
||||
- ② **Transparency** — Explicitly show the agent's planning steps
|
||||
- ③ **ACI Design** — Craft your agent-computer interface through thorough tool documentation and testing
|
||||
- Start simple → optimize with evaluation → add agentic systems only when simpler solutions fall short
|
||||
- Build the *right* system, not the most sophisticated one
|
||||
|
||||
---
|
||||
|
||||
## X. Speaker Notes Requirements
|
||||
|
||||
- **File naming**: Match SVG names (e.g., `01_cover.svg` → `notes/01_cover.md`)
|
||||
- **Content structure**: Each note includes key talking points, transition phrases, and timing guidance
|
||||
- **Style**: Conversational technical — accessible but authoritative
|
||||
- **Purpose**: Inform and educate
|
||||
- **Duration**: ~20 minutes total (roughly 1.5-2 min per slide)
|
||||
|
||||
---
|
||||
|
||||
## XI. Technical Constraints Reminder
|
||||
|
||||
### SVG Generation Must Follow:
|
||||
|
||||
1. viewBox: `0 0 1280 720`
|
||||
2. Background uses `<rect>` elements
|
||||
3. Text wrapping uses `<tspan>` (`<foreignObject>` FORBIDDEN)
|
||||
4. Transparency uses `fill-opacity` / `stroke-opacity`; `rgba()` FORBIDDEN
|
||||
5. FORBIDDEN: `mask`, `<style>`, `class`, `foreignObject`
|
||||
6. FORBIDDEN: `textPath`, `animate*`, `script`
|
||||
7. `marker-start` / `marker-end` conditionally allowed per shared-standards.md §1.1
|
||||
8. `clipPath` conditionally allowed only on `<image>` elements per shared-standards.md §1.2
|
||||
|
||||
### PPT Compatibility Rules:
|
||||
|
||||
- `<g opacity="...">` FORBIDDEN (group opacity); set on each child element individually
|
||||
- Image transparency uses overlay mask layer
|
||||
- Inline styles only; external CSS and `@font-face` FORBIDDEN
|
||||
@@ -0,0 +1,9 @@
|
||||
No,Filename,Width,Height,AspectRatio,SizeKB,Category,ImageArea_SxS,TextArea_SxS
|
||||
1,image.png,2401,1000,2.40,15.4,Ultra-wide,812x338,328x600
|
||||
2,image_1.png,2401,1000,2.40,136.6,Ultra-wide,812x338,328x600
|
||||
3,image_2.png,2401,1000,2.40,11.6,Ultra-wide,812x338,328x600
|
||||
4,image_3.png,2401,1000,2.40,141.6,Ultra-wide,812x338,328x600
|
||||
5,image_4.png,2401,1000,2.40,158.9,Ultra-wide,812x338,328x600
|
||||
6,image_5.png,2401,1000,2.40,153.5,Ultra-wide,812x338,328x600
|
||||
7,image_6.png,2401,1000,2.40,128.1,Ultra-wide,812x338,328x600
|
||||
8,image_7.png,2400,1666,1.44,204.7,Standard landscape,812x564,328x600
|
||||
|
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 137 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 154 KiB |
|
After Width: | Height: | Size: 128 KiB |
|
After Width: | Height: | Size: 205 KiB |
@@ -0,0 +1,10 @@
|
||||
Welcome everyone to this session on Building Effective Agents. This presentation distills key insights from Anthropic's engineering team, drawing from their experience working with dozens of teams building LLM agents across industries.
|
||||
|
||||
The central thesis is compelling: the most successful implementations aren't using complex frameworks. They're building with simple, composable patterns.
|
||||
|
||||
[Pause]
|
||||
|
||||
Let's explore what those patterns look like and when to use them.
|
||||
|
||||
Key points: ① Anthropic's field-tested agent patterns ② Simplicity beats complexity ③ Practical implementation guidance
|
||||
Duration: 1.5 minutes
|
||||
@@ -0,0 +1,10 @@
|
||||
[Transition] Before diving into patterns, we need to establish a shared vocabulary.
|
||||
|
||||
Anthropic draws an important architectural distinction between two types of agentic systems. On the left, we have Workflows — systems where LLMs and tools follow predefined code paths. Think of these as choreographed sequences. On the right, Agents — systems where the LLM itself decides what to do next, dynamically directing its own processes.
|
||||
|
||||
[Pause]
|
||||
|
||||
The key takeaway here is that both are "agentic systems." It's a spectrum, not a binary — and the right choice depends on your specific use case.
|
||||
|
||||
Key points: ① Workflows = predefined orchestration ② Agents = autonomous tool-using LLMs ③ Both are valid — spectrum matters more than label
|
||||
Duration: 1.5 minutes
|
||||
@@ -0,0 +1,12 @@
|
||||
[Transition] So when should you reach for these more complex patterns?
|
||||
|
||||
The answer starts on the left: most of the time, you should start with single LLM calls optimized with retrieval and in-context examples. This covers the vast majority of applications.
|
||||
|
||||
When you do need more, workflows give you predictability for well-defined tasks, while agents shine when flexibility and model-driven decisions are needed at scale.
|
||||
|
||||
[Interactive] Think about your current project — where does it fall on this complexity spectrum?
|
||||
|
||||
And a crucial piece of advice about frameworks: start with raw LLM APIs. Many patterns need just a few lines of code. If you do use a framework, make sure you understand what's happening underneath.
|
||||
|
||||
Key points: ① Start simple — single LLM calls first ② Workflows for defined tasks, agents for flexibility ③ Understand your frameworks
|
||||
Duration: 2 minutes
|
||||
@@ -0,0 +1,10 @@
|
||||
[Transition] Every agentic system starts from the same building block: the augmented LLM.
|
||||
|
||||
This diagram shows the foundational unit. You take a base LLM and enhance it with three capabilities: retrieval for accessing relevant information, tools for taking actions in the world, and memory for retaining context across interactions.
|
||||
|
||||
[Pause]
|
||||
|
||||
Two things matter most in implementation: tailor these capabilities to your specific use case, and ensure they provide well-documented interfaces. Anthropic's Model Context Protocol — MCP — is one approach to standardizing third-party tool integration.
|
||||
|
||||
Key points: ① LLM + retrieval + tools + memory ② Tailor capabilities to use case ③ MCP for standardized integration
|
||||
Duration: 1.5 minutes
|
||||
@@ -0,0 +1,10 @@
|
||||
[Transition] Now let's look at the first workflow pattern: Prompt Chaining.
|
||||
|
||||
The diagram shows the core idea — decompose a task into sequential steps. Each LLM call processes the output of the previous one, with optional "gate" checks at intermediate points to ensure quality.
|
||||
|
||||
The key trade-off is latency for accuracy. By making each individual LLM call a simpler, more focused task, you get better overall results.
|
||||
|
||||
Two concrete examples: generating marketing copy then translating it, or writing a document outline, checking it meets criteria, then writing the full document.
|
||||
|
||||
Key points: ① Sequential LLM calls with gate checks ② Trade latency for accuracy ③ Works when tasks decompose into fixed subtasks
|
||||
Duration: 1.5 minutes
|
||||
@@ -0,0 +1,8 @@
|
||||
[Transition] The second pattern is Routing — classifying inputs to direct them to specialized handlers.
|
||||
|
||||
Routing lets you build more specialized prompts without cross-contamination. Optimizing for one type of input won't hurt performance on others.
|
||||
|
||||
Think of customer service: general questions, refund requests, and technical support each flow to different downstream processes with tailored prompts and tools. Or model selection — easy questions go to smaller, cost-efficient models like Haiku, while complex ones route to more capable models like Sonnet.
|
||||
|
||||
Key points: ① Classify input → specialized followup ② Separation of concerns ③ Prevents cross-optimization interference
|
||||
Duration: 1.5 minutes
|
||||
@@ -0,0 +1,12 @@
|
||||
[Transition] The third pattern is Parallelization, which comes in two flavors.
|
||||
|
||||
Sectioning breaks a task into independent subtasks that run simultaneously — like having one model process queries while another screens for inappropriate content. These tend to perform better than asking a single LLM call to do both.
|
||||
|
||||
Voting runs the same task multiple times for diverse perspectives — like having several different prompts review code for vulnerabilities, flagging issues independently.
|
||||
|
||||
[Pause]
|
||||
|
||||
Both approaches boost confidence through multiple perspectives.
|
||||
|
||||
Key points: ① Sectioning = independent parallel subtasks ② Voting = multiple perspectives on same task ③ Better than single-call for complex multi-concern tasks
|
||||
Duration: 2 minutes
|
||||
@@ -0,0 +1,8 @@
|
||||
[Transition] The Orchestrator-Workers pattern looks similar to parallelization, but has one crucial difference.
|
||||
|
||||
Here, a central LLM dynamically decides what subtasks are needed, delegates them to worker LLMs, and synthesizes the results. The subtasks aren't predetermined — they emerge from the input.
|
||||
|
||||
This is ideal for coding products that modify multiple files, where the orchestrator determines which files need changes based on the task description. Or search tasks that need to gather and analyze information from multiple sources.
|
||||
|
||||
Key points: ① Central LLM dynamically breaks down tasks ② Key difference: subtasks not pre-defined ③ Ideal for unpredictable, complex workflows
|
||||
Duration: 1.5 minutes
|
||||
@@ -0,0 +1,8 @@
|
||||
[Transition] The last workflow pattern is the Evaluator-Optimizer — essentially an iterative refinement loop.
|
||||
|
||||
One LLM generates a response; another evaluates it and provides feedback. This cycle continues until the output meets quality standards. It's analogous to how a human writer iterates through drafts.
|
||||
|
||||
There are two clear signs this pattern fits: first, human feedback demonstrably improves LLM responses; second, the LLM can provide that same kind of feedback. If both are true, you have a strong candidate.
|
||||
|
||||
Key points: ① Generate-evaluate feedback loop ② Two fitness signals to look for ③ Analogous to human iterative writing
|
||||
Duration: 1.5 minutes
|
||||
@@ -0,0 +1,10 @@
|
||||
[Transition] Now we arrive at fully autonomous agents — the most flexible and powerful pattern.
|
||||
|
||||
Agents emerge as LLMs mature across five key capabilities: understanding complex inputs, reasoning and planning, reliable tool use, error recovery, and knowing when to pause for human checkpoints.
|
||||
|
||||
[Pause]
|
||||
|
||||
Here's the surprising part — agent implementation is often straightforward. They're typically just LLMs using tools in a feedback loop. But this simplicity comes with trade-offs: higher costs and potential for compounding errors. Extensive testing in sandboxed environments, with appropriate guardrails, is essential.
|
||||
|
||||
Key points: ① Five key LLM capabilities enable agents ② Implementation = LLMs using tools in a loop ③ Higher costs + compounding errors require guardrails
|
||||
Duration: 2 minutes
|
||||
@@ -0,0 +1,10 @@
|
||||
[Transition] Let's look at two domains where agents have proven particularly valuable.
|
||||
|
||||
Customer support is a natural fit — conversations require both dialogue and action. Tools pull customer data, handle refunds, and access knowledge bases. Some companies are so confident in their agents that they charge only for successful resolutions.
|
||||
|
||||
Coding agents have shown remarkable potential. The key advantage: code is verifiable through automated tests, creating a natural feedback loop. Anthropic's own agent solves real GitHub issues from pull request descriptions alone.
|
||||
|
||||
One fascinating insight from their experience: they spent more time optimizing their tools than the overall prompt — a testament to how important ACI design is.
|
||||
|
||||
Key points: ① Customer support: natural conversation + actions ② Coding agents: verifiable + iterable ③ Tool optimization > prompt optimization
|
||||
Duration: 2 minutes
|
||||
@@ -0,0 +1,14 @@
|
||||
[Transition] Let's close with three principles to take away.
|
||||
|
||||
First, simplicity. Build the right system for your needs, not the most sophisticated one you can imagine.
|
||||
|
||||
Second, transparency. Let your users see the agent's reasoning — it builds trust and aids debugging.
|
||||
|
||||
Third, invest in ACI design — your agent-computer interface. Think of it as HCI for machines. Good tool documentation and testing pays dividends.
|
||||
|
||||
[Pause]
|
||||
|
||||
The progression is clear: start simple, optimize with evaluation, and add agentic systems only when simpler solutions genuinely fall short. Thank you.
|
||||
|
||||
Key points: ① Simplicity in design ② Transparency in planning ③ ACI through tool documentation and testing
|
||||
Duration: 2 minutes
|
||||
@@ -0,0 +1,179 @@
|
||||
# 01_cover
|
||||
|
||||
Welcome everyone to this session on Building Effective Agents. This presentation distills key insights from Anthropic's engineering team, drawing from their experience working with dozens of teams building LLM agents across industries.
|
||||
|
||||
The central thesis is compelling: the most successful implementations aren't using complex frameworks. They're building with simple, composable patterns.
|
||||
|
||||
[Pause]
|
||||
|
||||
Let's explore what those patterns look like and when to use them.
|
||||
|
||||
Key points: ① Anthropic's field-tested agent patterns ② Simplicity beats complexity ③ Practical implementation guidance
|
||||
Duration: 1.5 minutes
|
||||
|
||||
---
|
||||
|
||||
# 02_what_are_agents
|
||||
|
||||
[Transition] Before diving into patterns, we need to establish a shared vocabulary.
|
||||
|
||||
Anthropic draws an important architectural distinction between two types of agentic systems. On the left, we have Workflows — systems where LLMs and tools follow predefined code paths. Think of these as choreographed sequences. On the right, Agents — systems where the LLM itself decides what to do next, dynamically directing its own processes.
|
||||
|
||||
[Pause]
|
||||
|
||||
The key takeaway here is that both are "agentic systems." It's a spectrum, not a binary — and the right choice depends on your specific use case.
|
||||
|
||||
Key points: ① Workflows = predefined orchestration ② Agents = autonomous tool-using LLMs ③ Both are valid — spectrum matters more than label
|
||||
Duration: 1.5 minutes
|
||||
|
||||
---
|
||||
|
||||
# 03_when_to_use_agents
|
||||
|
||||
[Transition] So when should you reach for these more complex patterns?
|
||||
|
||||
The answer starts on the left: most of the time, you should start with single LLM calls optimized with retrieval and in-context examples. This covers the vast majority of applications.
|
||||
|
||||
When you do need more, workflows give you predictability for well-defined tasks, while agents shine when flexibility and model-driven decisions are needed at scale.
|
||||
|
||||
[Interactive] Think about your current project — where does it fall on this complexity spectrum?
|
||||
|
||||
And a crucial piece of advice about frameworks: start with raw LLM APIs. Many patterns need just a few lines of code. If you do use a framework, make sure you understand what's happening underneath.
|
||||
|
||||
Key points: ① Start simple — single LLM calls first ② Workflows for defined tasks, agents for flexibility ③ Understand your frameworks
|
||||
Duration: 2 minutes
|
||||
|
||||
---
|
||||
|
||||
# 04_augmented_llm
|
||||
|
||||
[Transition] Every agentic system starts from the same building block: the augmented LLM.
|
||||
|
||||
This diagram shows the foundational unit. You take a base LLM and enhance it with three capabilities: retrieval for accessing relevant information, tools for taking actions in the world, and memory for retaining context across interactions.
|
||||
|
||||
[Pause]
|
||||
|
||||
Two things matter most in implementation: tailor these capabilities to your specific use case, and ensure they provide well-documented interfaces. Anthropic's Model Context Protocol — MCP — is one approach to standardizing third-party tool integration.
|
||||
|
||||
Key points: ① LLM + retrieval + tools + memory ② Tailor capabilities to use case ③ MCP for standardized integration
|
||||
Duration: 1.5 minutes
|
||||
|
||||
---
|
||||
|
||||
# 05_prompt_chaining
|
||||
|
||||
[Transition] Now let's look at the first workflow pattern: Prompt Chaining.
|
||||
|
||||
The diagram shows the core idea — decompose a task into sequential steps. Each LLM call processes the output of the previous one, with optional "gate" checks at intermediate points to ensure quality.
|
||||
|
||||
The key trade-off is latency for accuracy. By making each individual LLM call a simpler, more focused task, you get better overall results.
|
||||
|
||||
Two concrete examples: generating marketing copy then translating it, or writing a document outline, checking it meets criteria, then writing the full document.
|
||||
|
||||
Key points: ① Sequential LLM calls with gate checks ② Trade latency for accuracy ③ Works when tasks decompose into fixed subtasks
|
||||
Duration: 1.5 minutes
|
||||
|
||||
---
|
||||
|
||||
# 06_routing
|
||||
|
||||
[Transition] The second pattern is Routing — classifying inputs to direct them to specialized handlers.
|
||||
|
||||
Routing lets you build more specialized prompts without cross-contamination. Optimizing for one type of input won't hurt performance on others.
|
||||
|
||||
Think of customer service: general questions, refund requests, and technical support each flow to different downstream processes with tailored prompts and tools. Or model selection — easy questions go to smaller, cost-efficient models like Haiku, while complex ones route to more capable models like Sonnet.
|
||||
|
||||
Key points: ① Classify input → specialized followup ② Separation of concerns ③ Prevents cross-optimization interference
|
||||
Duration: 1.5 minutes
|
||||
|
||||
---
|
||||
|
||||
# 07_parallelization
|
||||
|
||||
[Transition] The third pattern is Parallelization, which comes in two flavors.
|
||||
|
||||
Sectioning breaks a task into independent subtasks that run simultaneously — like having one model process queries while another screens for inappropriate content. These tend to perform better than asking a single LLM call to do both.
|
||||
|
||||
Voting runs the same task multiple times for diverse perspectives — like having several different prompts review code for vulnerabilities, flagging issues independently.
|
||||
|
||||
[Pause]
|
||||
|
||||
Both approaches boost confidence through multiple perspectives.
|
||||
|
||||
Key points: ① Sectioning = independent parallel subtasks ② Voting = multiple perspectives on same task ③ Better than single-call for complex multi-concern tasks
|
||||
Duration: 2 minutes
|
||||
|
||||
---
|
||||
|
||||
# 08_orchestrator_workers
|
||||
|
||||
[Transition] The Orchestrator-Workers pattern looks similar to parallelization, but has one crucial difference.
|
||||
|
||||
Here, a central LLM dynamically decides what subtasks are needed, delegates them to worker LLMs, and synthesizes the results. The subtasks aren't predetermined — they emerge from the input.
|
||||
|
||||
This is ideal for coding products that modify multiple files, where the orchestrator determines which files need changes based on the task description. Or search tasks that need to gather and analyze information from multiple sources.
|
||||
|
||||
Key points: ① Central LLM dynamically breaks down tasks ② Key difference: subtasks not pre-defined ③ Ideal for unpredictable, complex workflows
|
||||
Duration: 1.5 minutes
|
||||
|
||||
---
|
||||
|
||||
# 09_evaluator_optimizer
|
||||
|
||||
[Transition] The last workflow pattern is the Evaluator-Optimizer — essentially an iterative refinement loop.
|
||||
|
||||
One LLM generates a response; another evaluates it and provides feedback. This cycle continues until the output meets quality standards. It's analogous to how a human writer iterates through drafts.
|
||||
|
||||
There are two clear signs this pattern fits: first, human feedback demonstrably improves LLM responses; second, the LLM can provide that same kind of feedback. If both are true, you have a strong candidate.
|
||||
|
||||
Key points: ① Generate-evaluate feedback loop ② Two fitness signals to look for ③ Analogous to human iterative writing
|
||||
Duration: 1.5 minutes
|
||||
|
||||
---
|
||||
|
||||
# 10_agents
|
||||
|
||||
[Transition] Now we arrive at fully autonomous agents — the most flexible and powerful pattern.
|
||||
|
||||
Agents emerge as LLMs mature across five key capabilities: understanding complex inputs, reasoning and planning, reliable tool use, error recovery, and knowing when to pause for human checkpoints.
|
||||
|
||||
[Pause]
|
||||
|
||||
Here's the surprising part — agent implementation is often straightforward. They're typically just LLMs using tools in a feedback loop. But this simplicity comes with trade-offs: higher costs and potential for compounding errors. Extensive testing in sandboxed environments, with appropriate guardrails, is essential.
|
||||
|
||||
Key points: ① Five key LLM capabilities enable agents ② Implementation = LLMs using tools in a loop ③ Higher costs + compounding errors require guardrails
|
||||
Duration: 2 minutes
|
||||
|
||||
---
|
||||
|
||||
# 11_agents_in_practice
|
||||
|
||||
[Transition] Let's look at two domains where agents have proven particularly valuable.
|
||||
|
||||
Customer support is a natural fit — conversations require both dialogue and action. Tools pull customer data, handle refunds, and access knowledge bases. Some companies are so confident in their agents that they charge only for successful resolutions.
|
||||
|
||||
Coding agents have shown remarkable potential. The key advantage: code is verifiable through automated tests, creating a natural feedback loop. Anthropic's own agent solves real GitHub issues from pull request descriptions alone.
|
||||
|
||||
One fascinating insight from their experience: they spent more time optimizing their tools than the overall prompt — a testament to how important ACI design is.
|
||||
|
||||
Key points: ① Customer support: natural conversation + actions ② Coding agents: verifiable + iterable ③ Tool optimization > prompt optimization
|
||||
Duration: 2 minutes
|
||||
|
||||
---
|
||||
|
||||
# 12_summary
|
||||
|
||||
[Transition] Let's close with three principles to take away.
|
||||
|
||||
First, simplicity. Build the right system for your needs, not the most sophisticated one you can imagine.
|
||||
|
||||
Second, transparency. Let your users see the agent's reasoning — it builds trust and aids debugging.
|
||||
|
||||
Third, invest in ACI design — your agent-computer interface. Think of it as HCI for machines. Good tool documentation and testing pays dividends.
|
||||
|
||||
[Pause]
|
||||
|
||||
The progression is clear: start simple, optimize with evaluation, and add agentic systems only when simpler solutions genuinely fall short. Thank you.
|
||||
|
||||
Key points: ① Simplicity in design ② Transparency in planning ③ ACI through tool documentation and testing
|
||||
Duration: 2 minutes
|
||||
@@ -0,0 +1,61 @@
|
||||
# Execution Lock
|
||||
|
||||
## canvas
|
||||
- viewBox: 0 0 1280 720
|
||||
- format: PPT 16:9
|
||||
|
||||
## colors
|
||||
- bg: #0F1117
|
||||
- secondary_bg: #1A1D27
|
||||
- primary: #D4845A
|
||||
- accent: #5B9BD5
|
||||
- secondary_accent: #E8B87D
|
||||
- text: #E8E8EC
|
||||
- text_secondary: #9CA3AF
|
||||
- text_tertiary: #6B7280
|
||||
- border: #2D3348
|
||||
- success: #4ADE80
|
||||
- warning: #F87171
|
||||
|
||||
## typography
|
||||
- font_family: "Helvetica Neue", Arial, sans-serif
|
||||
- code_family: Consolas, "Courier New", monospace
|
||||
- body: 18
|
||||
- title: 32
|
||||
- subtitle: 24
|
||||
- annotation: 14
|
||||
- cover_title: 60
|
||||
|
||||
## icons
|
||||
- library: chunk
|
||||
- inventory: robot, code, lightbulb, layers, arrow-right, route, grid, cube, arrows-repeat, shield-check, toolbox, target, badge-check, terminal, cog, share-nodes, eye, book-open, microchip, server, star, checkmark, link
|
||||
|
||||
## images
|
||||
- image: images/image.png
|
||||
- image_1: images/image_1.png
|
||||
- image_2: images/image_2.png
|
||||
- image_3: images/image_3.png
|
||||
- image_4: images/image_4.png
|
||||
- image_5: images/image_5.png
|
||||
- image_6: images/image_6.png
|
||||
- image_7: images/image_7.png
|
||||
|
||||
## page_rhythm
|
||||
- P01: anchor
|
||||
- P02: breathing
|
||||
- P03: dense
|
||||
- P04: breathing
|
||||
- P05: dense
|
||||
- P06: dense
|
||||
- P07: dense
|
||||
- P08: dense
|
||||
- P09: dense
|
||||
- P10: breathing
|
||||
- P11: dense
|
||||
- P12: anchor
|
||||
|
||||
## forbidden
|
||||
- Mixing icon libraries
|
||||
- rgba()
|
||||
- `<style>`, `class`, `<foreignObject>`, `textPath`, `@font-face`, `<animate*>`, `<script>`, `<iframe>`, `<symbol>`+`<use>`
|
||||
- `<g opacity>` (set opacity on each child element individually)
|
||||
@@ -0,0 +1,84 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<radialGradient id="bgGlow1" cx="70%" cy="30%" r="50%">
|
||||
<stop offset="0%" stop-color="#D4845A" stop-opacity="0.12" />
|
||||
<stop offset="100%" stop-color="#D4845A" stop-opacity="0" />
|
||||
</radialGradient>
|
||||
<radialGradient id="bgGlow2" cx="25%" cy="75%" r="45%">
|
||||
<stop offset="0%" stop-color="#5B9BD5" stop-opacity="0.08" />
|
||||
<stop offset="100%" stop-color="#5B9BD5" stop-opacity="0" />
|
||||
</radialGradient>
|
||||
<linearGradient id="accentLine" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#D4845A" />
|
||||
<stop offset="100%" stop-color="#E8B87D" />
|
||||
</linearGradient>
|
||||
<filter id="softShadow" x="-15%" y="-15%" width="140%" height="140%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="12" />
|
||||
<feOffset dx="0" dy="6" result="offsetBlur" />
|
||||
<feFlood flood-color="#000000" flood-opacity="0.15" result="shadowColor" />
|
||||
<feComposite in="shadowColor" in2="offsetBlur" operator="in" result="shadow" />
|
||||
<feMerge>
|
||||
<feMergeNode in="shadow" />
|
||||
<feMergeNode in="SourceGraphic" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
|
||||
<rect width="1280" height="720" fill="#0F1117" />
|
||||
<rect width="1280" height="720" fill="url(#bgGlow1)" />
|
||||
<rect width="1280" height="720" fill="url(#bgGlow2)" />
|
||||
|
||||
|
||||
<g id="grid-dots">
|
||||
<circle cx="120" cy="120" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="200" cy="120" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="280" cy="120" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="360" cy="120" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="120" cy="200" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="200" cy="200" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="280" cy="200" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="360" cy="200" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="920" cy="520" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="1000" cy="520" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="1080" cy="520" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="1160" cy="520" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="920" cy="600" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="1000" cy="600" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="1080" cy="600" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
<circle cx="1160" cy="600" r="1.5" fill="#2D3348" fill-opacity="0.6" />
|
||||
</g>
|
||||
|
||||
|
||||
<circle cx="1050" cy="180" r="80" fill="none" stroke="#D4845A" stroke-opacity="0.08" stroke-width="1" />
|
||||
<circle cx="1050" cy="180" r="120" fill="none" stroke="#D4845A" stroke-opacity="0.05" stroke-width="1" />
|
||||
<circle cx="230" cy="550" r="60" fill="none" stroke="#5B9BD5" stroke-opacity="0.06" stroke-width="1" />
|
||||
<circle cx="230" cy="550" r="95" fill="none" stroke="#5B9BD5" stroke-opacity="0.04" stroke-width="1" />
|
||||
|
||||
|
||||
<g id="cover-icon">
|
||||
|
||||
<g transform="translate(596.0, 200.0) scale(5.5)" fill="#D4845A">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 0V2H13L16 8.5L13 15H3L0 8.5L3 2H7V0H9ZM4.59794 11.7384L8 12.2618L11.4021 11.7384L11.0979 9.76163L8 10.2382L4.90206 9.76163L4.59794 11.7384ZM7 6.75C7 7.44036 6.44036 8 5.75 8C5.05964 8 4.5 7.44036 4.5 6.75C4.5 6.05964 5.05964 5.5 5.75 5.5C6.44036 5.5 7 6.05964 7 6.75ZM10.25 8C10.9404 8 11.5 7.44036 11.5 6.75C11.5 6.05964 10.9404 5.5 10.25 5.5C9.55964 5.5 9 6.05964 9 6.75C9 7.44036 9.55964 8 10.25 8Z" />
|
||||
</g>
|
||||
</g>
|
||||
|
||||
|
||||
<path fill="url(#accentLine)" d="M542,310 H738 A2,2 0 0 1 740,312 V312 A2,2 0 0 1 738,314 H542 A2,2 0 0 1 540,312 V312 A2,2 0 0 1 542,310 Z" />
|
||||
|
||||
|
||||
<g id="cover-title">
|
||||
<text x="640" y="375" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="60" font-weight="bold" fill="#E8E8EC">Building Effective</text>
|
||||
<text x="640" y="440" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="60" font-weight="bold" fill="#D4845A">Agents</text>
|
||||
</g>
|
||||
|
||||
|
||||
<text x="640" y="490" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="22" fill="#9CA3AF">Simple, composable patterns for LLM-based agentic systems</text>
|
||||
|
||||
|
||||
<g id="cover-footer">
|
||||
<rect x="0" y="660" width="1280" height="1" fill="#2D3348" fill-opacity="0.5" />
|
||||
<text x="60" y="692" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#6B7280">Anthropic Engineering</text>
|
||||
<text x="1220" y="692" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#6B7280">December 2024</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.6 KiB |
@@ -0,0 +1,96 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<radialGradient id="bgGlow" cx="50%" cy="40%" r="50%">
|
||||
<stop offset="0%" stop-color="#D4845A" stop-opacity="0.06" />
|
||||
<stop offset="100%" stop-color="#D4845A" stop-opacity="0" />
|
||||
</radialGradient>
|
||||
<linearGradient id="dividerGrad" x1="0%" y1="0%" x2="0%" y2="100%">
|
||||
<stop offset="0%" stop-color="#D4845A" stop-opacity="0" />
|
||||
<stop offset="30%" stop-color="#D4845A" stop-opacity="0.6" />
|
||||
<stop offset="70%" stop-color="#D4845A" stop-opacity="0.6" />
|
||||
<stop offset="100%" stop-color="#D4845A" stop-opacity="0" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
|
||||
<rect width="1280" height="720" fill="#0F1117" />
|
||||
<rect width="1280" height="720" fill="url(#bgGlow)" />
|
||||
|
||||
|
||||
<g id="header">
|
||||
<path fill="#D4845A" d="M62,50 H62 A2,2 0 0 1 64,52 V84 A2,2 0 0 1 62,86 H62 A2,2 0 0 1 60,84 V52 A2,2 0 0 1 62,50 Z" />
|
||||
<text x="78" y="80" font-family="'Helvetica Neue', Arial, sans-serif" font-size="32" font-weight="bold" fill="#E8E8EC">What Are Agents?</text>
|
||||
<text x="78" y="108" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#9CA3AF">The key architectural distinction in agentic systems</text>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
<g id="concept-workflows">
|
||||
|
||||
<g transform="translate(140.0, 220.0) scale(3.0)" fill="#5B9BD5">
|
||||
<path d="M8 6L8 2L10 2L16 8L10 14L8 14L8 10L-1.74845e-07 10L-3.01991e-07 6L8 6Z" />
|
||||
</g>
|
||||
<text x="140" y="310" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#5B9BD5">Workflows</text>
|
||||
<text x="140" y="350" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" fill="#E8E8EC">LLMs and tools orchestrated</text>
|
||||
<text x="140" y="375" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" fill="#E8E8EC">through predefined code paths.</text>
|
||||
<text x="140" y="420" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Predictable · Consistent · Well-defined tasks</text>
|
||||
|
||||
|
||||
<path fill="#1A1D27" stroke="#5B9BD5" stroke-width="1" stroke-opacity="0.4" d="M148,470 H232 A8,8 0 0 1 240,478 V506 A8,8 0 0 1 232,514 H148 A8,8 0 0 1 140,506 V478 A8,8 0 0 1 148,470 Z" />
|
||||
<text x="190" y="498" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#5B9BD5">Step 1</text>
|
||||
<path fill="#5B9BD5" fill-opacity="0.3" d="M262,486 H282 A2,2 0 0 1 284,488 V496 A2,2 0 0 1 282,498 H262 A2,2 0 0 1 260,496 V488 A2,2 0 0 1 262,486 Z" />
|
||||
<polygon points="284,486 296,492 284,498" fill="#5B9BD5" fill-opacity="0.5" />
|
||||
<path fill="#1A1D27" stroke="#5B9BD5" stroke-width="1" stroke-opacity="0.4" d="M318,470 H402 A8,8 0 0 1 410,478 V506 A8,8 0 0 1 402,514 H318 A8,8 0 0 1 310,506 V478 A8,8 0 0 1 318,470 Z" />
|
||||
<text x="360" y="498" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#5B9BD5">Step 2</text>
|
||||
<path fill="#5B9BD5" fill-opacity="0.3" d="M432,486 H452 A2,2 0 0 1 454,488 V496 A2,2 0 0 1 452,498 H432 A2,2 0 0 1 430,496 V488 A2,2 0 0 1 432,486 Z" />
|
||||
<polygon points="454,486 466,492 454,498" fill="#5B9BD5" fill-opacity="0.5" />
|
||||
<path fill="#1A1D27" stroke="#5B9BD5" stroke-width="1" stroke-opacity="0.4" d="M488,470 H572 A8,8 0 0 1 580,478 V506 A8,8 0 0 1 572,514 H488 A8,8 0 0 1 480,506 V478 A8,8 0 0 1 488,470 Z" />
|
||||
<text x="530" y="498" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#5B9BD5">Step 3</text>
|
||||
</g>
|
||||
|
||||
|
||||
<path fill="url(#dividerGrad)" d="M639.50,200 H639.50 A1.50,1.50 0 0 1 641,201.50 V538.50 A1.50,1.50 0 0 1 639.50,540 H639.50 A1.50,1.50 0 0 1 638,538.50 V201.50 A1.50,1.50 0 0 1 639.50,200 Z" />
|
||||
<text x="640" y="190" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" font-weight="bold" fill="#D4845A">VS</text>
|
||||
|
||||
|
||||
<g id="concept-agents">
|
||||
|
||||
<g transform="translate(720.0, 220.0) scale(3.0)" fill="#D4845A">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 0V2H13L16 8.5L13 15H3L0 8.5L3 2H7V0H9ZM4.59794 11.7384L8 12.2618L11.4021 11.7384L11.0979 9.76163L8 10.2382L4.90206 9.76163L4.59794 11.7384ZM7 6.75C7 7.44036 6.44036 8 5.75 8C5.05964 8 4.5 7.44036 4.5 6.75C4.5 6.05964 5.05964 5.5 5.75 5.5C6.44036 5.5 7 6.05964 7 6.75ZM10.25 8C10.9404 8 11.5 7.44036 11.5 6.75C11.5 6.05964 10.9404 5.5 10.25 5.5C9.55964 5.5 9 6.05964 9 6.75C9 7.44036 9.55964 8 10.25 8Z" />
|
||||
</g>
|
||||
<text x="720" y="310" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#D4845A">Agents</text>
|
||||
<text x="720" y="350" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" fill="#E8E8EC">LLMs dynamically direct their</text>
|
||||
<text x="720" y="375" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" fill="#E8E8EC">own processes and tool usage.</text>
|
||||
<text x="720" y="420" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Flexible · Autonomous · Model-driven decisions</text>
|
||||
|
||||
|
||||
<circle cx="860" cy="495" r="40" fill="none" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3" />
|
||||
<text x="860" y="500" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="12" fill="#D4845A">LLM</text>
|
||||
<path fill="#1A1D27" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3" d="M946,475 H1006 A6,6 0 0 1 1012,481 V505 A6,6 0 0 1 1006,511 H946 A6,6 0 0 1 940,505 V481 A6,6 0 0 1 946,475 Z" />
|
||||
<text x="976" y="498" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="11" fill="#D4845A">Tools</text>
|
||||
<path fill="#1A1D27" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3" d="M1046,475 H1106 A6,6 0 0 1 1112,481 V505 A6,6 0 0 1 1106,511 H1046 A6,6 0 0 1 1040,505 V481 A6,6 0 0 1 1046,475 Z" />
|
||||
<text x="1076" y="498" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="11" fill="#D4845A">Env</text>
|
||||
|
||||
<line x1="900" y1="492" x2="938" y2="492" stroke="#D4845A" stroke-width="1" stroke-opacity="0.4" />
|
||||
<line x1="1012" y1="492" x2="1038" y2="492" stroke="#D4845A" stroke-width="1" stroke-opacity="0.4" />
|
||||
|
||||
<path d="M860,535 Q860,560 960,560 Q1076,560 1076,515" fill="none" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3" stroke-dasharray="4,4" />
|
||||
</g>
|
||||
|
||||
|
||||
<g id="bottom-insight">
|
||||
<rect x="60" y="590" width="1160" height="1" fill="#2D3348" fill-opacity="0.4" />
|
||||
|
||||
<g transform="translate(60.0, 612.0) scale(1.5)" fill="#E8B87D">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 11.5V14.5L6.5 16H9.5L11 14.5V11.5L12.2396 10.2604C13.3668 9.13324 14 7.60141 14 6.00736C14 2.69365 11.3137 0 8 0C4.68629 0 2 2.69365 2 6.00736C2 7.60141 2.63324 9.13324 3.76041 10.2604L5 11.5ZM7 9.87398V6H9V9.87398C10.7252 9.42994 12 7.86384 12 6C12 3.79086 10.2091 2 8 2C5.79086 2 4 3.79086 4 6C4 7.86384 5.27477 9.42994 7 9.87398Z" />
|
||||
</g>
|
||||
<text x="96" y="632" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8B87D" font-weight="bold">Key Insight:</text>
|
||||
<text x="220" y="632" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#9CA3AF">All these variations are "agentic systems" — the spectrum matters more than the label.</text>
|
||||
</g>
|
||||
|
||||
|
||||
<g id="footer">
|
||||
<text x="1220" y="700" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="10" fill="#6B7280">02</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.3 KiB |
@@ -0,0 +1,127 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<filter id="cardShadow" x="-15%" y="-15%" width="140%" height="140%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="10" />
|
||||
<feOffset dx="0" dy="4" result="offsetBlur" />
|
||||
<feFlood flood-color="#000000" flood-opacity="0.12" result="shadowColor" />
|
||||
<feComposite in="shadowColor" in2="offsetBlur" operator="in" result="shadow" />
|
||||
<feMerge>
|
||||
<feMergeNode in="shadow" />
|
||||
<feMergeNode in="SourceGraphic" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
<linearGradient id="successGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#4ADE80" stop-opacity="0.15" />
|
||||
<stop offset="100%" stop-color="#4ADE80" stop-opacity="0" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
|
||||
<rect width="1280" height="720" fill="#0F1117" />
|
||||
|
||||
|
||||
<g id="header">
|
||||
<path fill="#D4845A" d="M62,50 H62 A2,2 0 0 1 64,52 V84 A2,2 0 0 1 62,86 H62 A2,2 0 0 1 60,84 V52 A2,2 0 0 1 62,50 Z" />
|
||||
<text x="78" y="80" font-family="'Helvetica Neue', Arial, sans-serif" font-size="32" font-weight="bold" fill="#E8E8EC">When (and When Not) to Use Agents</text>
|
||||
</g>
|
||||
|
||||
|
||||
<g id="principle-bar">
|
||||
<path fill="#1A1D27" stroke="#2D3348" stroke-width="1" d="M70,110 H1210 A10,10 0 0 1 1220,120 V152 A10,10 0 0 1 1210,162 H70 A10,10 0 0 1 60,152 V120 A10,10 0 0 1 70,110 Z" />
|
||||
|
||||
<g transform="translate(80.0, 122.0) scale(1.75)" fill="#E8B87D">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 11.5V14.5L6.5 16H9.5L11 14.5V11.5L12.2396 10.2604C13.3668 9.13324 14 7.60141 14 6.00736C14 2.69365 11.3137 0 8 0C4.68629 0 2 2.69365 2 6.00736C2 7.60141 2.63324 9.13324 3.76041 10.2604L5 11.5ZM7 9.87398V6H9V9.87398C10.7252 9.42994 12 7.86384 12 6C12 3.79086 10.2091 2 8 2C5.79086 2 4 3.79086 4 6C4 7.86384 5.27477 9.42994 7 9.87398Z" />
|
||||
</g>
|
||||
<text x="118" y="143" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8B87D" font-weight="bold">Core Principle:</text>
|
||||
<text x="270" y="143" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">Find the simplest solution possible, and only increase complexity when needed.</text>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
<g id="card-single-llm">
|
||||
<path fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)" d="M72,185 H408 A12,12 0 0 1 420,197 V458 A12,12 0 0 1 408,470 H72 A12,12 0 0 1 60,458 V197 A12,12 0 0 1 72,185 Z" />
|
||||
<path fill="#4ADE80" d="M63,185 H417 A3,3 0 0 1 420,188 V188 A3,3 0 0 1 417,191 H63 A3,3 0 0 1 60,188 V188 A3,3 0 0 1 63,185 Z" />
|
||||
|
||||
<g transform="translate(84.0, 212.0) scale(2.0)" fill="#4ADE80">
|
||||
<path d="M0.792725 12.2929L5.08562 8.00002L0.792725 3.70712L2.20694 2.29291L7.91405 8.00002L2.20694 13.7071L0.792725 12.2929Z" />
|
||||
<path d="M7.00006 15H15.0001V13H7.00006V15Z" />
|
||||
</g>
|
||||
<text x="128" y="237" font-family="'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="bold" fill="#E8E8EC">Single LLM Calls</text>
|
||||
<text x="84" y="270" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#4ADE80" font-weight="bold">START HERE</text>
|
||||
|
||||
<rect x="84" y="290" width="312" height="1" fill="#2D3348" fill-opacity="0.5" />
|
||||
<text x="84" y="318" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">Optimized prompts with retrieval</text>
|
||||
<text x="84" y="340" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">and in-context examples</text>
|
||||
<text x="84" y="375" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Lowest latency</text>
|
||||
<text x="84" y="398" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Lowest cost</text>
|
||||
<text x="84" y="421" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Sufficient for most apps</text>
|
||||
<text x="84" y="450" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#6B7280">Complexity: ●○○</text>
|
||||
</g>
|
||||
|
||||
|
||||
<g id="card-workflows">
|
||||
<path fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)" d="M462,185 H798 A12,12 0 0 1 810,197 V458 A12,12 0 0 1 798,470 H462 A12,12 0 0 1 450,458 V197 A12,12 0 0 1 462,185 Z" />
|
||||
<path fill="#5B9BD5" d="M453,185 H807 A3,3 0 0 1 810,188 V188 A3,3 0 0 1 807,191 H453 A3,3 0 0 1 450,188 V188 A3,3 0 0 1 453,185 Z" />
|
||||
|
||||
<g transform="translate(474.0, 212.0) scale(2.0)" fill="#5B9BD5">
|
||||
<path d="M8.01005 0.858582L6.01005 14.8586L7.98995 15.1414L9.98995 1.14142L8.01005 0.858582Z" />
|
||||
<path d="M12.5 11.5L11.0858 10.0858L13.1716 8L11.0858 5.91422L12.5 4.5L16 8L12.5 11.5Z" />
|
||||
<path d="M2.82843 8L4.91421 10.0858L3.5 11.5L0 8L3.5 4.5L4.91421 5.91422L2.82843 8Z" />
|
||||
</g>
|
||||
<text x="518" y="237" font-family="'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="bold" fill="#E8E8EC">Workflows</text>
|
||||
|
||||
<text x="474" y="270" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#5B9BD5" font-weight="bold">WHEN MORE COMPLEXITY IS WARRANTED</text>
|
||||
|
||||
<rect x="474" y="290" width="312" height="1" fill="#2D3348" fill-opacity="0.5" />
|
||||
<text x="474" y="318" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">LLMs + tools orchestrated</text>
|
||||
<text x="474" y="340" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">through predefined code paths</text>
|
||||
<text x="474" y="375" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Predictability</text>
|
||||
<text x="474" y="398" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Consistency</text>
|
||||
<text x="474" y="421" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Well-defined tasks</text>
|
||||
<text x="474" y="450" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#6B7280">Complexity: ●●○</text>
|
||||
</g>
|
||||
|
||||
|
||||
<g id="card-agents">
|
||||
<path fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)" d="M852,185 H1208 A12,12 0 0 1 1220,197 V458 A12,12 0 0 1 1208,470 H852 A12,12 0 0 1 840,458 V197 A12,12 0 0 1 852,185 Z" />
|
||||
<path fill="#D4845A" d="M843,185 H1217 A3,3 0 0 1 1220,188 V188 A3,3 0 0 1 1217,191 H843 A3,3 0 0 1 840,188 V188 A3,3 0 0 1 843,185 Z" />
|
||||
|
||||
<g transform="translate(864.0, 212.0) scale(2.0)" fill="#D4845A">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 0V2H13L16 8.5L13 15H3L0 8.5L3 2H7V0H9ZM4.59794 11.7384L8 12.2618L11.4021 11.7384L11.0979 9.76163L8 10.2382L4.90206 9.76163L4.59794 11.7384ZM7 6.75C7 7.44036 6.44036 8 5.75 8C5.05964 8 4.5 7.44036 4.5 6.75C4.5 6.05964 5.05964 5.5 5.75 5.5C6.44036 5.5 7 6.05964 7 6.75ZM10.25 8C10.9404 8 11.5 7.44036 11.5 6.75C11.5 6.05964 10.9404 5.5 10.25 5.5C9.55964 5.5 9 6.05964 9 6.75C9 7.44036 9.55964 8 10.25 8Z" />
|
||||
</g>
|
||||
<text x="908" y="237" font-family="'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="bold" fill="#E8E8EC">Agents</text>
|
||||
|
||||
<text x="864" y="270" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#D4845A" font-weight="bold">WHEN FLEXIBILITY IS NEEDED</text>
|
||||
|
||||
<rect x="864" y="290" width="332" height="1" fill="#2D3348" fill-opacity="0.5" />
|
||||
<text x="864" y="318" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">LLMs dynamically direct their</text>
|
||||
<text x="864" y="340" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">own processes and tool usage</text>
|
||||
<text x="864" y="375" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Flexibility at scale</text>
|
||||
<text x="864" y="398" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Model-driven decisions</text>
|
||||
<text x="864" y="421" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Open-ended problems</text>
|
||||
<text x="864" y="450" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#6B7280">Complexity: ●●●</text>
|
||||
</g>
|
||||
|
||||
|
||||
<polygon points="424,328 440,318 440,338" fill="#2D3348" />
|
||||
<polygon points="814,328 830,318 830,338" fill="#2D3348" />
|
||||
|
||||
|
||||
<g id="framework-note">
|
||||
<path fill="#1A1D27" stroke="#2D3348" stroke-width="1" d="M72,500 H1208 A12,12 0 0 1 1220,512 V628 A12,12 0 0 1 1208,640 H72 A12,12 0 0 1 60,628 V512 A12,12 0 0 1 72,500 Z" />
|
||||
|
||||
<g transform="translate(84.0, 524.0) scale(1.75)" fill="#E8B87D">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 1H12V5H13.5L16 7.5V9H0V7.5L2.5 5H4V1ZM10 3V5H6V3H10Z" />
|
||||
<path d="M0 11V15H16V11H0Z" />
|
||||
</g>
|
||||
<text x="124" y="546" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" font-weight="bold" fill="#E8B87D">On Frameworks</text>
|
||||
<text x="84" y="580" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">Start by using LLM APIs directly — many patterns can be implemented in a few lines of code.</text>
|
||||
<text x="84" y="606" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">If you do use a framework, ensure you understand the underlying code.</text>
|
||||
<text x="84" y="624" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Incorrect assumptions about what's under the hood are a common source of customer error.</text>
|
||||
</g>
|
||||
|
||||
|
||||
<g id="footer">
|
||||
<text x="1220" y="700" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="10" fill="#6B7280">03</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 187 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 196 KiB |
|
After Width: | Height: | Size: 219 KiB |
|
After Width: | Height: | Size: 211 KiB |
|
After Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 281 KiB |
@@ -0,0 +1,100 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<radialGradient id="bgGlow1" cx="50%" cy="40%" r="50%">
|
||||
<stop offset="0%" stop-color="#D4845A" stop-opacity="0.08" />
|
||||
<stop offset="100%" stop-color="#D4845A" stop-opacity="0" />
|
||||
</radialGradient>
|
||||
<linearGradient id="numberGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#D4845A" />
|
||||
<stop offset="100%" stop-color="#E8B87D" />
|
||||
</linearGradient>
|
||||
<filter id="cardShadow" x="-15%" y="-15%" width="140%" height="140%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="10" />
|
||||
<feOffset dx="0" dy="4" result="offsetBlur" />
|
||||
<feFlood flood-color="#000000" flood-opacity="0.12" result="shadowColor" />
|
||||
<feComposite in="shadowColor" in2="offsetBlur" operator="in" result="shadow" />
|
||||
<feMerge>
|
||||
<feMergeNode in="shadow" />
|
||||
<feMergeNode in="SourceGraphic" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
|
||||
<rect width="1280" height="720" fill="#0F1117" />
|
||||
<rect width="1280" height="720" fill="url(#bgGlow1)" />
|
||||
|
||||
|
||||
<circle cx="180" cy="600" r="70" fill="none" stroke="#D4845A" stroke-opacity="0.06" stroke-width="1" />
|
||||
<circle cx="1100" cy="140" r="90" fill="none" stroke="#5B9BD5" stroke-opacity="0.05" stroke-width="1" />
|
||||
|
||||
|
||||
<g id="header">
|
||||
<text x="640" y="80" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="36" font-weight="bold" fill="#E8E8EC">Three Core Principles</text>
|
||||
<path fill="url(#numberGrad)" d="M572,95 H708 A2,2 0 0 1 710,97 V97 A2,2 0 0 1 708,99 H572 A2,2 0 0 1 570,97 V97 A2,2 0 0 1 572,95 Z" />
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
<g id="principle-1">
|
||||
<path fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)" d="M74,140 H416 A14,14 0 0 1 430,154 V436 A14,14 0 0 1 416,450 H74 A14,14 0 0 1 60,436 V154 A14,14 0 0 1 74,140 Z" />
|
||||
<circle cx="245" cy="210" r="40" fill="#D4845A" fill-opacity="0.12" stroke="#D4845A" stroke-width="1.5" stroke-opacity="0.4" />
|
||||
<text x="245" y="222" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#D4845A">1</text>
|
||||
|
||||
|
||||
<g transform="translate(221.0, 268.0) scale(3.0)" fill="#D4845A">
|
||||
<path d="M9.00001 0H7.00001L5.51292 4.57681L0.700554 4.57682L0.0825195 6.47893L3.97581 9.30756L2.48873 13.8843L4.10677 15.0599L8.00002 12.2313L11.8933 15.0599L13.5113 13.8843L12.0242 9.30754L15.9175 6.47892L15.2994 4.57681L10.4871 4.57681L9.00001 0Z" />
|
||||
</g>
|
||||
<text x="245" y="346" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="22" font-weight="bold" fill="#E8E8EC">Simplicity</text>
|
||||
<text x="245" y="380" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">Maintain simplicity in your</text>
|
||||
<text x="245" y="400" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">agent's design. Build the right</text>
|
||||
<text x="245" y="420" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">system, not the most sophisticated.</text>
|
||||
</g>
|
||||
|
||||
|
||||
<g id="principle-2">
|
||||
<path fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)" d="M469,140 H811 A14,14 0 0 1 825,154 V436 A14,14 0 0 1 811,450 H469 A14,14 0 0 1 455,436 V154 A14,14 0 0 1 469,140 Z" />
|
||||
<circle cx="640" cy="210" r="40" fill="#5B9BD5" fill-opacity="0.12" stroke="#5B9BD5" stroke-width="1.5" stroke-opacity="0.4" />
|
||||
<text x="640" y="222" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#5B9BD5">2</text>
|
||||
|
||||
|
||||
<g transform="translate(616.0, 268.0) scale(3.0)" fill="#5B9BD5">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 8L3.07945 4.30466C4.29638 2.84434 6.09909 2 8 2C9.90091 2 11.7036 2.84434 12.9206 4.30466L16 8L12.9206 11.6953C11.7036 13.1557 9.90091 14 8 14C6.09909 14 4.29638 13.1557 3.07945 11.6953L0 8ZM8 11C9.65685 11 11 9.65685 11 8C11 6.34315 9.65685 5 8 5C6.34315 5 5 6.34315 5 8C5 9.65685 6.34315 11 8 11Z" />
|
||||
</g>
|
||||
<text x="640" y="346" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="22" font-weight="bold" fill="#E8E8EC">Transparency</text>
|
||||
<text x="640" y="380" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">Prioritize transparency by</text>
|
||||
<text x="640" y="400" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">explicitly showing the agent's</text>
|
||||
<text x="640" y="420" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">planning steps.</text>
|
||||
</g>
|
||||
|
||||
|
||||
<g id="principle-3">
|
||||
<path fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)" d="M864,140 H1206 A14,14 0 0 1 1220,154 V436 A14,14 0 0 1 1206,450 H864 A14,14 0 0 1 850,436 V154 A14,14 0 0 1 864,140 Z" />
|
||||
<circle cx="1035" cy="210" r="40" fill="#E8B87D" fill-opacity="0.12" stroke="#E8B87D" stroke-width="1.5" stroke-opacity="0.4" />
|
||||
<text x="1035" y="222" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#E8B87D">3</text>
|
||||
|
||||
|
||||
<g transform="translate(1011.0, 268.0) scale(3.0)" fill="#E8B87D">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 1H12V5H13.5L16 7.5V9H0V7.5L2.5 5H4V1ZM10 3V5H6V3H10Z" />
|
||||
<path d="M0 11V15H16V11H0Z" />
|
||||
</g>
|
||||
<text x="1035" y="346" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="22" font-weight="bold" fill="#E8E8EC">ACI Design</text>
|
||||
<text x="1035" y="380" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">Craft your agent-computer</text>
|
||||
<text x="1035" y="400" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">interface through thorough tool</text>
|
||||
<text x="1035" y="420" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">documentation and testing.</text>
|
||||
</g>
|
||||
|
||||
|
||||
<g id="summary">
|
||||
<path fill="#1A1D27" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3" d="M152,490 H1128 A12,12 0 0 1 1140,502 V578 A12,12 0 0 1 1128,590 H152 A12,12 0 0 1 140,578 V502 A12,12 0 0 1 152,490 Z" />
|
||||
<text x="640" y="533" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" fill="#E8E8EC">Start with <tspan font-weight="bold" fill="#D4845A">simple prompts</tspan> → optimize with <tspan font-weight="bold" fill="#5B9BD5">comprehensive evaluation</tspan></text>
|
||||
<text x="640" y="562" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" fill="#E8E8EC">→ add agentic systems only when <tspan font-weight="bold" fill="#E8B87D">simpler solutions fall short</tspan></text>
|
||||
</g>
|
||||
|
||||
|
||||
<g id="footer">
|
||||
<rect x="0" y="660" width="1280" height="1" fill="#2D3348" fill-opacity="0.3" />
|
||||
<text x="60" y="692" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#6B7280">Anthropic Engineering · Building Effective Agents</text>
|
||||
<text x="1220" y="692" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="10" fill="#6B7280">12</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.3 KiB |
@@ -0,0 +1,81 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<radialGradient id="bgGlow1" cx="70%" cy="30%" r="50%">
|
||||
<stop offset="0%" stop-color="#D4845A" stop-opacity="0.12"/>
|
||||
<stop offset="100%" stop-color="#D4845A" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="bgGlow2" cx="25%" cy="75%" r="45%">
|
||||
<stop offset="0%" stop-color="#5B9BD5" stop-opacity="0.08"/>
|
||||
<stop offset="100%" stop-color="#5B9BD5" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="accentLine" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#D4845A"/>
|
||||
<stop offset="100%" stop-color="#E8B87D"/>
|
||||
</linearGradient>
|
||||
<filter id="softShadow" x="-15%" y="-15%" width="140%" height="140%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="12"/>
|
||||
<feOffset dx="0" dy="6" result="offsetBlur"/>
|
||||
<feFlood flood-color="#000000" flood-opacity="0.15" result="shadowColor"/>
|
||||
<feComposite in="shadowColor" in2="offsetBlur" operator="in" result="shadow"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadow"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1280" height="720" fill="#0F1117"/>
|
||||
<rect width="1280" height="720" fill="url(#bgGlow1)"/>
|
||||
<rect width="1280" height="720" fill="url(#bgGlow2)"/>
|
||||
|
||||
<!-- Decorative grid dots -->
|
||||
<g id="grid-dots">
|
||||
<circle cx="120" cy="120" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="200" cy="120" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="280" cy="120" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="360" cy="120" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="120" cy="200" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="200" cy="200" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="280" cy="200" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="360" cy="200" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="920" cy="520" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="1000" cy="520" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="1080" cy="520" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="1160" cy="520" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="920" cy="600" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="1000" cy="600" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="1080" cy="600" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
<circle cx="1160" cy="600" r="1.5" fill="#2D3348" fill-opacity="0.6"/>
|
||||
</g>
|
||||
|
||||
<!-- Decorative rings -->
|
||||
<circle cx="1050" cy="180" r="80" fill="none" stroke="#D4845A" stroke-opacity="0.08" stroke-width="1"/>
|
||||
<circle cx="1050" cy="180" r="120" fill="none" stroke="#D4845A" stroke-opacity="0.05" stroke-width="1"/>
|
||||
<circle cx="230" cy="550" r="60" fill="none" stroke="#5B9BD5" stroke-opacity="0.06" stroke-width="1"/>
|
||||
<circle cx="230" cy="550" r="95" fill="none" stroke="#5B9BD5" stroke-opacity="0.04" stroke-width="1"/>
|
||||
|
||||
<!-- Robot icon -->
|
||||
<g id="cover-icon">
|
||||
<use data-icon="chunk/robot" x="596" y="200" width="88" height="88" fill="#D4845A"/>
|
||||
</g>
|
||||
|
||||
<!-- Accent line -->
|
||||
<rect x="540" y="310" width="200" height="4" rx="2" fill="url(#accentLine)"/>
|
||||
|
||||
<!-- Title -->
|
||||
<g id="cover-title">
|
||||
<text x="640" y="375" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="60" font-weight="bold" fill="#E8E8EC">Building Effective</text>
|
||||
<text x="640" y="440" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="60" font-weight="bold" fill="#D4845A">Agents</text>
|
||||
</g>
|
||||
|
||||
<!-- Subtitle -->
|
||||
<text x="640" y="490" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="22" fill="#9CA3AF">Simple, composable patterns for LLM-based agentic systems</text>
|
||||
|
||||
<!-- Bottom info bar -->
|
||||
<g id="cover-footer">
|
||||
<rect x="0" y="660" width="1280" height="1" fill="#2D3348" fill-opacity="0.5"/>
|
||||
<text x="60" y="692" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#6B7280">Anthropic Engineering</text>
|
||||
<text x="1220" y="692" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#6B7280">December 2024</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
@@ -0,0 +1,87 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<radialGradient id="bgGlow" cx="50%" cy="40%" r="50%">
|
||||
<stop offset="0%" stop-color="#D4845A" stop-opacity="0.06"/>
|
||||
<stop offset="100%" stop-color="#D4845A" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="dividerGrad" x1="0%" y1="0%" x2="0%" y2="100%">
|
||||
<stop offset="0%" stop-color="#D4845A" stop-opacity="0"/>
|
||||
<stop offset="30%" stop-color="#D4845A" stop-opacity="0.6"/>
|
||||
<stop offset="70%" stop-color="#D4845A" stop-opacity="0.6"/>
|
||||
<stop offset="100%" stop-color="#D4845A" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1280" height="720" fill="#0F1117"/>
|
||||
<rect width="1280" height="720" fill="url(#bgGlow)"/>
|
||||
|
||||
<!-- Page header -->
|
||||
<g id="header">
|
||||
<rect x="60" y="50" width="4" height="36" rx="2" fill="#D4845A"/>
|
||||
<text x="78" y="80" font-family="'Helvetica Neue', Arial, sans-serif" font-size="32" font-weight="bold" fill="#E8E8EC">What Are Agents?</text>
|
||||
<text x="78" y="108" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#9CA3AF">The key architectural distinction in agentic systems</text>
|
||||
</g>
|
||||
|
||||
<!-- Central concept — breathing layout: two large blocks separated by vertical divider -->
|
||||
|
||||
<!-- Left block: Workflows -->
|
||||
<g id="concept-workflows">
|
||||
<use data-icon="chunk/arrow-right" x="140" y="220" width="48" height="48" fill="#5B9BD5"/>
|
||||
<text x="140" y="310" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#5B9BD5">Workflows</text>
|
||||
<text x="140" y="350" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" fill="#E8E8EC">LLMs and tools orchestrated</text>
|
||||
<text x="140" y="375" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" fill="#E8E8EC">through predefined code paths.</text>
|
||||
<text x="140" y="420" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Predictable · Consistent · Well-defined tasks</text>
|
||||
|
||||
<!-- Visual: linear flow arrows -->
|
||||
<rect x="140" y="470" width="100" height="44" rx="8" fill="#1A1D27" stroke="#5B9BD5" stroke-width="1" stroke-opacity="0.4"/>
|
||||
<text x="190" y="498" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#5B9BD5">Step 1</text>
|
||||
<rect x="260" y="486" width="24" height="12" rx="2" fill="#5B9BD5" fill-opacity="0.3"/>
|
||||
<polygon points="284,486 296,492 284,498" fill="#5B9BD5" fill-opacity="0.5"/>
|
||||
<rect x="310" y="470" width="100" height="44" rx="8" fill="#1A1D27" stroke="#5B9BD5" stroke-width="1" stroke-opacity="0.4"/>
|
||||
<text x="360" y="498" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#5B9BD5">Step 2</text>
|
||||
<rect x="430" y="486" width="24" height="12" rx="2" fill="#5B9BD5" fill-opacity="0.3"/>
|
||||
<polygon points="454,486 466,492 454,498" fill="#5B9BD5" fill-opacity="0.5"/>
|
||||
<rect x="480" y="470" width="100" height="44" rx="8" fill="#1A1D27" stroke="#5B9BD5" stroke-width="1" stroke-opacity="0.4"/>
|
||||
<text x="530" y="498" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#5B9BD5">Step 3</text>
|
||||
</g>
|
||||
|
||||
<!-- Vertical divider -->
|
||||
<rect x="638" y="200" width="3" height="340" rx="1.5" fill="url(#dividerGrad)"/>
|
||||
<text x="640" y="190" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" font-weight="bold" fill="#D4845A">VS</text>
|
||||
|
||||
<!-- Right block: Agents -->
|
||||
<g id="concept-agents">
|
||||
<use data-icon="chunk/robot" x="720" y="220" width="48" height="48" fill="#D4845A"/>
|
||||
<text x="720" y="310" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#D4845A">Agents</text>
|
||||
<text x="720" y="350" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" fill="#E8E8EC">LLMs dynamically direct their</text>
|
||||
<text x="720" y="375" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" fill="#E8E8EC">own processes and tool usage.</text>
|
||||
<text x="720" y="420" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Flexible · Autonomous · Model-driven decisions</text>
|
||||
|
||||
<!-- Visual: dynamic loop -->
|
||||
<circle cx="860" cy="495" r="40" fill="none" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3"/>
|
||||
<text x="860" y="500" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="12" fill="#D4845A">LLM</text>
|
||||
<rect x="940" y="475" width="72" height="36" rx="6" fill="#1A1D27" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3"/>
|
||||
<text x="976" y="498" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="11" fill="#D4845A">Tools</text>
|
||||
<rect x="1040" y="475" width="72" height="36" rx="6" fill="#1A1D27" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3"/>
|
||||
<text x="1076" y="498" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="11" fill="#D4845A">Env</text>
|
||||
<!-- Connecting lines -->
|
||||
<line x1="900" y1="492" x2="938" y2="492" stroke="#D4845A" stroke-width="1" stroke-opacity="0.4"/>
|
||||
<line x1="1012" y1="492" x2="1038" y2="492" stroke="#D4845A" stroke-width="1" stroke-opacity="0.4"/>
|
||||
<!-- Return loop -->
|
||||
<path d="M860,535 Q860,560 960,560 Q1076,560 1076,515" fill="none" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3" stroke-dasharray="4,4"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom insight -->
|
||||
<g id="bottom-insight">
|
||||
<rect x="60" y="590" width="1160" height="1" fill="#2D3348" fill-opacity="0.4"/>
|
||||
<use data-icon="chunk/lightbulb" x="60" y="612" width="24" height="24" fill="#E8B87D"/>
|
||||
<text x="96" y="632" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8B87D" font-weight="bold">Key Insight:</text>
|
||||
<text x="220" y="632" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#9CA3AF">All these variations are "agentic systems" — the spectrum matters more than the label.</text>
|
||||
</g>
|
||||
|
||||
<!-- Footer -->
|
||||
<g id="footer">
|
||||
<text x="1220" y="700" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="10" fill="#6B7280">02</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.1 KiB |
@@ -0,0 +1,108 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<filter id="cardShadow" x="-15%" y="-15%" width="140%" height="140%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="10"/>
|
||||
<feOffset dx="0" dy="4" result="offsetBlur"/>
|
||||
<feFlood flood-color="#000000" flood-opacity="0.12" result="shadowColor"/>
|
||||
<feComposite in="shadowColor" in2="offsetBlur" operator="in" result="shadow"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadow"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<linearGradient id="successGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#4ADE80" stop-opacity="0.15"/>
|
||||
<stop offset="100%" stop-color="#4ADE80" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1280" height="720" fill="#0F1117"/>
|
||||
|
||||
<!-- Page header -->
|
||||
<g id="header">
|
||||
<rect x="60" y="50" width="4" height="36" rx="2" fill="#D4845A"/>
|
||||
<text x="78" y="80" font-family="'Helvetica Neue', Arial, sans-serif" font-size="32" font-weight="bold" fill="#E8E8EC">When (and When Not) to Use Agents</text>
|
||||
</g>
|
||||
|
||||
<!-- Top principle bar -->
|
||||
<g id="principle-bar">
|
||||
<rect x="60" y="110" width="1160" height="52" rx="10" fill="#1A1D27" stroke="#2D3348" stroke-width="1"/>
|
||||
<use data-icon="chunk/lightbulb" x="80" y="122" width="28" height="28" fill="#E8B87D"/>
|
||||
<text x="118" y="143" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8B87D" font-weight="bold">Core Principle:</text>
|
||||
<text x="270" y="143" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">Find the simplest solution possible, and only increase complexity when needed.</text>
|
||||
</g>
|
||||
|
||||
<!-- Three-column decision cards -->
|
||||
<!-- Card 1: Single LLM Calls -->
|
||||
<g id="card-single-llm">
|
||||
<rect x="60" y="185" width="360" height="285" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<rect x="60" y="185" width="360" height="6" rx="3" fill="#4ADE80"/>
|
||||
<use data-icon="chunk/terminal" x="84" y="212" width="32" height="32" fill="#4ADE80"/>
|
||||
<text x="128" y="237" font-family="'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="bold" fill="#E8E8EC">Single LLM Calls</text>
|
||||
<text x="84" y="270" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#4ADE80" font-weight="bold">START HERE</text>
|
||||
|
||||
<rect x="84" y="290" width="312" height="1" fill="#2D3348" fill-opacity="0.5"/>
|
||||
<text x="84" y="318" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">Optimized prompts with retrieval</text>
|
||||
<text x="84" y="340" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">and in-context examples</text>
|
||||
<text x="84" y="375" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Lowest latency</text>
|
||||
<text x="84" y="398" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Lowest cost</text>
|
||||
<text x="84" y="421" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Sufficient for most apps</text>
|
||||
<text x="84" y="450" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#6B7280">Complexity: ●○○</text>
|
||||
</g>
|
||||
|
||||
<!-- Card 2: Workflows -->
|
||||
<g id="card-workflows">
|
||||
<rect x="450" y="185" width="360" height="285" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<rect x="450" y="185" width="360" height="6" rx="3" fill="#5B9BD5"/>
|
||||
<use data-icon="chunk/code" x="474" y="212" width="32" height="32" fill="#5B9BD5"/>
|
||||
<text x="518" y="237" font-family="'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="bold" fill="#E8E8EC">Workflows</text>
|
||||
|
||||
<text x="474" y="270" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#5B9BD5" font-weight="bold">WHEN MORE COMPLEXITY IS WARRANTED</text>
|
||||
|
||||
<rect x="474" y="290" width="312" height="1" fill="#2D3348" fill-opacity="0.5"/>
|
||||
<text x="474" y="318" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">LLMs + tools orchestrated</text>
|
||||
<text x="474" y="340" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">through predefined code paths</text>
|
||||
<text x="474" y="375" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Predictability</text>
|
||||
<text x="474" y="398" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Consistency</text>
|
||||
<text x="474" y="421" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Well-defined tasks</text>
|
||||
<text x="474" y="450" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#6B7280">Complexity: ●●○</text>
|
||||
</g>
|
||||
|
||||
<!-- Card 3: Agents -->
|
||||
<g id="card-agents">
|
||||
<rect x="840" y="185" width="380" height="285" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<rect x="840" y="185" width="380" height="6" rx="3" fill="#D4845A"/>
|
||||
<use data-icon="chunk/robot" x="864" y="212" width="32" height="32" fill="#D4845A"/>
|
||||
<text x="908" y="237" font-family="'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="bold" fill="#E8E8EC">Agents</text>
|
||||
|
||||
<text x="864" y="270" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#D4845A" font-weight="bold">WHEN FLEXIBILITY IS NEEDED</text>
|
||||
|
||||
<rect x="864" y="290" width="332" height="1" fill="#2D3348" fill-opacity="0.5"/>
|
||||
<text x="864" y="318" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">LLMs dynamically direct their</text>
|
||||
<text x="864" y="340" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">own processes and tool usage</text>
|
||||
<text x="864" y="375" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Flexibility at scale</text>
|
||||
<text x="864" y="398" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Model-driven decisions</text>
|
||||
<text x="864" y="421" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">✓ Open-ended problems</text>
|
||||
<text x="864" y="450" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#6B7280">Complexity: ●●●</text>
|
||||
</g>
|
||||
|
||||
<!-- Flow arrows between cards -->
|
||||
<polygon points="424,328 440,318 440,338" fill="#2D3348"/>
|
||||
<polygon points="814,328 830,318 830,338" fill="#2D3348"/>
|
||||
|
||||
<!-- Bottom framework note -->
|
||||
<g id="framework-note">
|
||||
<rect x="60" y="500" width="1160" height="140" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1"/>
|
||||
<use data-icon="chunk/toolbox" x="84" y="524" width="28" height="28" fill="#E8B87D"/>
|
||||
<text x="124" y="546" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" font-weight="bold" fill="#E8B87D">On Frameworks</text>
|
||||
<text x="84" y="580" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">Start by using LLM APIs directly — many patterns can be implemented in a few lines of code.</text>
|
||||
<text x="84" y="606" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">If you do use a framework, ensure you understand the underlying code.</text>
|
||||
<text x="84" y="624" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Incorrect assumptions about what's under the hood are a common source of customer error.</text>
|
||||
</g>
|
||||
|
||||
<!-- Footer -->
|
||||
<g id="footer">
|
||||
<text x="1220" y="700" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="10" fill="#6B7280">03</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.7 KiB |
@@ -0,0 +1,43 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<radialGradient id="bgGlow" cx="50%" cy="30%" r="50%">
|
||||
<stop offset="0%" stop-color="#5B9BD5" stop-opacity="0.05"/>
|
||||
<stop offset="100%" stop-color="#5B9BD5" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1280" height="720" fill="#0F1117"/>
|
||||
<rect width="1280" height="720" fill="url(#bgGlow)"/>
|
||||
|
||||
<!-- Page header -->
|
||||
<g id="header">
|
||||
<rect x="60" y="50" width="4" height="36" rx="2" fill="#D4845A"/>
|
||||
<text x="78" y="80" font-family="'Helvetica Neue', Arial, sans-serif" font-size="32" font-weight="bold" fill="#E8E8EC">Building Block: The Augmented LLM</text>
|
||||
<text x="78" y="108" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#9CA3AF">The foundational unit of all agentic systems</text>
|
||||
</g>
|
||||
|
||||
<!-- Diagram image — top full-width (ultra-wide, breathing layout) -->
|
||||
<g id="diagram">
|
||||
<image href="../images/image.png" x="140" y="135" width="1000" height="417" preserveAspectRatio="xMidYMid meet"/>
|
||||
</g>
|
||||
|
||||
<!-- Key points below diagram — naked text, no cards (breathing) -->
|
||||
<g id="key-points">
|
||||
<rect x="60" y="570" width="1160" height="1" fill="#2D3348" fill-opacity="0.3"/>
|
||||
|
||||
<use data-icon="chunk/layers" x="80" y="592" width="24" height="24" fill="#D4845A"/>
|
||||
<text x="116" y="611" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">LLM enhanced with <tspan font-weight="bold" fill="#D4845A">retrieval</tspan>, <tspan font-weight="bold" fill="#D4845A">tools</tspan>, and <tspan font-weight="bold" fill="#D4845A">memory</tspan></text>
|
||||
|
||||
<use data-icon="chunk/share-nodes" x="560" y="592" width="24" height="24" fill="#5B9BD5"/>
|
||||
<text x="596" y="611" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">Tailor capabilities to your <tspan font-weight="bold" fill="#5B9BD5">specific use case</tspan></text>
|
||||
|
||||
<use data-icon="chunk/link" x="940" y="592" width="24" height="24" fill="#E8B87D"/>
|
||||
<text x="976" y="611" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC"><tspan font-weight="bold" fill="#E8B87D">MCP</tspan> for integration</text>
|
||||
</g>
|
||||
|
||||
<!-- Footer -->
|
||||
<g id="footer">
|
||||
<text x="1220" y="700" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="10" fill="#6B7280">04</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
@@ -0,0 +1,69 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<filter id="cardShadow" x="-15%" y="-15%" width="140%" height="140%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="10"/>
|
||||
<feOffset dx="0" dy="4" result="offsetBlur"/>
|
||||
<feFlood flood-color="#000000" flood-opacity="0.12" result="shadowColor"/>
|
||||
<feComposite in="shadowColor" in2="offsetBlur" operator="in" result="shadow"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadow"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1280" height="720" fill="#0F1117"/>
|
||||
|
||||
<!-- Page header -->
|
||||
<g id="header">
|
||||
<rect x="60" y="40" width="4" height="32" rx="2" fill="#5B9BD5"/>
|
||||
<text x="78" y="66" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#E8E8EC">Workflow: Prompt Chaining</text>
|
||||
</g>
|
||||
|
||||
<!-- Diagram image — top area -->
|
||||
<g id="diagram">
|
||||
<image href="../images/image_1.png" x="80" y="88" width="1120" height="300" preserveAspectRatio="xMidYMid meet"/>
|
||||
</g>
|
||||
|
||||
<!-- Content: two-column below diagram -->
|
||||
<!-- Left: When to use -->
|
||||
<g id="when-to-use">
|
||||
<rect x="60" y="400" width="560" height="260" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<use data-icon="chunk/target" x="84" y="422" width="24" height="24" fill="#5B9BD5"/>
|
||||
<text x="118" y="442" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" font-weight="bold" fill="#5B9BD5">When to Use</text>
|
||||
|
||||
<text x="84" y="478" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">Tasks cleanly decomposed into</text>
|
||||
<text x="84" y="500" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">fixed subtasks.</text>
|
||||
|
||||
<rect x="84" y="518" width="512" height="1" fill="#2D3348" fill-opacity="0.4"/>
|
||||
|
||||
<text x="84" y="546" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">• Decompose task into sequential steps</text>
|
||||
<text x="84" y="571" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">• Each LLM call processes previous output</text>
|
||||
<text x="84" y="596" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">• Add programmatic "gate" checks</text>
|
||||
<text x="84" y="621" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">• Trade latency for higher accuracy</text>
|
||||
</g>
|
||||
|
||||
<!-- Right: Examples -->
|
||||
<g id="examples">
|
||||
<rect x="650" y="400" width="570" height="260" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<use data-icon="chunk/code" x="674" y="422" width="24" height="24" fill="#D4845A"/>
|
||||
<text x="708" y="442" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" font-weight="bold" fill="#D4845A">Examples</text>
|
||||
|
||||
<!-- Example 1 -->
|
||||
<rect x="674" y="470" width="522" height="72" rx="8" fill="#0F1117" stroke="#2D3348" stroke-width="1"/>
|
||||
<text x="694" y="496" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC" font-weight="bold">Marketing Copy Pipeline</text>
|
||||
<text x="694" y="520" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Generate copy → Translate to target language</text>
|
||||
|
||||
<!-- Example 2 -->
|
||||
<rect x="674" y="558" width="522" height="80" rx="8" fill="#0F1117" stroke="#2D3348" stroke-width="1"/>
|
||||
<text x="694" y="584" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC" font-weight="bold">Document Writing Pipeline</text>
|
||||
<text x="694" y="608" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Write outline → Check criteria → Write document</text>
|
||||
<text x="694" y="626" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#6B7280">Each step makes the LLM call an easier task</text>
|
||||
</g>
|
||||
|
||||
<!-- Footer -->
|
||||
<g id="footer">
|
||||
<text x="1220" y="700" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="10" fill="#6B7280">05</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
@@ -0,0 +1,67 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<filter id="cardShadow" x="-15%" y="-15%" width="140%" height="140%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="10"/>
|
||||
<feOffset dx="0" dy="4" result="offsetBlur"/>
|
||||
<feFlood flood-color="#000000" flood-opacity="0.12" result="shadowColor"/>
|
||||
<feComposite in="shadowColor" in2="offsetBlur" operator="in" result="shadow"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadow"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1280" height="720" fill="#0F1117"/>
|
||||
|
||||
<!-- Page header -->
|
||||
<g id="header">
|
||||
<rect x="60" y="40" width="4" height="32" rx="2" fill="#5B9BD5"/>
|
||||
<text x="78" y="66" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#E8E8EC">Workflow: Routing</text>
|
||||
</g>
|
||||
|
||||
<!-- Diagram image — top area -->
|
||||
<g id="diagram">
|
||||
<image href="../images/image_2.png" x="80" y="88" width="1120" height="300" preserveAspectRatio="xMidYMid meet"/>
|
||||
</g>
|
||||
|
||||
<!-- Content: two-column below -->
|
||||
<g id="when-to-use">
|
||||
<rect x="60" y="400" width="560" height="260" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<use data-icon="chunk/route" x="84" y="422" width="24" height="24" fill="#5B9BD5"/>
|
||||
<text x="118" y="442" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" font-weight="bold" fill="#5B9BD5">When to Use</text>
|
||||
|
||||
<text x="84" y="478" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">Distinct categories that are better</text>
|
||||
<text x="84" y="500" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">handled separately.</text>
|
||||
|
||||
<rect x="84" y="518" width="512" height="1" fill="#2D3348" fill-opacity="0.4"/>
|
||||
|
||||
<text x="84" y="546" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">• Classify input → direct to specialized task</text>
|
||||
<text x="84" y="571" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">• Separation of concerns</text>
|
||||
<text x="84" y="596" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">• More specialized prompts per category</text>
|
||||
<text x="84" y="621" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">• Prevents cross-optimization interference</text>
|
||||
</g>
|
||||
|
||||
<g id="examples">
|
||||
<rect x="650" y="400" width="570" height="260" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<use data-icon="chunk/arrow-right" x="674" y="422" width="24" height="24" fill="#D4845A"/>
|
||||
<text x="708" y="442" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" font-weight="bold" fill="#D4845A">Examples</text>
|
||||
|
||||
<!-- Example 1 -->
|
||||
<rect x="674" y="470" width="522" height="72" rx="8" fill="#0F1117" stroke="#2D3348" stroke-width="1"/>
|
||||
<text x="694" y="496" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC" font-weight="bold">Customer Service Query Routing</text>
|
||||
<text x="694" y="520" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">General Q's → Refund requests → Technical support</text>
|
||||
|
||||
<!-- Example 2 -->
|
||||
<rect x="674" y="558" width="522" height="80" rx="8" fill="#0F1117" stroke="#2D3348" stroke-width="1"/>
|
||||
<text x="694" y="584" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC" font-weight="bold">Model Selection by Difficulty</text>
|
||||
<text x="694" y="608" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Easy → Haiku (cost-efficient)</text>
|
||||
<text x="694" y="626" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Hard → Sonnet (capable)</text>
|
||||
</g>
|
||||
|
||||
<!-- Footer -->
|
||||
<g id="footer">
|
||||
<text x="1220" y="700" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="10" fill="#6B7280">06</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
@@ -0,0 +1,76 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<filter id="cardShadow" x="-15%" y="-15%" width="140%" height="140%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="10"/>
|
||||
<feOffset dx="0" dy="4" result="offsetBlur"/>
|
||||
<feFlood flood-color="#000000" flood-opacity="0.12" result="shadowColor"/>
|
||||
<feComposite in="shadowColor" in2="offsetBlur" operator="in" result="shadow"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadow"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1280" height="720" fill="#0F1117"/>
|
||||
|
||||
<!-- Page header -->
|
||||
<g id="header">
|
||||
<rect x="60" y="40" width="4" height="32" rx="2" fill="#5B9BD5"/>
|
||||
<text x="78" y="66" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#E8E8EC">Workflow: Parallelization</text>
|
||||
</g>
|
||||
|
||||
<!-- Diagram image — top area -->
|
||||
<g id="diagram">
|
||||
<image href="../images/image_3.png" x="80" y="88" width="1120" height="280" preserveAspectRatio="xMidYMid meet"/>
|
||||
</g>
|
||||
|
||||
<!-- Two-column below: Sectioning | Voting -->
|
||||
<g id="sectioning-card">
|
||||
<rect x="60" y="385" width="570" height="275" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<rect x="60" y="385" width="570" height="6" rx="3" fill="#5B9BD5"/>
|
||||
<use data-icon="chunk/grid" x="84" y="412" width="24" height="24" fill="#5B9BD5"/>
|
||||
<text x="118" y="432" font-family="'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="bold" fill="#5B9BD5">Sectioning</text>
|
||||
<text x="84" y="460" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">Break task into independent subtasks</text>
|
||||
<text x="84" y="482" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">and run them in parallel.</text>
|
||||
|
||||
<rect x="84" y="500" width="522" height="1" fill="#2D3348" fill-opacity="0.4"/>
|
||||
|
||||
<use data-icon="chunk/shield-check" x="84" y="520" width="18" height="18" fill="#9CA3AF"/>
|
||||
<text x="112" y="535" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Guardrails: one instance processes queries,</text>
|
||||
<text x="112" y="553" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">another screens for inappropriate content</text>
|
||||
|
||||
<use data-icon="chunk/target" x="84" y="572" width="18" height="18" fill="#9CA3AF"/>
|
||||
<text x="112" y="587" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Automated evals: each LLM evaluates a</text>
|
||||
<text x="112" y="605" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">different aspect of model performance</text>
|
||||
|
||||
<text x="84" y="640" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#6B7280">Tends to perform better than single-call handling</text>
|
||||
</g>
|
||||
|
||||
<g id="voting-card">
|
||||
<rect x="660" y="385" width="560" height="275" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<rect x="660" y="385" width="560" height="6" rx="3" fill="#D4845A"/>
|
||||
<use data-icon="chunk/layers" x="684" y="412" width="24" height="24" fill="#D4845A"/>
|
||||
<text x="718" y="432" font-family="'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="bold" fill="#D4845A">Voting</text>
|
||||
<text x="684" y="460" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">Run the same task multiple times</text>
|
||||
<text x="684" y="482" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">to get diverse outputs.</text>
|
||||
|
||||
<rect x="684" y="500" width="512" height="1" fill="#2D3348" fill-opacity="0.4"/>
|
||||
|
||||
<use data-icon="chunk/code" x="684" y="520" width="18" height="18" fill="#9CA3AF"/>
|
||||
<text x="712" y="535" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Code vulnerability review with multiple</text>
|
||||
<text x="712" y="553" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">prompts flagging issues independently</text>
|
||||
|
||||
<use data-icon="chunk/eye" x="684" y="572" width="18" height="18" fill="#9CA3AF"/>
|
||||
<text x="712" y="587" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Content moderation with different vote</text>
|
||||
<text x="712" y="605" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">thresholds balancing FP/FN rates</text>
|
||||
|
||||
<text x="684" y="640" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#6B7280">Higher confidence through multiple perspectives</text>
|
||||
</g>
|
||||
|
||||
<!-- Footer -->
|
||||
<g id="footer">
|
||||
<text x="1220" y="700" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="10" fill="#6B7280">07</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
@@ -0,0 +1,80 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<filter id="cardShadow" x="-15%" y="-15%" width="140%" height="140%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="10"/>
|
||||
<feOffset dx="0" dy="4" result="offsetBlur"/>
|
||||
<feFlood flood-color="#000000" flood-opacity="0.12" result="shadowColor"/>
|
||||
<feComposite in="shadowColor" in2="offsetBlur" operator="in" result="shadow"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadow"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1280" height="720" fill="#0F1117"/>
|
||||
|
||||
<!-- Page header -->
|
||||
<g id="header">
|
||||
<rect x="60" y="40" width="4" height="32" rx="2" fill="#5B9BD5"/>
|
||||
<text x="78" y="66" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#E8E8EC">Workflow: Orchestrator-Workers</text>
|
||||
</g>
|
||||
|
||||
<!-- Diagram image -->
|
||||
<g id="diagram">
|
||||
<image href="../images/image_4.png" x="80" y="88" width="1120" height="280" preserveAspectRatio="xMidYMid meet"/>
|
||||
</g>
|
||||
|
||||
<!-- Content: two-column -->
|
||||
<g id="how-it-works">
|
||||
<rect x="60" y="385" width="560" height="275" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<use data-icon="chunk/cog" x="84" y="410" width="24" height="24" fill="#5B9BD5"/>
|
||||
<text x="118" y="430" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" font-weight="bold" fill="#5B9BD5">How It Works</text>
|
||||
|
||||
<text x="84" y="466" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">A central LLM dynamically:</text>
|
||||
|
||||
<rect x="100" y="484" width="8" height="8" rx="4" fill="#5B9BD5"/>
|
||||
<text x="120" y="493" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">Breaks down tasks into subtasks</text>
|
||||
|
||||
<rect x="100" y="512" width="8" height="8" rx="4" fill="#5B9BD5"/>
|
||||
<text x="120" y="521" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">Delegates to worker LLMs</text>
|
||||
|
||||
<rect x="100" y="540" width="8" height="8" rx="4" fill="#5B9BD5"/>
|
||||
<text x="120" y="549" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">Synthesizes their results</text>
|
||||
|
||||
<rect x="84" y="572" width="512" height="1" fill="#2D3348" fill-opacity="0.4"/>
|
||||
|
||||
<use data-icon="chunk/lightbulb" x="84" y="588" width="18" height="18" fill="#E8B87D"/>
|
||||
<text x="112" y="603" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#E8B87D" font-weight="bold">Key difference from parallelization:</text>
|
||||
<text x="112" y="623" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Subtasks are not pre-defined, but determined</text>
|
||||
<text x="112" y="641" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">dynamically by the orchestrator based on input</text>
|
||||
</g>
|
||||
|
||||
<g id="use-cases">
|
||||
<rect x="650" y="385" width="570" height="275" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<use data-icon="chunk/cube" x="674" y="410" width="24" height="24" fill="#D4845A"/>
|
||||
<text x="708" y="430" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" font-weight="bold" fill="#D4845A">Use Cases</text>
|
||||
|
||||
<text x="674" y="466" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">Complex tasks where subtasks</text>
|
||||
<text x="674" y="488" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">can't be predicted in advance.</text>
|
||||
|
||||
<rect x="674" y="510" width="522" height="1" fill="#2D3348" fill-opacity="0.4"/>
|
||||
|
||||
<!-- Example 1 -->
|
||||
<rect x="674" y="530" width="522" height="68" rx="8" fill="#0F1117" stroke="#2D3348" stroke-width="1"/>
|
||||
<use data-icon="chunk/code" x="690" y="548" width="20" height="20" fill="#D4845A"/>
|
||||
<text x="720" y="558" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC" font-weight="bold">Multi-file Code Changes</text>
|
||||
<text x="720" y="580" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#9CA3AF">Number and nature of changes depend on the task</text>
|
||||
|
||||
<!-- Example 2 -->
|
||||
<rect x="674" y="612" width="522" height="36" rx="8" fill="#0F1117" stroke="#2D3348" stroke-width="1"/>
|
||||
<use data-icon="chunk/server" x="690" y="620" width="20" height="20" fill="#D4845A"/>
|
||||
<text x="720" y="636" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC" font-weight="bold">Multi-source Search & Analysis</text>
|
||||
</g>
|
||||
|
||||
<!-- Footer -->
|
||||
<g id="footer">
|
||||
<text x="1220" y="700" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="10" fill="#6B7280">08</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.7 KiB |
@@ -0,0 +1,77 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<filter id="cardShadow" x="-15%" y="-15%" width="140%" height="140%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="10"/>
|
||||
<feOffset dx="0" dy="4" result="offsetBlur"/>
|
||||
<feFlood flood-color="#000000" flood-opacity="0.12" result="shadowColor"/>
|
||||
<feComposite in="shadowColor" in2="offsetBlur" operator="in" result="shadow"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadow"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1280" height="720" fill="#0F1117"/>
|
||||
|
||||
<!-- Page header -->
|
||||
<g id="header">
|
||||
<rect x="60" y="40" width="4" height="32" rx="2" fill="#5B9BD5"/>
|
||||
<text x="78" y="66" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#E8E8EC">Workflow: Evaluator-Optimizer</text>
|
||||
</g>
|
||||
|
||||
<!-- Diagram image -->
|
||||
<g id="diagram">
|
||||
<image href="../images/image_5.png" x="80" y="88" width="1120" height="280" preserveAspectRatio="xMidYMid meet"/>
|
||||
</g>
|
||||
|
||||
<!-- Content: two-column -->
|
||||
<g id="mechanism">
|
||||
<rect x="60" y="385" width="560" height="275" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<use data-icon="chunk/arrows-repeat" x="84" y="410" width="24" height="24" fill="#5B9BD5"/>
|
||||
<text x="118" y="430" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" font-weight="bold" fill="#5B9BD5">Mechanism</text>
|
||||
|
||||
<text x="84" y="466" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">One LLM generates a response,</text>
|
||||
<text x="84" y="488" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">another evaluates in a feedback loop.</text>
|
||||
|
||||
<rect x="84" y="510" width="512" height="1" fill="#2D3348" fill-opacity="0.4"/>
|
||||
|
||||
<text x="84" y="540" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC" font-weight="bold">Two signs of good fit:</text>
|
||||
|
||||
<text x="100" y="568" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#4ADE80">①</text>
|
||||
<text x="120" y="568" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#E8E8EC">Human feedback demonstrably</text>
|
||||
<text x="120" y="586" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#E8E8EC">improves LLM responses</text>
|
||||
|
||||
<text x="100" y="616" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#4ADE80">②</text>
|
||||
<text x="120" y="616" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#E8E8EC">The LLM itself can provide</text>
|
||||
<text x="120" y="634" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#E8E8EC">such feedback reliably</text>
|
||||
</g>
|
||||
|
||||
<g id="examples">
|
||||
<rect x="650" y="385" width="570" height="275" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<use data-icon="chunk/eye" x="674" y="410" width="24" height="24" fill="#D4845A"/>
|
||||
<text x="708" y="430" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" font-weight="bold" fill="#D4845A">Examples</text>
|
||||
|
||||
<text x="674" y="466" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">Clear evaluation criteria and</text>
|
||||
<text x="674" y="488" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#E8E8EC">measurable iterative refinement.</text>
|
||||
|
||||
<rect x="674" y="510" width="522" height="1" fill="#2D3348" fill-opacity="0.4"/>
|
||||
|
||||
<!-- Example 1 -->
|
||||
<rect x="674" y="530" width="522" height="68" rx="8" fill="#0F1117" stroke="#2D3348" stroke-width="1"/>
|
||||
<use data-icon="chunk/book-open" x="690" y="548" width="20" height="20" fill="#D4845A"/>
|
||||
<text x="720" y="558" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC" font-weight="bold">Literary Translation</text>
|
||||
<text x="720" y="580" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#9CA3AF">Evaluator catches nuances the translator missed</text>
|
||||
|
||||
<!-- Example 2 -->
|
||||
<rect x="674" y="612" width="522" height="42" rx="8" fill="#0F1117" stroke="#2D3348" stroke-width="1"/>
|
||||
<use data-icon="chunk/target" x="690" y="622" width="20" height="20" fill="#D4845A"/>
|
||||
<text x="720" y="640" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC" font-weight="bold">Complex Multi-round Search</text>
|
||||
</g>
|
||||
|
||||
<!-- Footer -->
|
||||
<g id="footer">
|
||||
<text x="1220" y="700" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="10" fill="#6B7280">09</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.6 KiB |
@@ -0,0 +1,55 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<radialGradient id="agentGlow" cx="50%" cy="40%" r="50%">
|
||||
<stop offset="0%" stop-color="#D4845A" stop-opacity="0.08"/>
|
||||
<stop offset="100%" stop-color="#D4845A" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1280" height="720" fill="#0F1117"/>
|
||||
<rect width="1280" height="720" fill="url(#agentGlow)"/>
|
||||
|
||||
<!-- Page header -->
|
||||
<g id="header">
|
||||
<rect x="60" y="50" width="4" height="36" rx="2" fill="#D4845A"/>
|
||||
<text x="78" y="80" font-family="'Helvetica Neue', Arial, sans-serif" font-size="32" font-weight="bold" fill="#E8E8EC">Agents: Autonomous LLM Systems</text>
|
||||
</g>
|
||||
|
||||
<!-- Diagram: centered, breathing-style hero -->
|
||||
<g id="diagram">
|
||||
<image href="../images/image_6.png" x="200" y="110" width="880" height="367" preserveAspectRatio="xMidYMid meet"/>
|
||||
</g>
|
||||
|
||||
<!-- Key capability tags below diagram — horizontal strip, naked text -->
|
||||
<g id="capabilities">
|
||||
<rect x="60" y="500" width="1160" height="1" fill="#2D3348" fill-opacity="0.3"/>
|
||||
|
||||
<!-- Tag-style capabilities -->
|
||||
<rect x="80" y="520" width="200" height="36" rx="18" fill="#D4845A" fill-opacity="0.12" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3"/>
|
||||
<text x="180" y="544" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#D4845A">Complex Inputs</text>
|
||||
|
||||
<rect x="300" y="520" width="220" height="36" rx="18" fill="#D4845A" fill-opacity="0.12" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3"/>
|
||||
<text x="410" y="544" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#D4845A">Reasoning & Planning</text>
|
||||
|
||||
<rect x="540" y="520" width="200" height="36" rx="18" fill="#D4845A" fill-opacity="0.12" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3"/>
|
||||
<text x="640" y="544" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#D4845A">Reliable Tool Use</text>
|
||||
|
||||
<rect x="760" y="520" width="200" height="36" rx="18" fill="#D4845A" fill-opacity="0.12" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3"/>
|
||||
<text x="860" y="544" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#D4845A">Error Recovery</text>
|
||||
|
||||
<rect x="980" y="520" width="200" height="36" rx="18" fill="#D4845A" fill-opacity="0.12" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3"/>
|
||||
<text x="1080" y="544" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#D4845A">Human Checkpoints</text>
|
||||
</g>
|
||||
|
||||
<!-- Bottom insight text — breathing style, no cards -->
|
||||
<g id="insight">
|
||||
<text x="640" y="596" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" fill="#E8E8EC">Implementation is often straightforward: <tspan font-weight="bold" fill="#E8B87D">LLMs using tools in a loop.</tspan></text>
|
||||
<text x="640" y="628" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="16" fill="#9CA3AF">Higher costs + compounding errors → extensive testing in sandboxed environments + guardrails.</text>
|
||||
</g>
|
||||
|
||||
<!-- Footer -->
|
||||
<g id="footer">
|
||||
<text x="1220" y="700" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="10" fill="#6B7280">10</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
@@ -0,0 +1,84 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<filter id="cardShadow" x="-15%" y="-15%" width="140%" height="140%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="10"/>
|
||||
<feOffset dx="0" dy="4" result="offsetBlur"/>
|
||||
<feFlood flood-color="#000000" flood-opacity="0.12" result="shadowColor"/>
|
||||
<feComposite in="shadowColor" in2="offsetBlur" operator="in" result="shadow"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadow"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1280" height="720" fill="#0F1117"/>
|
||||
|
||||
<!-- Page header -->
|
||||
<g id="header">
|
||||
<rect x="60" y="40" width="4" height="32" rx="2" fill="#D4845A"/>
|
||||
<text x="78" y="66" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#E8E8EC">Agents in Practice</text>
|
||||
<text x="78" y="92" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">Two promising applications demonstrating practical value</text>
|
||||
</g>
|
||||
|
||||
<!-- Left side: two application cards stacked -->
|
||||
<!-- Customer Support -->
|
||||
<g id="customer-support">
|
||||
<rect x="60" y="115" width="550" height="248" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<rect x="60" y="115" width="6" height="248" rx="3" fill="#5B9BD5"/>
|
||||
<text x="86" y="148" font-family="'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="bold" fill="#5B9BD5">A. Customer Support</text>
|
||||
|
||||
<text x="86" y="180" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">Natural fit for open-ended agents:</text>
|
||||
|
||||
<use data-icon="chunk/share-nodes" x="86" y="200" width="16" height="16" fill="#9CA3AF"/>
|
||||
<text x="112" y="214" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Conversation flow + external information access</text>
|
||||
|
||||
<use data-icon="chunk/toolbox" x="86" y="226" width="16" height="16" fill="#9CA3AF"/>
|
||||
<text x="112" y="240" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Tools for customer data, orders, knowledge base</text>
|
||||
|
||||
<use data-icon="chunk/code" x="86" y="252" width="16" height="16" fill="#9CA3AF"/>
|
||||
<text x="112" y="266" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Programmatic actions (refunds, ticket updates)</text>
|
||||
|
||||
<use data-icon="chunk/checkmark" x="86" y="278" width="16" height="16" fill="#9CA3AF"/>
|
||||
<text x="112" y="292" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Measurable success via user-defined resolutions</text>
|
||||
|
||||
<rect x="86" y="310" width="500" height="1" fill="#2D3348" fill-opacity="0.4"/>
|
||||
<text x="86" y="337" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#E8B87D">Usage-based pricing — charge only for successful resolutions</text>
|
||||
</g>
|
||||
|
||||
<!-- Coding Agents -->
|
||||
<g id="coding-agents">
|
||||
<rect x="60" y="388" width="550" height="272" rx="12" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<rect x="60" y="388" width="6" height="272" rx="3" fill="#D4845A"/>
|
||||
<text x="86" y="421" font-family="'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="bold" fill="#D4845A">B. Coding Agents</text>
|
||||
|
||||
<text x="86" y="453" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#E8E8EC">Remarkable potential — agents are effective because:</text>
|
||||
|
||||
<use data-icon="chunk/badge-check" x="86" y="473" width="16" height="16" fill="#9CA3AF"/>
|
||||
<text x="112" y="487" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Code solutions verifiable via automated tests</text>
|
||||
|
||||
<use data-icon="chunk/arrows-repeat" x="86" y="499" width="16" height="16" fill="#9CA3AF"/>
|
||||
<text x="112" y="513" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Iterate using test results as feedback</text>
|
||||
|
||||
<use data-icon="chunk/layers" x="86" y="525" width="16" height="16" fill="#9CA3AF"/>
|
||||
<text x="112" y="539" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Well-defined and structured problem space</text>
|
||||
|
||||
<use data-icon="chunk/target" x="86" y="551" width="16" height="16" fill="#9CA3AF"/>
|
||||
<text x="112" y="565" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#9CA3AF">Output quality measured objectively</text>
|
||||
|
||||
<rect x="86" y="583" width="500" height="1" fill="#2D3348" fill-opacity="0.4"/>
|
||||
<text x="86" y="606" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#E8B87D">SWE-bench: solving real GitHub issues from PR descriptions alone</text>
|
||||
<text x="86" y="628" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#6B7280">More time optimizing tools than the overall prompt</text>
|
||||
</g>
|
||||
|
||||
<!-- Right side: Coding agent flow diagram -->
|
||||
<g id="coding-flow">
|
||||
<image href="../images/image_7.png" x="640" y="115" width="580" height="545" preserveAspectRatio="xMidYMid meet"/>
|
||||
</g>
|
||||
|
||||
<!-- Footer -->
|
||||
<g id="footer">
|
||||
<text x="1220" y="700" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="10" fill="#6B7280">11</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.2 KiB |
@@ -0,0 +1,90 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
|
||||
<defs>
|
||||
<radialGradient id="bgGlow1" cx="50%" cy="40%" r="50%">
|
||||
<stop offset="0%" stop-color="#D4845A" stop-opacity="0.08"/>
|
||||
<stop offset="100%" stop-color="#D4845A" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="numberGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#D4845A"/>
|
||||
<stop offset="100%" stop-color="#E8B87D"/>
|
||||
</linearGradient>
|
||||
<filter id="cardShadow" x="-15%" y="-15%" width="140%" height="140%">
|
||||
<feGaussianBlur in="SourceAlpha" stdDeviation="10"/>
|
||||
<feOffset dx="0" dy="4" result="offsetBlur"/>
|
||||
<feFlood flood-color="#000000" flood-opacity="0.12" result="shadowColor"/>
|
||||
<feComposite in="shadowColor" in2="offsetBlur" operator="in" result="shadow"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadow"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1280" height="720" fill="#0F1117"/>
|
||||
<rect width="1280" height="720" fill="url(#bgGlow1)"/>
|
||||
|
||||
<!-- Decorative rings -->
|
||||
<circle cx="180" cy="600" r="70" fill="none" stroke="#D4845A" stroke-opacity="0.06" stroke-width="1"/>
|
||||
<circle cx="1100" cy="140" r="90" fill="none" stroke="#5B9BD5" stroke-opacity="0.05" stroke-width="1"/>
|
||||
|
||||
<!-- Page header -->
|
||||
<g id="header">
|
||||
<text x="640" y="80" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="36" font-weight="bold" fill="#E8E8EC">Three Core Principles</text>
|
||||
<rect x="570" y="95" width="140" height="4" rx="2" fill="url(#numberGrad)"/>
|
||||
</g>
|
||||
|
||||
<!-- Three principle cards — horizontal -->
|
||||
<!-- Principle 1: Simplicity -->
|
||||
<g id="principle-1">
|
||||
<rect x="60" y="140" width="370" height="310" rx="14" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<circle cx="245" cy="210" r="40" fill="#D4845A" fill-opacity="0.12" stroke="#D4845A" stroke-width="1.5" stroke-opacity="0.4"/>
|
||||
<text x="245" y="222" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#D4845A">1</text>
|
||||
|
||||
<use data-icon="chunk/star" x="221" y="268" width="48" height="48" fill="#D4845A"/>
|
||||
<text x="245" y="346" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="22" font-weight="bold" fill="#E8E8EC">Simplicity</text>
|
||||
<text x="245" y="380" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">Maintain simplicity in your</text>
|
||||
<text x="245" y="400" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">agent's design. Build the right</text>
|
||||
<text x="245" y="420" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">system, not the most sophisticated.</text>
|
||||
</g>
|
||||
|
||||
<!-- Principle 2: Transparency -->
|
||||
<g id="principle-2">
|
||||
<rect x="455" y="140" width="370" height="310" rx="14" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<circle cx="640" cy="210" r="40" fill="#5B9BD5" fill-opacity="0.12" stroke="#5B9BD5" stroke-width="1.5" stroke-opacity="0.4"/>
|
||||
<text x="640" y="222" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#5B9BD5">2</text>
|
||||
|
||||
<use data-icon="chunk/eye" x="616" y="268" width="48" height="48" fill="#5B9BD5"/>
|
||||
<text x="640" y="346" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="22" font-weight="bold" fill="#E8E8EC">Transparency</text>
|
||||
<text x="640" y="380" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">Prioritize transparency by</text>
|
||||
<text x="640" y="400" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">explicitly showing the agent's</text>
|
||||
<text x="640" y="420" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">planning steps.</text>
|
||||
</g>
|
||||
|
||||
<!-- Principle 3: ACI Design -->
|
||||
<g id="principle-3">
|
||||
<rect x="850" y="140" width="370" height="310" rx="14" fill="#1A1D27" stroke="#2D3348" stroke-width="1" filter="url(#cardShadow)"/>
|
||||
<circle cx="1035" cy="210" r="40" fill="#E8B87D" fill-opacity="0.12" stroke="#E8B87D" stroke-width="1.5" stroke-opacity="0.4"/>
|
||||
<text x="1035" y="222" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="28" font-weight="bold" fill="#E8B87D">3</text>
|
||||
|
||||
<use data-icon="chunk/toolbox" x="1011" y="268" width="48" height="48" fill="#E8B87D"/>
|
||||
<text x="1035" y="346" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="22" font-weight="bold" fill="#E8E8EC">ACI Design</text>
|
||||
<text x="1035" y="380" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">Craft your agent-computer</text>
|
||||
<text x="1035" y="400" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">interface through thorough tool</text>
|
||||
<text x="1035" y="420" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="15" fill="#9CA3AF">documentation and testing.</text>
|
||||
</g>
|
||||
|
||||
<!-- Bottom summary -->
|
||||
<g id="summary">
|
||||
<rect x="140" y="490" width="1000" height="100" rx="12" fill="#1A1D27" stroke="#D4845A" stroke-width="1" stroke-opacity="0.3"/>
|
||||
<text x="640" y="533" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" fill="#E8E8EC">Start with <tspan font-weight="bold" fill="#D4845A">simple prompts</tspan> → optimize with <tspan font-weight="bold" fill="#5B9BD5">comprehensive evaluation</tspan></text>
|
||||
<text x="640" y="562" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="18" fill="#E8E8EC">→ add agentic systems only when <tspan font-weight="bold" fill="#E8B87D">simpler solutions fall short</tspan></text>
|
||||
</g>
|
||||
|
||||
<!-- Footer -->
|
||||
<g id="footer">
|
||||
<rect x="0" y="660" width="1280" height="1" fill="#2D3348" fill-opacity="0.3"/>
|
||||
<text x="60" y="692" font-family="'Helvetica Neue', Arial, sans-serif" font-size="14" fill="#6B7280">Anthropic Engineering · Building Effective Agents</text>
|
||||
<text x="1220" y="692" text-anchor="end" font-family="'Helvetica Neue', Arial, sans-serif" font-size="10" fill="#6B7280">12</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.4 KiB |