---
title: "Slides: Ship Agents that Ship: A Hands-On Workshop - Kyle Penfound, Jeremy Adams, Dagger"
category: "slides"
video_id: "Fzb1a24hF-o"
sourceLabels: ["Public YouTube video frames", "Public YouTube metadata"]
---

# 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](https://www.youtube.com/watch?v=Fzb1a24hF-o)

## 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
![[assets/slides/Fzb1a24hF-o/slide-001.jpg]]

OCR text:

> INNOVATIONPARTNER
> aws
> PLATINUMSPONSORS
> Graphite
> WWindsurf
> MongoDB
> daily
> augment code
> Workos

![[assets/slides/Fzb1a24hF-o/slide-002.jpg]]

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

![[assets/slides/Fzb1a24hF-o/slide-003.jpg]]

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?

![[assets/slides/Fzb1a24hF-o/slide-004.jpg]]

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

![[assets/slides/Fzb1a24hF-o/slide-005.jpg]]

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

![[assets/slides/Fzb1a24hF-o/slide-006.jpg]]

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

![[assets/slides/Fzb1a24hF-o/slide-007.jpg]]

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

![[assets/slides/Fzb1a24hF-o/slide-008.jpg]]

OCR text:

> This module has been generated via dagger init and serves as a reference to
> basic module structure as you get started with Dagger.
> Two functions have been pre-created. You can modify, delete, or add to them,
> as needed. They demonstrate usage of arguments and return types using simple
> echo and grep commands. The functions can be called from the dagger CLI or
> from one of the SDKs.
> The first line in this comment block is a short description line and the
> rest is a long description with more detail on the module's purpose or usage,
> if appropriate. All modules should have a short description.
> Missing.source: ModuleSource! 0.0s
> .digest: String! 0.0s
> xxh3:c5554240ef477fe5
> ModuleSource.asString: String! 0.0s
> /Users/kylepenfound/github.com/kpenfound/hello-dagger-py/.dagger/workspace
> ModuleSource.localContextDirectoryPath: String! 0.0s
> /Users/kylepenfound/github.com/kpenfound/hello-dagger-py

![[assets/slides/Fzb1a24hF-o/slide-009.jpg]]

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

![[assets/slides/Fzb1a24hF-o/slide-010.jpg]]

OCR text:

> 492be023728e11715"):Container! Attaching terminal: container: Container!.from(address:"docker.io/library/alpine:latest@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b
> AIE bin dev dagger/s dagger/$ls home etc media lib opt mnt proc root run sbin srv sys tmp uSr var
> Worid'sFa Microsoft smol?

![[assets/slides/Fzb1a24hF-o/slide-011.jpg]]

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

![[assets/slides/Fzb1a24hF-o/slide-012.jpg]]

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

![[assets/slides/Fzb1a24hF-o/slide-013.jpg]]

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

![[assets/slides/Fzb1a24hF-o/slide-014.jpg]]

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:

![[assets/slides/Fzb1a24hF-o/slide-015.jpg]]

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 | |

![[assets/slides/Fzb1a24hF-o/slide-016.jpg]]

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

![[assets/slides/Fzb1a24hF-o/slide-017.jpg]]

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

![[assets/slides/Fzb1a24hF-o/slide-018.jpg]]

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 |

![[assets/slides/Fzb1a24hF-o/slide-019.jpg]]

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 |

![[assets/slides/Fzb1a24hF-o/slide-020.jpg]]

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 (|

![[assets/slides/Fzb1a24hF-o/slide-021.jpg]]

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 |

![[assets/slides/Fzb1a24hF-o/slide-022.jpg]]

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

![[assets/slides/Fzb1a24hF-o/slide-023.jpg]]

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

![[assets/slides/Fzb1a24hF-o/slide-024.jpg]]

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.
