back to indexForm factors for your new AI coworkers — Craig Wattrus, Flatfile

Chapters
0:0
0:25 Design Engineering: Form Factors for your new AI coworkers
1:4 Four main categories of AI stack: invisible, ambient, inline, and conversational
2:14 Invisible AI: Personalized demos
3:6 Ambient AI: Analyzing data for opportunities
3:10 Inline AI: Direct data manipulation
3:46 Shifting from helicopter parent to character coach
4:32 The "chat tuner" tool
5:20 Feeling the material of AI
8:20 Finding the grain in AI design
11:8 Courting emergence
11:48 Example of emergence: Combining datasets and generating reports
12:37 Example of emergence: Suggesting human intervention
14:9 Eyes on the future
14:27 "Auto-complete" for data transformations
00:00:00.000 |
I think we've all noticed tools like vZero getting pretty good at generative UI and creating 00:00:21.240 |
good-looking things as well as Claude code being able to let us run things more complicated locally 00:00:28.920 |
and build on those things so I think the the thing that comes out of this is designers product people 00:00:36.180 |
and engineers all building together and I'm really excited about that because I've never loved the 00:00:39.960 |
the divides and between these things so this really lets us get rid of in my mind get rid of 00:00:47.280 |
mock-ups get rid of the click-through prototypes and all the hand-wringing about whether the thing 00:00:54.420 |
that we're building is worth the engineering effort so as we as we go into this it's time for us to 00:01:00.900 |
jump in and feel the material that we're working with and see what emerges so I'll give you a super 00:01:06.300 |
quick overview of flat files AI stack this is not an official diagram but it's how I see it and we 00:01:13.740 |
migrate data big if you need to move a lot of data between systems frequently you use our developer 00:01:21.420 |
platform and since we're a developer platform LMs are good at writing code makes it the perfect place 00:01:26.100 |
for a lot of AI at the bottom here we have our customers flat file applications that they deploy to 00:01:33.060 |
our infrastructure then there's this like real-time context which is the data and the validation outcome 00:01:39.360 |
so what are the errors and warnings and things that are in that that data that dirty data and then our 00:01:44.820 |
AI agents the tools they have and the jobs that they can run and then what gets shown to users so I see it 00:01:51.960 |
as four buckets here there's more there's invisible so it's kind of like the ghost in the machine almost 00:01:57.840 |
called called that ghost ambient so it's kind of happening in the space but you're not directly 00:02:03.840 |
working with it in line so it's actually in your work in your workflow and then conversational the ones 00:02:09.960 |
that were I guess all arguing about I think that's what I learned being here at this conference here's 00:02:16.560 |
an example of invisible so when you start if you sign up for a flat file we go in the background we take 00:02:22.740 |
your email address you find the company you work for we look it up and in the background the AI agents 00:02:27.960 |
are writing a flat file application so they're writing code and essentially sending you up a demo 00:02:33.060 |
that is perfect for your use case so if you come in you're from an HR company you're gonna get an HR 00:02:38.340 |
demo and while that's running you don't need to know that AI is working on it so that I'd say is like 00:02:44.340 |
it's working in the background here's something working more ambiently it's a very initial take on 00:02:49.800 |
this but you can see there's something an agent analyzing the data in the background this is a tool 00:02:55.740 |
actually I lead this team for AI transformation and you can see the little sparkles pop up on the columns 00:03:03.180 |
when it finds opportunities to fix it so that's ambient this is in line so you're busy working in the data 00:03:09.900 |
and the AI is able you're able to use the AI I'm directly in line here to fix the data these agents are 00:03:17.800 |
writing code that then gets run on this data set so you could have a million rows and 50 columns or 00:03:23.740 |
whatever you want and that code will run really fast which is pretty cool and then finally the 00:03:30.340 |
conversational ones we're all used to so this is build mode it's the no code low code agentic system 00:03:37.180 |
that writes flat file apps now so before you would probably have to have had a engineer at the company 00:03:43.120 |
building these applications now it can all be built up so that's pretty cool 00:03:49.060 |
um and that's that's kind of the the general surfaces I think about um I listened to um Amanda 00:03:56.060 |
Askell um from Anthropic talking to Lex Friedman about um building um Claude's character and in that moment I 00:04:02.940 |
realized I'd been doing something a little silly I'd been giving engineers feedback on our agents like oh it 00:04:08.940 |
shouldn't start saying this and it shouldn't use these words and and why should it do this and I realized I was I was doing 00:04:14.880 |
like I would do design copy right I was I was I'm in my my my normal instinct and when I heard her talk I realized I needed to go from 00:04:23.820 |
controlling um to being a character coach and and and actually building out um the the nature that I wanted 00:04:30.820 |
so this is a v0 I hope have you most of you used v0 from Vercel before um yeah um so this is a v0 I built one of my early ones and it was um I 00:04:42.860 |
called it a chat tuner it doesn't look like much but that wasn't the focus um but I could essentially um put our 00:04:48.540 |
orchestrators so the system prompt for our ai orchestrator for build mode um in here and then I can modify it I can say what is it 00:04:55.980 |
like if I tell Claude to be more friendly versus more balanced versus more concise what what does more cautious mean to 00:05:04.020 |
this model um and the point of me showing this is just to say like the design of the final thing is always a 00:05:12.020 |
tempting thing to design to um but now we can actually go and build tools to help us to design that um and this 00:05:20.180 |
brings me to like uh I have like three themes um the first theme which is feeling the material I'm a 00:05:25.740 |
woodworker so you'll have to forgive the analogies to physical material but if you're going to uh design 00:05:31.660 |
something with a physical material you have to feel it right you have to what are the properties of it 00:05:36.700 |
and you need to understand it and so I feel like before with design we were kind of looking at everything 00:05:43.260 |
through like layers right mock-ups and prototypes and and kind of trying to see what was going to work 00:05:48.940 |
and what wasn't what we need to do now is go feel the material feel feel how these models work 00:05:55.500 |
my new north star is like creating an environment for these llms to shine right what's what's this form 00:06:03.260 |
factor that can help them nail their assignment stay aligned and grow as the models get better 00:06:09.420 |
right that's that's my new goal um we're basically anything we do with an llm I feel like we're putting 00:06:15.180 |
it in a box um and that's you also hear people say that llms are like interns like oh it's an intern with 00:06:22.540 |
a phd and so I try think now if you're putting an intern with a phd in a box like it better be a good 00:06:28.860 |
box um and so we need to put effort in um this was a conversation we were having about what tools does this 00:06:36.700 |
uh co-worker this new form factor this new model like what tools do we give it when it shows up for work 00:06:42.140 |
um and I got fixated on this idea of cursors I was like oh what happens if we just had a mouse or a 00:06:47.660 |
trackpad I'm a trackpad person um so that's probably controversial but uh essentially what happens if we 00:06:53.740 |
gave the AI um those tools and so I I created this v0 and they moved it into cursor um and I was like well 00:07:01.900 |
I work in design tools a lot so I don't migrate a lot of data so this is the best place for me to feel this 00:07:07.500 |
right to feel this material so I created a canvas um and I could give it orders and be like hey and 00:07:13.580 |
honestly I was I was very enthusiastic about this um for like a few seconds it felt like I was touching 00:07:19.820 |
the AGI a little bit but I also very quickly started feeling like I was putting a Formula One driver in a 00:07:25.740 |
Prius it just it felt like I was constraining it and controlling it um it could only move one thing at a 00:07:31.900 |
time um but so so learning from that um was uh something like this was also um a v0 um that I 00:07:41.420 |
used Claude code on eventually and this is a new uh product that we're working on which brings like the 00:07:46.780 |
all the stuff we've learned about uh migrating data to consumers to let them work on their data 00:07:53.020 |
um but you can see the AI is is operating in the space um and it's it's got presence and so it's 00:07:59.820 |
it's able to read multiple files while writing into another one um it's not like me who can only focus 00:08:05.740 |
on one thing at a time even though I think I can focus on more um it's not true and so this is us moving 00:08:12.860 |
from determinism to inference and figuring out what this material feels like and so um that's feeling 00:08:21.660 |
the material right like working with the model getting it into your space understanding how it feels 00:08:26.940 |
to work alongside of what's it capable of and then the form factors that we're putting on them actually 00:08:32.300 |
actually you can now go build it and play with it um and feel it um the next material analogy I have 00:08:38.860 |
which is finding the grain once you've got the characteristics of the material you understand it 00:08:43.660 |
usually the piece of material that you're building with and you're creating with might have its own 00:08:48.620 |
characteristics and so as we're creating these form factors uh finding the grain is about feeling it 00:08:53.980 |
out where is it smooth and rough um where is it weak where is it strong um and we'll have to remain 00:09:00.540 |
humble here because um things are going to change and are changing so quickly that whatever we 00:09:06.140 |
rebuild is going to most likely need to be rebuilt this was an example of that build mode agent I asked 00:09:12.540 |
it to do one thing which was enable the auto map plugin so it's just automatically maps data from 00:09:18.140 |
the source data to the target data and I get a wall of text and it's not bad because this went and I 00:09:25.500 |
saved me probably a week of work um I didn't have to have a product manager write a prd send it to an engineer 00:09:30.460 |
get the in the road map get the engineer to write it qa this was all just done right all that code was 00:09:36.380 |
written but the noise gets in the way and so this was a v0 of of kind of rethinking the tool ux what could 00:09:44.460 |
it be like and so um the way I thought about this was if you're designing for a if you're if you're going 00:09:50.860 |
to a co-worker and you're going to do something complicated for them and you want to communicate you 00:09:54.940 |
think okay I'm going to choose my words carefully I'm going to communicate visually I'm going to stop 00:10:00.220 |
and check whether whether it's right and so I wanted this to feel similar and so you can see here split 00:10:06.300 |
personal details it's visually telling you what's doing saying hey is this right then it's saying I'm 00:10:11.820 |
aligned I took a snapshot you can roll back I'm holding you accountable you approved this and then 00:10:17.820 |
telling you what you can do next we also wanted to it to be able to express itself so if something went 00:10:22.780 |
wrong and I'm shaking its head and a little bit of frustration which is probably what the user is 00:10:27.180 |
feeling too when something goes wrong and then finally it can back off when it gets something wrong 00:10:35.260 |
and sort of say okay I'm handing control back over to you and that's a lot more intro that feels a lot 00:10:41.580 |
better and it felt like we had found the grain and found the right place to put this this material 00:10:48.780 |
with this and so what's really cool about this one is that as we're implementing it we've realized that 00:10:54.220 |
it can you can fit in other places so not just in conversational flow it can fit in line and this 00:11:02.700 |
is going to be in our kind of like inline transform functionality really soon 00:11:09.420 |
so I think like as we as we find a new technology and work with it we run the risk of just automating 00:11:15.980 |
the tedious things and I was so excited about those previous two talks because there's kind of like 00:11:20.220 |
some emergence in there right like something interesting that we wouldn't be able to do before 00:11:24.220 |
and I'm most excited about those things like what what emerges from from playing we stopped playing for a 00:11:32.540 |
few years um when we were kind of got the internet and we were like really excited and css3 came out 00:11:37.900 |
and then like html5 we were playing a lot um now I feel like we're all playing again and so that's really 00:11:43.900 |
exciting for me um this is an example of me playing um I created this v0 and I I we've been in search of this 00:11:53.340 |
characteristic of an agent that is that feels forward leaning and what I mean by that is it's an agent that's 00:11:59.740 |
curious and it's excitable um but it likes getting done um and it's very focused um so not going crazy 00:12:07.100 |
right like we've all seen the lms kind of go too far when you give it a task and that doesn't feel good 00:12:12.540 |
um so here I dropped a json file and a csv file um and the agent decided um you know what would be good to 00:12:20.060 |
do is combine those two things because the data look pretty similar um and so here we can see it's it's 00:12:26.540 |
combined the the file the two files into one um that's a good thing that it did I didn't have to 00:12:32.220 |
ask it to do that um it picked up on it um and then after that it wrote a report so it told us what it 00:12:39.420 |
was doing said hey I found some duplicates this is probably what you need to do next and so it built up 00:12:44.700 |
context um and I was actually just trying to play with Claude 4 here and feel the material and kind of see how 00:12:50.940 |
it would be but I realized um I'd kind of come across this nature that we were after um it made some 00:12:58.860 |
suggestions and generated slide deck which I I asked it for um so within just dropping two files um it's 00:13:05.660 |
it's done something emergent um and now we're baking this into our our new product called obvious which 00:13:13.820 |
is coming soon another one was we had this idea of giving our agents a knowledge base so all the 00:13:20.220 |
customer calls we'd had with them were all recorded and transcribed like most of ours are um and we had 00:13:25.580 |
documentation from the customer and so we put it in into knowledge base and then when we analyzed all of 00:13:31.500 |
this customer data we surfaced up um suggestions based off that I was fully expecting better 00:13:36.780 |
suggestions I was fully expecting more suggestions got those but then here um the the agent decided 00:13:44.620 |
I can't fix this but I know how to fix it and so I'm going to tell you how to fix it and so it suggests 00:13:49.740 |
here that the user actually goes to HR and gets them to generate the missing employee IDs and what emerged 00:13:56.140 |
here was something I wasn't expecting maybe you look at this and say that makes a lot of obvious sense but 00:14:01.180 |
to me I wasn't expecting it to be able to help the human to go and do the job um where it couldn't 00:14:06.460 |
um so that was really exciting I don't think I would be able to get to that without um playing and and 00:14:12.380 |
being curious um and then the last thing I want to talk a little bit about is eyes on the future and we 00:14:19.420 |
all have our eyes on the future because how can you not there's always something new now um with models um 00:14:26.620 |
so I I like to think about it as like what's your pelican on a bicycle um and one of my pelican on a 00:14:33.580 |
bicycles is order complete I'm super excited about it's probably a bad idea um actually to use an LLM for 00:14:38.940 |
this but I'm like I want to make an order complete that is backed by an LLM and so this one has a hundred 00:14:44.940 |
suggestions for fixing some data um and it's kind of like a bake-off um between these two things I'm yet to 00:14:51.260 |
find um a model that is both very fast and very good at this problem um but this is a a benchmark 00:14:59.420 |
or something that I've created just for myself to be able to feel the materials um that we're getting 00:15:04.620 |
and so I think about that for my design practice now like what are the things I care about and can I 00:15:09.740 |
like design into the future and start to think about the form factors I want and then build an 00:15:15.100 |
application that can actually test that so yeah that's all I have for you today I I'm very excited to 00:15:21.820 |
see all the new form factors um that we build um with our new tools thank you