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

Extracted Slides

slide-001.jpg

OCR text:

aWS

eee)

@®Graphite WW Windsurf 4) MonegobB

Mdaily £3augmentcode WorkOS

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

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?

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

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

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

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

slide-008.jpg

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

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

slide-010.jpg

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

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

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

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

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:

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

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

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

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 |

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 |

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

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 |

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

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

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.