Slides: Ship Agents that Ship: A Hands-On Workshop - Kyle Penfound, Jeremy Adams, Dagger
Source Video
Ship Agents that Ship: A Hands-On Workshop - Kyle Penfound, Jeremy Adams, Dagger
Relationship To World's Fair 2026
These slides are extracted from a public AI Engineer YouTube video connected to World's Fair 2026. Speaker-matched clips are supporting context unless later confirmed as exact session recordings; official livestream recordings are day-level/event-level source material.
Related Scheduled Sessions
- No individual scheduled session mapping has been assigned yet; treat this as an event livestream deck.
Extracted Slides

OCR text:
aWS
eee)
@®Graphite WW Windsurf 4) MonegobB
Mdaily £3augmentcode WorkOS

OCR text:
va ames On re COR ae e
@ oss00" Wi-Fi info on your badge
Get Started! Tomorrow June 4!
: e docs.dagger.io Continue at our Hack Night "
‘ Quicksta rt ioe at the Cloudflare office :
o Builda ipeline Beet tek »
o AddanAl agent... Bae
awa
see ofS
5 Oat RS)
oc
aws
i a <2 ae ne zy

OCR text:
, Mem amen 9 7 Toe hw OB
[A " -
Build .
softwe
Define software deli :
components — includ 7
Guit by the creators o YP
De
ae 2 ro a Microsoft ry?

OCR text:
or. mt a oO fa fe) oo fo} ry * a co is} fe} oO o-- a
% 5 pu 4 e
\ ALEQ WE ane Sed Wonanon oo ok £ DD tame - pew - 6 @
LS em chet erat Ve Ata eek betas ome
we Ne regen cere meaner wee
ey eet TDs
7 r 7
Chain functions &
to do anything, a i
anywhere Coe "
Dee Pot ee cee Ed
Tura these and more into programmabie F “5
and statetul objects Get fu'l type safety ee
acrass with a consistent interface that Pe
works in any supported ‘anguage ats ae
4
= , ry
* aor
2 . an)
qv a p 2 ~ SS]
—_— Po a

OCR text:
S ALENQ WE ane Sed rRSROp hot
(8 SY ete AG B Ow AE
ee Dagger
7 f
Chain function
:
: to do anything
anywhere
Turn these and more into progran
and stateful objects Get full type
crass with a consistent -nterface
works in any supported ‘anguage
fan 9
ka ; ~
= , & Ce
: en Sm hy
CG yy |
ae = »
ad Pe at

OCR text:
© meee ctr nee eo
© agper . argeiee tae on ante eng Be rages are se es gee eng “ae
or nee
meal ta content Seo hatt Mee
Pinkie 500, Peres Mat
wiry << AUT hte Rate mee
Sone SS -
on ae
Bese
Poe * a8
=e ets oad x ae . 8 +e ee SNE,
wofes vet Sots Me sryert
Bierce
te
cd ei
* oe a
ee ~
} ‘ Mi 1
oe “2 5 as w WViICrOSO Simol

OCR text:
ary s cc co a fo} fey Ce oO oO 0 7 bd fo} oO Qo fo} coy [ a
s . pee rt Ce
i a rl a a real Pera
Bel hgepne pees Paden pany ny a | a i Ss Sa Oe
BS ten’ Te i . area
| 4 i
|
| An error occurred
Chain functicns a
Bree fa eat ae - Peat ee et ea
a hati aa Poo feels RAVE A ped Er MONEE OSD
il — a hey ey ye AGAMA Coat 7
rl Ane ter! J iprceneanen seeker 9
al
Pa . 7 ry ._ eee a = ay ard i
oS Saat
, = ai)
, a Microsoft § oct)
a: PS ee

