Skip to content

Commit 491bc2b

Browse files
Convert 73 Typst tables to Markdown across 29 chapters
Co-authored-by: Ona <no-reply@ona.com>
1 parent a9a56c5 commit 491bc2b

29 files changed

Lines changed: 616 additions & 1888 deletions

src/content/chapters/01-agentic-landscape.mdx

Lines changed: 35 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -34,34 +34,15 @@ next based on what it observes.
3434

3535
The distinction matters because it changes the engineering requirements:
3636

37-
#align(center)[#table(
38-
columns: 3,
39-
align: (col, row) => (auto,auto,auto,).at(col),
40-
inset: 6pt,
41-
[Dimension], [Chatbot], [Agent],
42-
[**Actions**],
43-
[Generates text],
44-
[Executes code, calls APIs, modifies systems],
45-
[**Autonomy**],
46-
[Responds to prompts],
47-
[Decides what to do next],
48-
[**Duration**],
49-
[Single turn],
50-
[Minutes to hours],
51-
[**Risk**],
52-
[Wrong answer],
53-
[Wrong action (data loss, security breach, cost overrun)],
54-
[**Authorization**],
55-
[User’s permissions],
56-
[Needs its own permission model],
57-
[**Observability**],
58-
[Log the response],
59-
[Trace every decision and action],
60-
[**Failure mode**],
61-
[Bad text],
62-
[Production incident],
63-
)
64-
]
37+
| Dimension | Chatbot | Agent |
38+
| --- | --- | --- |
39+
| **Actions** | Generates text | Executes code, calls APIs, modifies systems |
40+
| **Autonomy** | Responds to prompts | Decides what to do next |
41+
| **Duration** | Single turn | Minutes to hours |
42+
| **Risk** | Wrong answer | Wrong action (data loss, security breach, cost overrun) |
43+
| **Authorization** | User’s permissions | Needs its own permission model |
44+
| **Observability** | Log the response | Trace every decision and action |
45+
| **Failure mode** | Bad text | Production incident |
6546

6647
When you deploy an agent, you’re deploying a system that can act on your
6748
infrastructure. That’s a fundamentally different engineering problem
@@ -156,98 +137,39 @@ The agent ecosystem has consolidated around a few key players and
156137
patterns.
157138

