Hi, listeners.
Welcome back to No Priors.
Today, I'm here with Simon Last, co-founder at Notion.
We talk about their new vision for Notion in the AI age as a platform for humans and agents to collaborate, how the engineering and product org at Notion is changing and these new tools for thought.
Welcome, Simon.
Hey, Simon, thanks for doing this.
Hey, of course.
Yeah, it's really fun to be here.
Notion's at scale, amazing platform, lots of users.
You did start quite a while ago.
I think of Notion as one of the companies that has really like braced AI quite aggressively.
I was told you first got your hands on GPT-4 at a company offsite in Mexico.
Um, is that true?
What is the origin story of like starting to work on this stuff?
Yeah, I think, yeah, that year that was 2022.
Um, I, I've been watching, you know, what's going on in general.
I've just been like super curious about the technology and fascinated to try everything and think about how we can apply it.
It wasn't until I played with GPT-4 that it became really, really real.
So when we got access to it, it was sort of like a proto-ChatGPT-like interface.
And my co-founder Ivan and I both got access, and it was just immediately clear.
I would say two big things.
One is that It was just pretty smart.
It could follow reasonably complicated instructions.
It could write things for you.
It could edit things.
And the second big thing was the scope of its knowledge was extremely interesting.
Super, super deep and broad world knowledge.
When we played with it, it became just instantly clear to both of us like okay, the time is now to start thinking about how to apply this.
It's only going to get better.
We were talking about Mexico, GPT-4.
You guys saw it was like clearly the time.
Did you start with like a particular vision of like what you should obviously be able to do with AI in Notion, or just start pulling people from different teams or recruiting people and say, like let's experiment.
How did you begin?
I think we immediately had a long-term and a short-term vision.
I would say the, I'll start with the short-term one.
The thing that was immediately obvious was, oh, it could be like a writing assistant.
So it could be in your document, can like select some text, have it, rewrite it you have the right text for you maybe look something up and then uh, you know, give you like like sources or more information.
So that was the thing that we immediately, like got to work on and, you know, we sort of started a tiger team around it and then we were able to launch it in like two or three months after that, and then the long-term vision that we immediately had was like oh, the thing that looks like maybe possible, is more like a general assistant.
So what if you could just give it all the tools inside notion that a human would have be able to like create its own databases query, manipulate them, create documents, edit them and sort of weave all these things together to do like a longer range task?
And so we we sort of So immediately started on both.
The short term one, we're able to shoot very quickly.
And then the long term one didn't really work yet.
And so that took much longer to get working.
Are there like specific first launch of the AI specific notion features and products was when?
No, it was, uh, it was a February, 2023.
Oh, okay.
Yeah.
My timelines are wrong.
Um, are there like a few um specific learnings or breakthrough moments you think since beginning to release that are interesting?
Yeah.
I mean there's been it's it's, it's been a slog over many years, or multiple years.
At this point with with with with many, many learnings, i would say yeah, i mean just to give you a timeline of the arc of what we shipped, is you know?
So the first thing was our writing system.
Uh, we called it ai writer.
Um, that's the first thing we launched.
Uh, it was easiest to get working because it's like single step task rewriting, editing text.
Uh, there's no like retrieval aspect, it was just like raw access to the model to write uh, to write the text.
The next big thing that we immediately started working on was QA doing a semantic index of the entire workspace and then letting you ask a question And it can give you an answer that's grounded in the sources.
That was also immediately obvious to us that that'd be super useful.
And so we started work on that.
That one we launched in, I think it was October 2023.
So we started a beta before then, but then our GA was in October.
That was a much bigger effort day of working, obviously.
We weren't just like plugging in the LLM.
It was actually doing this like real-time updating index.
Right. we had to get much more serious about the evals and the quality there as well.
The, the Q and a has been a, a multi-year journey.
Basically what?
What we did is immediately uh, as soon as we got the notion index working, it was obvious that okay, we should index everything else as well.
And and so we index, like Slack and Google drive, and we're launching new ones uh, on a regular cadence.
And now we have a, I would say, fairly complete index.
One could argue that those are like very difficult problems that you know those products natively have not solved perfectly yet.
So how did you think about taking that on?
I don't know if that's like an offensive thing to other product teams, but like it's not working yet.
Yeah, it's kind of true.
Yeah, this has been something we talk about a lot because it's like, It's almost like what right do we even have to do this?
But it turns out that most of the companies are pretty bad at making their indexes somehow.
It's honestly kind of baffled us a little bit.
But I think my take, after dealing with all of this and working with the teams to try to get it working, is there's a little bit of just AI-pilled savviness.
That's pretty important.
And then I think most of it is honestly just a bit of craft and attention to detail.
In particular with this indexing retrieval stuff, in order to really get it working you have to be quite empirical and iterative and actually be trying queries.
Each data source is a little bit.
You can't just apply a one-size-fits-all to querying Slack versus querying Google Drive.
Let's say
They're completely different kinds of information.
And we found that there's just a little bit of craft and love that has to go into it in terms of actually trying a bunch of different queries, actually using it every day, iterating and rethinking and tuning how the retrieval works.
How did you think about the diversity of how people organize their workspaces?
And just, I mean, even Notion is not use of, it is not homogenous right.
Like I'm probably part of 15 workspaces as an investor.
And so I look at them and I'm like well, mine's a mess.
And these people are really organized and the workflow is reflected in how their notion works.
Yeah, totally.
I would say, I mean, the interesting thing is that with embeddings it almost doesn't matter as much anymore.
The AI doesn't really care what the tree structure is.
For example, all the AI cares about is that there's a snippet of text that has the context you need, and then it can retrieve it.
And so actually we kind of advise people now, like don't worry as much about organization.
Just, just, just find a way to get it all piped in and like, like thrown in there.
You still make decisions that could change performance, quite a bit like chunking strategy or whatever.
Yeah.
That's super important, but that's sort of not.
That's sort of a transparent to the user and sort of independent of their particular method of organizing things.
It just seems like still a difficult technical challenge given how different the content bases are.
Yeah, yeah.
Yeah, I think, yeah, that took a lot of iteration.
Yeah, the chunk sizing, how retrieval works, the different steps in the pipeline of retrieval.
Yeah, there's a lot of iteration on that.
Ivan said I should ask you, how many times you've rebuilt Notion and rebuilt your harnesses?
Yeah, it's kind of a running joke almost.
I mean, we rewrite our AI harness probably every six months or so, and the time to rewrite has kind of been decreasing, just because I mean like progress has been accelerating.
I think this is honestly a a really key thing, and something that a lot of companies get wrong is just like doing one thing and then just like, like sticking with it.
You really do have to keenly aware of what the current state of the model is and the technology is and then designing the harness and system and the product deeply around that.
And it basically means you have to rewrite it every six months and, um, I find it pretty fun.
It's part of the process.
You get to restart and rethink it.
We're about to release a new version of our harness in the next week or two.
And then we're already thinking about the one after that as well.
I think that leads to a set of questions I had for you on just how does notion as an engineering and product and research organization work now that you have the power of coding agents as well?
Because I imagine your willingness to rewrite the harness goes up dramatically if agents are going to help me do it.
Yeah, that's extremely true.
Yeah, I mean, yeah, it's been...
It's been really fun to use the coding agents.
I think the ambition of what I even consider building has gone up a lot.
What do you think has most dramatically changed in how you think about how engineering and product should work at Notion over the last two, three years?
Yeah, I mean, it's definitely changed multiple times.
I mean, in terms of the coding agents, we kind of went through multiple eras.
There was kind of like the tab autocomplete era, and then we got into sort of inserting, rewriting some code.
But it wasn't really until the agents started working.
I would say like early last year, we started to... atop the agents.
I started using Cloud Code I think around April of last year.
That was a huge unlock.
I would say the big shift there is that you can really push on getting these agents to end-to-end implement and verify and maintain stuff.
But it requires pretty significant thought in terms of how you architect things and what is the verification loop.
But the upshot is, I think, if you do it well, you can be much more ambitious about what you're building and also make it much more robust than you could have done with humans writing it.
And then the flip side is if you do it badly, it's all slop.
Does that change your lens of like what teams should look like at Notion like size seniority, anything like that?
Yeah, I mean, I would say I mean the fundamental effect is that you know everyone's individual impact in terms of their output can be much higher.
And your output increasingly depends on your ability and willingness to use the tools.
I think that's the fundamental thing that's happening.
And then, like, how does that play out?
I think I don't think we've seen that much impact on the, the team size.
Really, I think we we like to work in like a smallish tiger teams for the most part.
Um, I think if you can make teams small, it's almost always better.
That was true before.
And I think it's still true, uh, maybe increasingly a little bit, but, but, but not that much.
I think.
Yeah, the main thing is to just really harness the tools.
Do you think something different happens to the median engineer in an organization versus the 10x engineer or the engineer 10x more willing to use the tools?
Yeah, I think the gap is bigger.
You can be like a hundred or thousand X engineer if you use the tools right now.
I think the gap is much bigger.
Like the minimum bar has not changed, but the maximum bar has extremely increased.
One impact it's had internally, I would say, is like broadly, things feel like a little bit more messy and chaotic.
I would say like, but i kind of love that.
I mean it's like there's there's more proto, there's way more prototypes.
Uh, you know, people are like, for example, our uh design team made an, made an entire uh git repo.
They call it the design playground and it's essentially like a simplified notion uh, with a bunch of like UI primitives in it, and they've made it like really sophisticated.
You know it has like an agent in there and like, and it's pretty cool because it allows them.
All the designers can spin up like super high fidelity prototypes really quickly, and so it's no longer like pointing at a mock and being like you know, like how will this look like?
They'll give you like a URL to a prototype that's been deployed.
And that sort of thing is true all the way up and down the stack, you know, for all of engineering.
Just like a little more chaotic, more stuff happening.
All the PRs are more ambitious.
Do you draw a line somewhere about like stuff that is more dangerous to touch or sensitive?
Like there could be a risk of data loss over here and not?
Or is it kind of you look at it all as it's fair game?
We still do reviews on all the pull requests.
And I would say and, you know, all the pull requests are now written by agents.
They're often like larger and more complex.
That's like the worst part.
But the better part is that they're often like a much better tested and we can demand sort of a much better testing for the things that merit it.
I never produce a PR that like hasn't been like fully intent tested anymore.
And so it's like you can get to a pretty high degree of confidence that that it works.
But it requires like you're not just vibe coding by by saying the thing you want.
You're sort of thinking carefully about like, what is the thing I'm like, what is the change I'm trying to make?
And like, And how can it be verified?
And how can it be deployed safely?
And then enlisting the agent to help you with that process.
When you think about where you said the general assistant doesn't quite exist yet.
What do you imagine Notion's agents being able to do over the next year or two that are still unblocked.
They're still blocked by either capability or your harness work.
We struggled for a few years to build an agent um, and you know it always like like sort of works, but then you know, wasn't that useful largely, just it was too early.
So we, you know we, we tried to build an agent, i would say actually three or four times, And then we finally launched it last fall, so like last August September,
So if you use Notion AI now, it's like the full agent that has access to everything in Notion, pretty much.
So that totally works.
I would say a lot of the original vision that we had totally works now.
And it's like fully shipped last August, September.
August or September, we shipped our personal agent.
So it's pretty much every user in Notion has an agent.
And basically, it has access to all the things that the user has access to.
So, you know, it can create a database for you.
It can update things, create documents.
It can search the web, do research.
And then the second big thing that we just launched last week, actually, was custom agents.
So you can create a new custom agent and give it a name.
And unlike the personal agent, by default it doesn't have access to anything.
So you have to grant it access.
But then once you do, it can actually run autonomously in the background.
So, for example, you can give it access to its own database to file tasks, let's say, and then you can attach it to a Slack channel and then it will start responding to people on Slack and filing tasks.
That's one use case.
Another one is maybe you could give it access to a database of weekly reports and then let it search the web or search your workspace.
So it's sort of a custom agent, sort of represents some work or job, some knowledge work, tasks that you want to be done autonomously.
One thing I'm really excited about this going forward is We want it to be extremely good at sort of bootstrapping its own capabilities, basically from an initial kernel, allowing it to basically bootstrap itself to do anything right.
So even, for example, maybe building an integration that we don't support, yet deploying that and then using it.
So you imagine that Notion agents are actually the broader definition of agent where, like writing code is it tool it's got access to.
I think it's pretty key.
I think of coding agents as the kernel of AGI.
AGI will be a coding agent.
And code is just a really, really useful primitive for representing deterministic logic.
The thing that's really exciting about it replying it to a knowledge work agent is that It can bootstrap a capability.
So like I said, if integration doesn't exist, it can build it.
If it needs to connect itself to a new data source, it can do that.
Given you have a notion, is that scale?
But is it operating in a landscape of productivity and platform players that are at even more scale?
Right,
Many of these will end up with their own agents.
Lots of people from the labs, the Microsoft world are trying to integrate other data sources.
It's like cross attempt to integrate an index.
Like, how do you think that plays out?
Like what do you, what do you imagine that Notion agents are best at, or what they have the right to go do?
If you look at the landscape, I would sort of say there's the labs and then there's maybe the software platforms and then there's maybe infrastructure.
In terms of the labs, we see ourselves as kind of like the Switzerland for models.
We think, and our customers, they don't want to be locked into a certain labs model.
They're always releasing new versions.
Any given month, one is better than the other.
So we want to be a place where basically, you can easily get access to all the best models at any time and you can easily switch around.
Do you think open source plays into that as well?
Yeah, yeah.
Absolutely.
I think the open source models are actually getting really good.
There's like four different Chinese models now that are quite good.
We actually just released one of them in our agent last week and we're going to do all four for sure.
They're actually quite good, and they're way cheaper than the Frontier models.
So I think there's a lot of use cases where you'd want that, and we want to give that as an option.
In terms of the other.
So we think of our role as taking all the best models that we can, Creating really high quality, state-of-the-art agent implementations where people can easily and conveniently get access to them.
And then making sort of a collaborative workspace that is really good for humans and for the agents to coordinate on.
I think it's something that's very needed in the world, and We're just trying to do it in a really tasteful, well-executed way.
You were describing you need the index to make the agents good.
You give the agents access to the tools that we humans have in Notion.
How do you think about the structure of Notion and where it's useful, or even useful, not useful or relevant for agents like blocks and databases and such?
It's all still pretty useful, extremely useful.
There's been a challenge to sort of, you know, we want to make it really convenient for the agent.
That's a new thing that didn't exist.
In the past it was convenient for humans, and then we also made APIs convenient for humans.
Writing code.
Here's our API.
So we essentially have a new customer, which is the agent.
At first, that was definitely a problem.
So, for example, our API uses this crazy JSON format for blocks that by default is like crazy, verbose and horrible for the agent.
But we basically took on that challenge and designed just really convenient APIs for the agent.
We created sort of a markdown dialect that looks like the default normal markdown, but it's sort of enhanced with all the Notion blocks.
And the models are really good at it.
It works really well.
So that's how it reads and writes the pages.
And then for databases, we use SQLite.
So basically it gets to speak in SQLite, which also works really well.
So the default thing did not work really well, but then we just took that on as an engineering challenge.
And I would say now we have like extremely convenient APIs that the agents are really naturally good at.
How did you understand or figure out what would make the API better for agents?
That's a good question.
Yeah, I would say it's a combination of just trying things.
It's very empirical.
So we're just playing around and noticing, oh, it's not very good at that.
Oh, that's way too many tokens.
How can we make this smaller?
And then a little bit of just like like, first principles, thinking of, like you know, what is it the models are being trained on and what's what's in their prior, what do they know and what do we think it would naturally be good at, and and like like, how does the agent loop work?
And like what, what would be the convenient, efficient pattern for for accessing these things?
Um and so, and then, just you know, a lot of playing around.
I hear user research, where the user is actually agent, and then ongoing eval.
Yeah, you just chat with it.
The user's always there.
It's ready to talk to you.
Yeah, actually, that is wonderful where you have infinite access to it.
You have infinite access to it, yeah.
And you can script and scale the access as well.
I assume you have...
Actually, I know you do because you walked in.
You're like, hey, I need to get access to Wi-Fi.
I need power.
We can't block the agents while we're doing this.
What do you have running right now?
Tell me about your setup.
I'm working on a new prototype.
And so I have a couple agents.
I'm working on that.
And then, yeah, my setup these days is just either Cloud Code or Codex.
I like the CLI tools.
They're great.
They're super simple and work pretty well.
I'm pretty comfortable in the CLI.
And then, yeah, my... You don't need my generated game to teach you CLI commands.
It's a very cool idea.
I would say yeah, my whole goal these days is essentially to just have as many running as possible and to run them all the time.
So, for example, every night before I go to bed...
I'm like, okay.
Let's go, guys.
Yeah, basically what I have to do is make sure that I've given it enough stuff that by the time I wake up in the morning it will still not be done.
That's victory.
Yeah, that's victory.
So yeah, I've done that, I would say, less five nights pretty well.
My personal record is that I've had a coding agent running for I think it was 13 days straight without stopping.
And just basically working through tasks.
Well prompted.
Yes, I admit to having woken up in the middle of the night at least multiple times this week.
I'm just being like, are you still going?
Yeah, I know.
Yeah, it's...
It's kind of nerve wracking.
I always like there's always like I'll check it one last time before bed and just really make sure that it's still spinning.
What about on the Notion agents?
Like do you have a workflow there that is core to daily work?
Yeah, I mean, I mean, I use our personal agent all the time.
So it's.
It has all the context about, about our company and everything that's going on, you know.
So, like
For example, last night I was asking you about how the custom agents launch was going and what the signals were getting from it.
We're super useful for that.
And then I have many custom agents that are running.
My personal favorite is I have an email triage agent, so it has access to all of my work and personal emails.
And it just wakes up every day and just archives all the stuff I don't need to see.
I train it over time to learn my preferences.
Do you actually label data for it?
It's pretty easy to do this, actually.
So all you have to do is you make the agent and then you give it access to your email.
And then you can make a blank page.
It's like it's memory.
And you let it edit that page.
And then you just say, okay, now go look at my emails and then interview me.
Ask me which things, you know.
So sort of it will like propose things that it thinks it should archive.
And then you can kind of correct it.
And then we'll use that to essentially generate, like a list of rules about like what it thinks are correct or not.
And so for the first couple of days, I was sort of like, like, like, correcting it on things.
After a couple of weeks or so, I dropped the approval entirely and it just automatically archives all the things that I need to see now.
Wow.
A lot of trust.
It completely solved my email problems because for me, I don't use email that much for work stuff.
It's mostly in Slack.
95 of the personal emails and work emails that I get.
I don't need to see it all, and so it's just a waste of time.
And so it completely solved that.
So now when I open my inbox, it's like, only stuff I need to see.
I've got lots of custom agents running.
There's another one that I built that triages all internal feedback and bugs.
So we have a Slack channel where basically People just post random product feedback and bugs.
In the past, it would sort of sometimes get answered, but then sometimes haphazardly get ignored.
Just because there's so many teams working on things.
So its entire job is just to route it to the right place.
And it uses a similar sort of memory pattern where it sort of learns on the fly uh, where it's supposed to file bugs.
Uh, and then over time it's built up like, like hundreds of roles that it just, um, sort of like, like learn over time, you know?
So, for example, like there's a, there's a blog about the mobile app and there's the route to the mobile team and then a file, a task, in their database.
Do you look at that?
Um, like the generated an updated memory, like because it's legible to you to say, like that makes sense to me.
I think i did it.
I did at first uh, but then sort of once you trust it's kind of working, you just you kind of ignore it and then if, if it ever breaks i'll, i'll go fix it.
It it'll break every now and then and then um, but the benefit of not reading your email is Yeah, I mean generally, I would say yeah, the general pattern I follow is sort of I build it as a prototype.
I have it in sort of like an approval mode where I'm sort of, you know, watching it closely.
But then after it runs a bunch of times, you kind of trust that it's working.
Is there anything you do internally at Notion to make sure non-technical teams have the intuition for how to build agents or how, to like, express that productivity too?
Yeah, that's a great question.
I mean, we do sort of workshops and hackathons pretty frequently.
So like, for example, like a month ago, I did a hackathon with the people team and sort of got them.
The people team has been amazing.
They're actually one of the the highest adopters of custom agents.
You know they do all these kind of workflows in like Slack and Notion, kind of like manual work, like that.
And yeah, I would say yeah, like people are super excited to try it and sort of like.
Maybe just need like a little bit of a push in terms of intuition and like getting them started.
But then, honestly, I've been super impressed.
Like I think the concept is Like kind of intuitive sort of like, once you get past sort of a little bit of the technical barrier of like what is a prompt and like what is the agent and how does it get triggered and woken up, and like how does that even work?
But then once you sort of get past that, I think it's actually a very human-like interface.
Yeah, maybe the biggest barrier is actually just getting people to try and assuming it's going to work at all, right.
Yeah.
You and Ivan originally met on the Internet, Tools for Thought community.
It feels like the tools we have for thinking are very different now.
Has your core conception of Notion changed over the last few years because of all the AI stuff?
What thinking does the tool do for you?
Should agents do for you?
What do you get to do?
Yeah, I mean, it's, I would say, changed quite a lot.
I mean, broadly speaking, before AI.
Our goal was to create the best tool for humans to directly perform their work.
And then now the goal is to create the best tool for humans to manage agents, to do the work for them.
That's a big shift.
That's a pretty big shift.
Uh, it's, it's pretty fundamental.
Um, but it, it turns out that you need most of the same primitives.
Uh, you actually, all the primitives that we built are actually still extremely useful.
It's, it's more that we just needed some, some new primitives like, like representing what is an agent and how does it interact with your pages and databases.
But, You still need the same primitives.
You still need a document.
It's an unstructured way to write stuff.
Agents love to write markdown documents, so it's still very relevant.
And you still need a database.
You still need structured data.
If you're working with your swarm of 100 background coding agents, you don't want to have 100 chat threads.
You want a Kanban board.
It's the same as before.
Makes sense.
You still need the coordination structure.
What is one thing that, just because you're ahead on this stuff and then trying to figure out how to bring Notion and then users along with you, what is something that's really changed about how you personally build even in the last six months?
I mean, it's completely changed.
I haven't written code since like last summer.
I don't type code anymore.
Yeah, it's completely shifted.
I mean we went from humans type all the code to like we're still typing but we like tab complete, to sort of like we talk to the agent and it sort of does little tasks for us but we are still in the outer loop.
And then now it's more like I design a end-to-end task that involves making some change and end-to-end verifying it.
And then I'm just the outer verifier, sort of like double-checking at the very end, that it's correct.
And if it's going off the rails, kind of like monitoring it.
So it's a complete shift.
I'm now like the agent manager instead of the coder.
Amazing.
Well, thanks, Simon.
It's been a super great discussion about how we're all going to become agent managers and hopefully in Notion.
Cool.
Yeah.
Find us on Twitter at NoPriorsPods.
Subscribe to our YouTube channel if you want to see our faces.
Follow the show on Apple Podcasts, Spotify, or wherever you listen.
That way you get a new episode every week.
And sign up for emails or find transcripts for every episode at no-priors.com.