OCR text:
a a se ci ili jada Se oe
or a
Pras cudube Pan Meet gerectated via dagqer acit and Semmes as ag feferencie t
ct ae Cee an cae ace hme ce eer rae et
Ts es Poe ARS CR a A CO A) aC
a gaa OM eM aera 2 ca a a Pc tec ces
Emo ge coe ea Ce ce ee reece a a eA CO Sa Ma Oe
Sea ae IEC ae
aU ae ae ese CCS caer aa Cao a CT ee ee ts ee Came CE
Sa ea OY ae Pac ea a ce a Ye
Pete PEE Pa ees A Gigs Sd eb: Shales om Sete S fei Pe pan
RRP STOOL
digest
Pen CDSS SSL Ea bes
ST eS SS er
PORES SO STS CITC a ka en ee TT eT ee eee
Mouuleso or LocalcontextDarectoryPath
fetern hy leceatogeyaithub ca facerfurnd bela. dagyee oy
ee Oc rarer ce art genre EON ORD Ma a Peg eA eee Me Pat oR ea See Pa aR ae a Fe ee eT RR er
Pp . u
ee
- — viva
AV a
eo... | a Ne eT
a ee _— Nel

OCR text:
BE ari: 6 Nie: EGS | SHA TNEESERAN Paeteets Sanne eid i ne oe a
oe 5
aCe) Initialize a Large Language Modet CLLM)
Paelatand Creates a new seeret.
Set-secret Sets a secret given a user cefined nave to its plaintext and returns the secret.
Pear mee Set the current Gagger Engine version.
epee Clear the CLM history
mECLOmmrerT Tn Compact the LLM history
Prrrea bxet write argusents te the standard avtsot
anol Show decunentation fer a command, functien, module, on type
Jistory Show the LUM haistery
POL rsa Swap out the LOM iadel
aaron 4 Switch into peoiwpt wode
Beals Aare) Refresh the sche ra and revoac all codule functions
Ale Switch inta shely rode
types List all types available ano the current context
eee a wait fer packgraung processes te cerplete
Use “.nelp scovmands” for core inforration.
- a) oe
ool p Rie Deal oE GP Oa PRok WICh eels hel TOP aN wi Te)
" a
2 . -_
a 2
i a Mi ft qo
* ol 7 a
all ,
a I

OCR text:
ile 7 Ne ie a a
@ Attaching ternal:
ror he basa
eal 5 . so - noe , er
oe a ee)
Nae
= 4,
bag
oy a ae
: a5
a cS
a °
24)
: - a Microsoft §=GDOU
ee i.
- »
a ws

OCR text:
a CR SS a Maine
Cd BE wm A fo} a r for a oO i sd oO Go o oO fe) es ne 6
a . ted ® ey e
= © dagger
\
3 > ss
Q? INTERACTIVE CONTAINER DEBUGGING
The terminal function is very useful for debugging and experimenting, since it allows you to interact directly with
containers and inspect their state, at any stage of your Dagger Function execution,
e . °
Chain functions in the shell
- *
» 7 HW (and have been doing since the start) is chaining one Dagger API function call to another with the pipe ( | )
2 . - z , one of Dasger'c moct nowe a3 es ac it allow 5 pate dynamic workflows in a cinsle command -
© oe oa
a er -»
ens 7

OCR text:
Cm wr , % c a ; a Q i ad oO oO co} o o s ; a a
. ioe a e
= © Dagger
On this page v
iw Build a Cl Pipeline
.
Cl pipelines often start simple, but eventually transform into a labyrinth of artisanal shell scripts and/or unmanageable YAML
code. Dagger lets you replace those artisanal scripts and YAML with a modern API and cross-language scripting engine.
This quickstart will guide you through building a Cl pipeline for an application using Dagger.
Requirements
e bao ill take you approximately 10 minutes to complete. You should be familiar with programming in Go, Python,
\ ; “5 or Java.
a « 2 =
_ Pent A

OCR text:
Sai a Oa . ed MS Seset e ie Se
oe es © cos fo) a . ro o oO ° ° 9 . ona 5
: : oe ; ry ne
) kpenfound helta-dagger-py 7
Code Poo Pulrequests 4 Actions igo) ena Nite) cL TentLabe Insights.
oS hello-dagger-py Cle Fork 0 Star 0
ENerolhg
main leven ema <> Code -
Mem sabes T°)
dagger
Celanese fora ei ceria
2
. ‘i
» es .
cod ‘
. cere eet Do
a ye
: fm

