Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
351 lines (329 loc) · 17.7 KB
/
Copy pathindex.html
File metadata and controls
351 lines (329 loc) · 17.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
---
layout: default
title: "Agentic AI for Researchers — One-Day Workshop"
description: "A one-day workshop on agentic AI for economists and social scientists. Balanced demos and guided exercises for ~25 participants."
---
<!-- ======== Hero ======== -->
<section class="hero">
<div class="confetti" aria-hidden="true">
<span class="px px-red" style="width:14px;height:14px;top:12%;right:8%"></span>
<span class="px px-grey" style="width:10px;height:10px;top:22%;right:14%"></span>
<span class="px px-ink" style="width:8px;height:8px;top:8%;right:18%"></span>
<span class="px px-grey" style="width:18px;height:18px;top:35%;right:4%"></span>
<span class="px px-red" style="width:6px;height:6px;top:50%;right:11%"></span>
<span class="px px-white" style="width:12px;height:12px;top:60%;right:6%"></span>
<span class="px px-grey" style="width:8px;height:8px;top:70%;right:16%"></span>
<span class="px px-ink" style="width:10px;height:10px;top:18%;right:24%"></span>
<span class="px px-red" style="width:7px;height:7px;top:78%;right:22%"></span>
<span class="px px-grey" style="width:16px;height:16px;top:42%;right:20%"></span>
<span class="px px-white" style="width:9px;height:9px;top:28%;right:30%"></span>
<span class="px px-ink" style="width:5px;height:5px;top:55%;right:28%"></span>
</div>
<div class="container">
<div class="hero-content">
<div class="hero-mark" aria-hidden="true">
<span></span><span></span><span></span>
<span></span><span></span><span></span>
<span></span><span></span><span></span>
</div>
<div class="kicker"><span class="p">~</span> one-day workshop · economists & social scientists</div>
<h1>Agentic AI for Researchers</h1>
<p class="subtitle">One-day workshop for economists and social scientists. Balanced demos and guided exercises.</p>
<div class="meta-line">
<span>9:00 – 16:10</span>
<span>~25 participants</span>
<span>Demos + exercises</span>
</div>
</div>
</div>
</section>
<!-- ======== Thesis ======== -->
<section class="schedule-section">
<div class="container">
<div class="thesis">
<h2>Workshop arc</h2>
<ol>
<li><strong>Intelligence is a commodity</strong> — understand the stack, unbundle it, pick your tools.</li>
<li><strong>Agents work only when structure underneath them is good</strong> — your Day-1 practices are the prerequisite.</li>
<li><strong>Agents introduce new reproducibility risks</strong> — pinned models, saved prompts, and careful review are the cure.</li>
</ol>
</div>
<!-- ======== Schedule ======== -->
<h2 id="schedule">Schedule</h2>
<!-- Act 1 -->
<div class="act">
<div class="act-header">
<span class="act-number">Act 1</span>
<span class="act-title">How do you work today?</span>
<span class="act-duration">80 min</span>
</div>
<div class="session">
<div class="session-time">
<span>9:00</span>
<span class="session-duration">20 min</span>
</div>
<div class="session-body">
<div class="session-top">
<span class="type-tag exercise">Exercise</span>
<span class="session-title">Pair workflow mapping</span>
</div>
<p class="session-desc">The research question: <em>“Which country has the highest share of non-programming use of Claude?”</em> Pair up. Each person explains to their partner — on paper — how they would answer this question today: create a folder, find and download data, clean it, run analysis, produce a table. No computers. Just describe your workflow step by step.</p>
<div class="session-pills">
<span class="pill">pencil & paper</span>
<span class="pill">pair work</span>
<span class="pill">current workflow</span>
</div>
</div>
</div>
<div class="session">
<div class="session-time">
<span>9:20</span>
<span class="session-duration">40 min</span>
</div>
<div class="session-body">
<div class="session-top">
<span class="type-tag talk">Talk</span>
<span class="session-title">Everything is a chat completion</span>
</div>
<p class="session-desc">The technical core without the hype. A model is a next-token predictor. Context is what fits in the window — everything outside it is gone. Attention is how the model decides what matters. Tool calling is structured output with a feedback loop. System prompt, user turn, assistant turn: the anatomy of every interaction. Why context filling causes failure — and why the fix is a fresh session, not more prompting.</p>
<div class="session-pills">
<span class="pill">context window</span>
<span class="pill">attention</span>
<span class="pill">tool calls</span>
<span class="pill">system prompt</span>
</div>
</div>
</div>
<div class="session">
<div class="session-time">
<span>10:00</span>
<span class="session-duration">20 min</span>
</div>
<div class="session-body">
<div class="session-top">
<span class="type-tag discussion">Discussion</span>
<span class="session-title">What did your partner forget?</span>
</div>
<p class="session-desc">Each partner presents the <em>other</em> person’s workflow to the group. What steps were clear? What was implicit — assumed but never said? This is the same problem an agent faces: it only knows what you tell it. The gap between what you know and what you write down is where agents fail.</p>
<div class="session-pills">
<span class="pill">implicit knowledge</span>
<span class="pill">communication gap</span>
<span class="pill">why structure matters</span>
</div>
</div>
</div>
</div>
<!-- Act 2 -->
<div class="act">
<div class="act-header">
<span class="act-number">Act 2</span>
<span class="act-title">The ecosystem — and working with agents</span>
<span class="act-duration">110 min</span>
</div>
<div class="session">
<div class="session-time">
<span>10:20</span>
<span class="session-duration">20 min</span>
</div>
<div class="session-body">
<div class="session-top">
<span class="type-tag break">Break</span>
<span class="session-title">Coffee</span>
</div>
</div>
</div>
<div class="session">
<div class="session-time">
<span>10:40</span>
<span class="session-duration">25 min</span>
</div>
<div class="session-body">
<div class="session-top">
<span class="type-tag talk">Talk</span>
<span class="session-title">The ecosystem — and the unbundling argument</span>
</div>
<p class="session-desc">Four separable layers: <strong>model</strong> (GPT, Claude, Gemma, Qwen, DeepSeek), <strong>harness</strong> (OpenCode, Claude Code, Cursor, Zed), <strong>MCP</strong> (tools the model can call at runtime), <strong>skill</strong> (plain-text instructions that live in your repo). Intelligence is commoditizing fast — Chinese models match frontier at 1/25th the cost, rankings change weekly. The opinionated prescription: pick one harness you are comfortable in, swap models freely for each task, write skills as readable markdown, keep very good structure in your work. Lock-in is the risk; model loyalty is a mistake.</p>
<div class="session-pills">
<span class="pill">model</span>
<span class="pill">harness</span>
<span class="pill">MCP</span>
<span class="pill">skill</span>
<span class="pill">OpenRouter</span>
<span class="pill">unbundling</span>
</div>
</div>
</div>
<div class="session">
<div class="session-time">
<span>11:05</span>
<span class="session-duration">40 min</span>
</div>
<div class="session-body">
<div class="session-top">
<span class="type-tag demo">Demo</span>
<span class="session-title">The escape–enter loop in practice</span>
</div>
<p class="session-desc">Live OpenCode session on a real research task. The two-layer model: natural language in, structured output out. Review diffs, not code. When to hit Escape. The “toxic context” failure mode — when to start fresh. The independence principle: never let the same session verify its own work. Permission boundaries — approve reads and edits inside the project, deny destructive shell commands — so the agent can never delete or overwrite your data. CLAUDE.md: what belongs in it (project conventions, data assumptions, niche tools) and what does not (everything else — irrelevant instructions actively hurt).</p>
<div class="session-pills">
<span class="pill">OpenCode</span>
<span class="pill">diff review</span>
<span class="pill">permissions</span>
<span class="pill">CLAUDE.md</span>
<span class="pill">context poisoning</span>
<span class="pill">independence principle</span>
</div>
</div>
</div>
<div class="session">
<div class="session-time">
<span>11:45</span>
<span class="session-duration">25 min</span>
</div>
<div class="session-body">
<div class="session-top">
<span class="type-tag exercise">Exercise</span>
<span class="session-title">Write a project config</span>
</div>
<p class="session-desc">Draft a CLAUDE.md for the workshop project — what tools do we use (Stata, Python), where does the data live, what naming conventions apply, what should the agent never do? Start with 3–5 rules. Share one thing that was hard to write down. The act of writing conventions in plain text for a model forces a precision that is valuable even if you never use an agent.</p>
<div class="session-pills">
<span class="pill">hands-on</span>
<span class="pill">CLAUDE.md</span>
<span class="pill">pencil & paper</span>
</div>
</div>
</div>
</div>
<!-- Act 3 -->
<div class="act">
<div class="act-header">
<span class="act-number">Act 3</span>
<span class="act-title">Build a project from scratch</span>
<span class="act-duration">130 min</span>
</div>
<div class="session">
<div class="session-time">
<span>12:10</span>
<span class="session-duration">50 min</span>
</div>
<div class="session-body">
<div class="session-top">
<span class="type-tag break">Break</span>
<span class="session-title">Lunch</span>
</div>
</div>
</div>
<div class="session">
<div class="session-time">
<span>13:00</span>
<span class="session-duration">25 min</span>
</div>
<div class="session-body">
<div class="session-top">
<span class="type-tag talk">Talk</span>
<span class="session-title">Reproducibility from Day 1 — the prerequisite</span>
</div>
<p class="session-desc">Quick recap of the Vilhuber/Koren principles as the necessary foundation: no hard-coded paths, no overwriting raw data, README from day 1, secrets in environment variables. These are not just journal requirements — they are what makes your project legible to an agent. An agent working in a project with hard-coded paths, no folder structure, and one giant script will fail even with the best model. Day-1 practices are agent-compatible practices. But they handle only the <em>old</em> reproducibility risk. Agents add a new one: the same prompt does not produce the same code twice — models are non-deterministic, and the model you used is deprecated within a year. The cure is to treat the interaction as data — pin the exact model version, save the prompt alongside the output. The prompt is part of your methods section.</p>
<div class="session-pills">
<span class="pill">no hard-coded paths</span>
<span class="pill">folder structure</span>
<span class="pill">README</span>
<span class="pill">model pinning</span>
<span class="pill">prompt as artifact</span>
</div>
</div>
</div>
<div class="session">
<div class="session-time">
<span>13:25</span>
<span class="session-duration">20 min</span>
</div>
<div class="session-body">
<div class="session-top">
<span class="type-tag demo">Demo</span>
<span class="session-title">Empty folder to working project</span>
</div>
<p class="session-desc">Live demo. Start from an empty folder. Use bead to download the Anthropic Economic Index data. Set up the project structure. Use OpenCode to figure out how to run Stata from the command line. Write the first prompts: load the data, explore it, start answering the research question. Show what happens when the agent writes Python instead of Stata — and how your CLAUDE.md prevents it.</p>
<div class="session-pills">
<span class="pill">OpenCode</span>
<span class="pill">bead</span>
<span class="pill">Stata from the shell</span>
<span class="pill">first prompts</span>
<span class="pill">CLAUDE.md in action</span>
</div>
</div>
</div>
<div class="session">
<div class="session-time">
<span>13:45</span>
<span class="session-duration">85 min</span>
</div>
<div class="session-body">
<div class="session-top">
<span class="type-tag exercise">Exercise</span>
<span class="session-title">Answer the research question</span>
</div>
<p class="session-desc">Your turn. Start from an empty folder. Use bead to get the Anthropic Economic Index data. Use OpenCode to write Stata scripts that answer the question: <em>“Which country has the highest share of non-programming use of Claude?”</em> Build the project step by step: folder structure, data loading, cleaning, analysis, output. Review every diff before you approve it. When you get stuck, start a fresh session — do not keep prompting into a broken context. Debrief: each participant shares one thing the agent did that surprised them.</p>
<div class="session-pills">
<span class="pill">hands-on</span>
<span class="pill">OpenCode</span>
<span class="pill">Stata</span>
<span class="pill">bead</span>
<span class="pill">Anthropic Economic Index</span>
</div>
<p class="session-note">Instructors circulate to help with setup and troubleshooting.</p>
</div>
</div>
</div>
<!-- Closing -->
<div class="act">
<div class="act-header">
<span class="act-number">Closing</span>
<span class="act-title">What comes next</span>
<span class="act-duration">40 min</span>
</div>
<div class="session">
<div class="session-time">
<span>15:10</span>
<span class="session-duration">20 min</span>
</div>
<div class="session-body">
<div class="session-top">
<span class="type-tag break">Break</span>
<span class="session-title">Coffee</span>
</div>
</div>
</div>
<div class="session">
<div class="session-time">
<span>15:30</span>
<span class="session-duration">40 min</span>
</div>
<div class="session-body">
<div class="session-top">
<span class="type-tag discussion">Discussion</span>
<span class="session-title">What do you actually do on Monday?</span>
</div>
<p class="session-desc">Structured around five choices: (1) what was the first thing you’ll try with OpenCode on your own project, (2) which model for which task, (3) what goes in your CLAUDE.md — the minimum viable project config, (4) what structural change your project needs before an agent can work in it, (5) which failure modes to watch for — hallucination, silent data decisions, scope creep, context degradation, confident domain errors, restricted data leaving your machine. Each participant writes their five answers. Collected answers become the shared takeaway. Close by restating the arc: Day-1 structure was already right. Project config makes it agent-legible. Review makes it auditable. The models will keep getting cheaper; the structure is the durable investment.</p>
<div class="session-pills">
<span class="pill">next steps</span>
<span class="pill">model selection</span>
<span class="pill">CLAUDE.md</span>
<span class="pill">structural prerequisite</span>
<span class="pill">failure modes</span>
</div>
</div>
</div>
<div class="session">
<div class="session-time">
<span>16:10</span>
<span class="session-duration"></span>
</div>
<div class="session-body">
<div class="session-top">
<span class="session-title" style="color: var(--ct-grey-2);">End</span>
</div>
</div>
</div>
</div>
</div>
</section>