158139
### Frameworks
159-
#align(center)[#table(
160-
columns: 4,
161-
align: (col, row) => (auto,auto,auto,auto,).at(col),
162-
inset: 6pt,
163-
[Framework], [Version], [Strengths], [Best For],
164-
[[**LangChain / LangGraph**](https://github.com/langchain-ai/langchain)],
165-
[v1.1.0],
166-
[Mature ecosystem, graph-based orchestration],
167-
[Complex multi-step workflows],
168-
[[**CrewAI**](https://github.com/crewAIInc/crewAI)],
169-
[v1.9.0],
170-
[Role-based agents, simple API],
171-
[Team-of-agents patterns],
172-
[[**OpenAI Agents SDK**](https://github.com/openai/openai-agents-python)],
173-
[GA (Mar 2025)],
174-
[Native OpenAI integration, handoffs],
175-
[OpenAI-first teams],
176-
[[**Anthropic Claude Code**](https://docs.anthropic.com/en/docs/claude-code)],
177-
[Production],
178-
[Deep codebase understanding, tool use],
179-
[Software engineering tasks],
180-
[[**Microsoft AutoGen**](https://github.com/microsoft/autogen)],
181-
[v0.4],
182-
[Multi-agent conversations, research-grade],
183-
[Research and experimentation],
184-
[[**Goose (Block)**](https://github.com/block/goose)],
185-
[Open source],
186-
[MCP-native, extensible, observable],
187-
[Production agent deployments],
188-
)
189-
]
140+
| Framework | Version | Strengths | Best For |
141+
| --- | --- | --- | --- |
142+
| [**LangChain / LangGraph**](https://github.com/langchain-ai/langchain) | v1.1.0 | Mature ecosystem, graph-based orchestration | Complex multi-step workflows |
143+
| [**CrewAI**](https://github.com/crewAIInc/crewAI) | v1.9.0 | Role-based agents, simple API | Team-of-agents patterns |
144+
| [**OpenAI Agents SDK**](https://github.com/openai/openai-agents-python) | GA (Mar 2025) | Native OpenAI integration, handoffs | OpenAI-first teams |
145+
| [**Anthropic Claude Code**](https://docs.anthropic.com/en/docs/claude-code) | Production | Deep codebase understanding, tool use | Software engineering tasks |
146+
| [**Microsoft AutoGen**](https://github.com/microsoft/autogen) | v0.4 | Multi-agent conversations, research-grade | Research and experimentation |
147+
| [**Goose (Block)**](https://github.com/block/goose) | Open source | MCP-native, extensible, observable | Production agent deployments |
190148

191149
### Coding agents in production
192-
#align(center)[#table(
193-
columns: 3,
194-
align: (col, row) => (auto,auto,auto,).at(col),
195-
inset: 6pt,
196-
[Agent], [Deployment Model], [Notable Capability],
197-
[[**Ona**](https://ona.com)],
198-
[Cloud (sandboxed environments)],
199-
[Autonomous end-to-end: plans, codes, builds, tests, opens PRs. Each
150+
| Agent | Deployment Model | Notable Capability |
151+
| --- | --- | --- |
152+
| [**Ona**](https://ona.com) | Cloud (sandboxed environments) | Autonomous end-to-end: plans, codes, builds, tests, opens PRs. Each
200153
agent gets an isolated ephemeral environment. Fleet-scale parallelism
201-
for migrations. Runs in your VPC.],
202-
[[**Claude Code**](https://docs.anthropic.com/en/docs/claude-code)],
203-
[CLI + IDE],
204-
[Full codebase reasoning, multi-file edits],
205-
[[**OpenAI Codex**](https://openai.com/index/introducing-codex/)],
206-
[Cloud-based],
207-
[Parallel task execution, sandboxed],
208-
[[**Cursor**](https://cursor.com)],
209-
[IDE-integrated],
210-
[Real-time code generation, tab completion],
211-
[[**Windsurf**](https://windsurf.com)],
212-
[IDE-integrated],
213-
[Cascade multi-file editing],
214-
[[**Devin**](https://devin.ai)],
215-
[Autonomous],
216-
[End-to-end task completion],
217-
[[**GitHub Copilot**](https://github.com/features/copilot)],
218-
[IDE + CLI],
219-
[Workspace-aware, agent mode],
220-
)
221-
]
154+
for migrations. Runs in your VPC. |
155+
| [**Claude Code**](https://docs.anthropic.com/en/docs/claude-code) | CLI + IDE | Full codebase reasoning, multi-file edits |
156+
| [**OpenAI Codex**](https://openai.com/index/introducing-codex/) | Cloud-based | Parallel task execution, sandboxed |
157+
| [**Cursor**](https://cursor.com) | IDE-integrated | Real-time code generation, tab completion |
158+
| [**Windsurf**](https://windsurf.com) | IDE-integrated | Cascade multi-file editing |
159+
| [**Devin**](https://devin.ai) | Autonomous | End-to-end task completion |
160+
| [**GitHub Copilot**](https://github.com/features/copilot) | IDE + CLI | Workspace-aware, agent mode |
222161

223162
### The numbers
224163
The adoption numbers tell a clear story:
225164

226-
#align(center)[#table(
227-
columns: 3,
228-
align: (col, row) => (auto,auto,auto,).at(col),
229-
inset: 6pt,
230-
[Metric], [Value], [Source],
231-
[Fortune 500 companies using AI agents],
232-
[80%],
233-
[Microsoft Security Blog, Feb 2026],
234-
[Coding tasks that are AI-assisted],
235-
[~60%],
236-
[Anthropic Agentic Coding Trends, 2026],
237-
[Enterprises already using AI agents],
238-
[65%],
239-
[CrewAI State of Agentic AI, Feb 2026],
240-
[MCP servers publicly visible],
241-
[8,000+],
242-
[Security researchers, Feb 2026],
243-
[MCP SDK monthly downloads],
244-
[97M+],
245-
[npm/PyPI, Jan 2026],
246-
[Projects with AGENTS.md],
247-
[60,000+],
248-
[GitHub, Jan 2026],
249-
)
250-
]
165+
| Metric | Value | Source |
166+
| --- | --- | --- |
167+
| Fortune 500 companies using AI agents | 80% | Microsoft Security Blog, Feb 2026 |
168+
| Coding tasks that are AI-assisted | ~60% | Anthropic Agentic Coding Trends, 2026 |
169+
| Enterprises already using AI agents | 65% | CrewAI State of Agentic AI, Feb 2026 |
170+
| MCP servers publicly visible | 8,000+ | Security researchers, Feb 2026 |
171+
| MCP SDK monthly downloads | 97M+ | npm/PyPI, Jan 2026 |
172+
| Projects with AGENTS.md | 60,000+ | GitHub, Jan 2026 |
251173

252174
## Why "agentic engineering" is a discipline
253175
Building with agents isn’t just "using AI tools." It requires new

src/content/chapters/02-capability-jump.mdx

Lines changed: 17 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -252,21 +252,12 @@ Lattner’s key observations:
252252

253253
What this means for your agent strategy:
254254

255-
#align(center)[#table(
256-
columns: 2,
257-
align: (col, row) => (auto,auto,).at(col),
258-
inset: 6pt,
259-
[Before CCC], [After CCC],
260-
[Agents write functions],
261-
[Agents design systems],
262-
[Human architects, AI coders],
263-
[AI participates in architecture],
264-
[Agents need detailed specs],
265-
[Agents can infer architectural intent],
266-
[Trust agents with files],
267-
[Consider trusting agents with subsystems],
268-
)
269-
]
255+
| Before CCC | After CCC |
256+
| --- | --- |
257+
| Agents write functions | Agents design systems |
258+
| Human architects, AI coders | AI participates in architecture |
259+
| Agents need detailed specs | Agents can infer architectural intent |
260+
| Trust agents with files | Consider trusting agents with subsystems |
270261

271262
This doesn’t mean agents replace architects. It means the boundary of
272263
what you can delegate has moved significantly. The Conductor Model
@@ -324,46 +315,17 @@ provider charges per million tokens, with output tokens costing 3-5x
324315
more than input tokens. Understanding the pricing structure helps you
325316
make informed decisions about model routing and cost optimization.
326317

327-
#align(center)[#table(
328-
columns: 4,
329-
align: (col, row) => (auto,auto,auto,auto,).at(col),
330-
inset: 6pt,
331-
[Model], [Input \$/1M tokens], [Output \$/1M tokens], [Effective cost
332-
for 100K input + 10K output],
333-
[GPT-5.2],
334-
[\$1.75],
335-
[\$14.00],
336-
[\$0.315],
337-
[GPT-5.2-mini],
338-
[\$0.15],
339-
[\$0.60],
340-
[\$0.021],
341-
[Claude Opus 4.6],
342-
[\$5.00],
343-
[\$25.00],
344-
[\$0.750],
345-
[Claude Sonnet 4.6],
346-
[\$3.00],
347-
[\$15.00],
348-
[\$0.450],
349-
[Claude Haiku 4],
350-
[\$1.00],
351-
[\$5.00],
352-
[\$0.150],
353-
[Gemini 3.1 Pro],
354-
[\$2.00],
355-
[\$12.00],
356-
[\$0.320],
357-
[Gemini 3 Flash],
358-
[\$0.075],
359-
[\$0.30],
360-
[\$0.011],
361-
[DeepSeek V3.2],
362-
[\$0.27],
363-
[\$1.10],
364-
[\$0.038],
365-
)
366-
]
318+
| Model | Input $/1M tokens | Output $/1M tokens | Effective cost
319+
for 100K input + 10K output |
320+
| --- | --- | --- | --- |
321+
| GPT-5.2 | $1.75 | $14.00 | $0.315 |
322+
| GPT-5.2-mini | $0.15 | $0.60 | $0.021 |
323+
| Claude Opus 4.6 | $5.00 | $25.00 | $0.750 |
324+
| Claude Sonnet 4.6 | $3.00 | $15.00 | $0.450 |
325+
| Claude Haiku 4 | $1.00 | $5.00 | $0.150 |
326+
| Gemini 3.1 Pro | $2.00 | $12.00 | $0.320 |
327+
| Gemini 3 Flash | $0.075 | $0.30 | $0.011 |
328+
| DeepSeek V3.2 | $0.27 | $1.10 | $0.038 |
367329

368330
The 35x cost difference between Opus 4.6 (\$0.750) and Gemini 3 Flash
369331
(\$0.011) for the same token volume makes model routing a financial

src/content/chapters/04-context-windows.mdx

Lines changed: 12 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -23,28 +23,13 @@ and how much of your codebase the agent can "see" at any given time.
2323
Understanding this constraint - and engineering around it - is the
2424
single most impactful skill in agent development.
2525

26-
#align(center)[#table(
27-
columns: 3,
28-
align: (col, row) => (auto,auto,auto,).at(col),
29-
inset: 6pt,
30-
[Model], [Context Window], [Approximate Pages of Text],
31-
[GPT-5.2],
32-
[400K tokens],
33-
[~640 pages],
34-
[GPT-5.3-Codex],
35-
[400K tokens],
36-
[~640 pages],
37-
[Claude Sonnet 4.6],
38-
[200K (1M beta)],
39-
[~320 pages (1,600 beta)],
40-
[Claude Opus 4.6],
41-
[200K (1M beta)],
42-
[~320 pages (1,600 beta)],
43-
[Gemini 3.1 Pro],
44-
[1M tokens],
45-
[~1,600 pages],
46-
)
47-
]
26+
| Model | Context Window | Approximate Pages of Text |
27+
| --- | --- | --- |
28+
| GPT-5.2 | 400K tokens | ~640 pages |
29+
| GPT-5.3-Codex | 400K tokens | ~640 pages |
30+
| Claude Sonnet 4.6 | 200K (1M beta) | ~320 pages (1,600 beta) |
31+
| Claude Opus 4.6 | 200K (1M beta) | ~320 pages (1,600 beta) |
32+
| Gemini 3.1 Pro | 1M tokens | ~1,600 pages |
4833

4934
These numbers look large. They’re not.
5035

@@ -87,25 +72,11 @@ Tokens cost money, and the cost scales linearly with context size. Every
8772
token you send is a token you pay for, and every token the model
8873
processes adds latency.
8974

90-
#align(center)[#table(
91-
columns: 4,
92-
align: (col, row) => (auto,auto,auto,auto,).at(col),
93-
inset: 6pt,
94-
[Approach], [Tokens Sent], [Cost per Request], [Latency],
95-
[Naive (dump everything)],
96-
[100K],
97-
[\$0.30],
98-
[~8s],
99-
[With context engineering],
100-
[15K],
101-
[\$0.045],
102-
[~2s],
103-
[**Savings**],
104-
[**85%**],
105-
[**85%**],
106-
[**75%**],
107-
)
108-
]
75+
| Approach | Tokens Sent | Cost per Request | Latency |
76+
| --- | --- | --- | --- |
77+
| Naive (dump everything) | 100K | $0.30 | ~8s |
78+
| With context engineering | 15K | $0.045 | ~2s |
79+
| **Savings** | **85%** | **85%** | **75%** |
10980

11081
At scale, this is the difference between a viable product and a money
11182
pit. A team running 500 agent tasks per day at 100K tokens each spends

0 commit comments

Comments
 (0)