OCR text:
iM Sc nh sacs
ie Fag a Le 3 oO rl * css co} oO 9 oO tJ ee a) a
a 7 coved a a J
= @ Dagger fa sn)
Create a new Dagger Cloud account by running dagger login:
The Dagger CUI will invite you to authenticate your device by displaying a link containing a unique key. Click the link in your
browser, and verify that you see the same key in the Dagger Cloud Web interface.
SSanetets FLL ES Bc
Broeser opeted tar bttpsi//authidagder sc boudyact ivate fuser code. bONP SRUM
Confietatiog code: FONP SRUM
Once you confirm your authentication code, your Dagger CLI will be authenticated and you will get redirected to your newly
[loud organization,
a
=
; an creating your organization, all future Dagger workflows can be inspected in Dagger Cloud.
— Oy
Pe s
n
a
Ny af.
a | y:

OCR text:
iia a a me RBS MB RR a
se Fag 0 2g oO rl * cel is) oO 9 oO Li cae co}
a a red * a ca 7
= © Dagger
nitialize a Dagger module
Bootstrap a new Dagger module in Go, Python, TypeScript, PHP, or Java by running dagger init in the application's root
directory.
Go Python TypeScript PHP Java
This will generate a dagger. json Module metadata file and a ,dagger directory containing some boilerplate Dagger
Functions as examples.
e 2 ated Dagger Functions, run:
’ ; . ‘ —_ A
® an _ a
7 a Microsoft §=SUOOU
i FY
a | |

OCR text:
aA SSR OS F ‘te si ae Re MR se
on Es ° o fo) . co a o oO ° G e a ° 5
5 i ve : rf Ca
CLL LQ serch)
Faia ceer ion
iS ve
rs
source: Anetuted[
dagger. Drrestory, DefaultPath: ee roa: i
emt 4 seer er Nal
node facde - daa.cache volumes d
a ener Uae
ere
Paes Ged 6 aa Passe nate
Pree ee eg co amr cl , Ide tach
Pree ade CE i
to aa . s
or eee LOD ened fi yi
y " as
i ao 2%
' ao
. —
a ft Smtotn
; a
a Ue

OCR text:
hae Nh Ie aC OR Fr te i Mm Re ae RE Si
de by 0 v7 oO rl * ce] oO ey 9 G i] rd
5 : om 5 a e-
ORT
This quickstart uses the Daggerizced project from the Ci quickstart. To verify that your project is in the correct state, change
AE to the project's working directory and list the available Dagger Functions:
nello saqqee
Gagaer furetrors
This should show:
a
i eer cee en apes ia
ere as) Barld the application comtainer
on eet ae Bulldo a ready to nse development oenyibouwent
oe] Omar ees) Publisn tne application conteirer after tourlding ara testing itor the fly
are Reture the cesalt of coanieg arit tests
= bt A
. F
N At
o 3 er!
ns
“?. :
| a

OCR text:
Sa i a te rF ** a i 7: a i a ced sot
Cd e fol 2 0 rd Ld fe) ao fe 9 oO i ie
a . wee * a e _
= © dagger
Replace the .dagger/workspace/src/workspace/main. py file with the following contents:
Mea Sea) Aero tated
Br raed
Celera Coc, Gag, *ield, functier, abreast type
Sobsect type
Ce an
source: Annotatedidagnge: Uirectory, Dac! fe eae
i = ae , )
ts ae Cro rin
Hj ; ;
1 ary a *. :
; es Fae:
Microsoft smem
Siwer
5 Pa |

OCR text:
Si laa A F *F Se NET SE 0 eM TASES
e- Es io) ry fo) ry * a o ° ° ° . rare)
; ; vee 5 ry Ce
= Dagger CQ Seong
Aorta rad ene are , DOF i
foentents: Arnatatedt » Doct el.
ese Hi
v3 te reed Cae ce ed de ed
orca
ire ewan)
re ae Ee ee H
j
fag. containment
Ara aihe f
Pare de ee ee ee Pe eee a
Papa rena Se aia d
Pee a al
Pas teleeeae
4 Cd
aed
a) 7 - :
¢ a
. = pee
Sy
f
7 a |

OCR text:
Sha aac es Ge MR ae A = Ne i Se to
ee P fe o ° . cd a 9 fe ° ° . Pare) 5
: i ore : Fr e
= © Dagger
ese A ef]
Paes eee
aeons
ee oe :
nede acne dag.cache golure y
t
cs eure a
Paco
Pare Red eee irene ea ig po self.scuren:
eeit) Toutes cached Paeee eco ameere Ca
Peed eed Cea i
Pa f 18
ere UT ee. A a oD 7
Reena te oa)
» *
a a
n
, an
a 4 =
. ca
. —_
=. Nitro lce S 60 0 Oi
a (|

OCR text:
a SS i I RS SR a OO Mea hs SM URE Ree 1 oe Sete
rn > 9 ° fy Eo Q o o fe ° . fe . 5
2 : ns * a e
ee ee Serer J [Cv baal
een omer ory enemas renee) enero
Poren th= Lay tedora cosign ra
rao ce a en re ros
romney renner’ ernrerry eee’ veneer] ered
lary Petes Lal Ag Uri)
ot Pr Po eee 7 ee re
ety ene’ meena rene eemeeray eee
xcaddy Dat workspace
“ o
F or :
- N peearaen Sorenrery Perens ferenee rer) een
4 ae .
ey ‘
; aWws
ia a |

OCR text:
© netlo-daggerny 70_sei_calls_ever @-
@ vrlock € + map — dagger sson
O gthub/workflons
C1 ropeormect OMRREE ISON aers
© wscove ‘edk" 3 ff
O cypress ‘source’: nytt
© pubix ,
Ove “dependencies”: [
@ eesintre.cys
WP ptgnore i
Mo pretterrc json “mame™s fit cei,
cypress cont fs *gouree™ 1 2. Ptdla oOo. Meee na eat ordy see ine Tee ded ea 5
O) deggeejvon . “pint: NPL Readnehhn Wek te B64 nen ee Bede fas
® enedts }.
onde nim!
» LICENSE i
1) package sco “mame” sw restar
1) package-lock.0n "source"? CRIS A PR
@ README md }
{) tsconhg json ],
0 a conng Sp (566 “source”: Aes §
0) tscontig node ps0n
o Zyites o }
a *
7 pea i ON B&O
20, es
bd bo
sa : _ a ai)
al a Microsoft § Smo

OCR text:
a 7 ae o oO = a « Q oO ce) roy ° e —— — L. O° ne —_ 7
i . an : re rd
= © Dagger
J
Create an agentic function
This agent will make changes to the application and use the existing test function from the Daggerized Cl pipeline to
validate the changes.
a
Go Python Typescript PHP = Java
Add the following new function to the main dagger module in .dagger/src/hello_dagger/main. py:
ste Sree
. a abe aCe eee | fae (ore i,
r& 7 ey . 4
. 7 ; 0
~. mw Microsoft = STO
5
_ ra

OCR text:
a AMS i a RS eS OS a i i a
ay Fe fo} Le rT od QO oO co OQ oO Ca i a a
a a ee a a e .
= © Dagger
workspace-input and with-workspace-output . These bindings can be used to provide (or retrieve) the workspace to
the agent.
« The LLM is supplied with a prompt file instead of an inline prompt. By separating the prompt from the Dagger Function
code, it becomes easier to maintain and update the instructions given to the LLM. q
The final step is to add the prompt file. Create a file at .dagger/develop_prompt.md with the following content:
You are a develooer on the Hel loUaaqer Yues$s propect.
You will be qiven ar assientert and the Coele te covplete the assignment,
SKCrvaamnt ae] Laan OPCs ee oat ied
&8 Copstrapits
Before wtitlsbg code, ofulyce the workspace tu understadd the project.
Oramernnehs Ohe ubdeceessary changes,
tests to validate your tode charges.
ad pountrl yan bove covpletea the ass caecedt and the Tests gauss,
) : so
7 Sy
= a 2
Slide-Derived Subjects To Review
Subject extraction uses video title, related session titles/descriptions, transcript context, and OCR text when available. OCR is best-effort and should be reviewed against the embedded slide images.