WEBVTT

NOTE Sentence-level transcript of https://www.youtube.com/watch?v=v0UkV5qS9E4

NOTE One cue per sentence. Cue ids are the line anchors on /transcripts/v0UkV5qS9E4.html. A cue ends where the next begins, or 2 s after its last word.

s1
00:00:01.309 --> 00:00:03.309
[music]

s2
00:00:12.880 --> 00:00:14.960
I was previously an analyst in a previous life.

s3
00:00:14.960 --> 00:00:20.640
I was a vice president at Coatue for about 3 years specializing in late stage private software investments.

s4
00:00:20.640 --> 00:00:30.120
Spent way too much time in Excel, PowerPoint, and late nights doing that type of work and so decided to split and start building tools to replace my old job.

s5
00:00:30.120 --> 00:00:35.440
Quick show of hands, how many people in here have used Muser Instinct in the last day?

s6
00:00:36.240 --> 00:00:40.440
All right, I expected more hands, but uh maybe people are too shy to raise them.

s7
00:00:40.440 --> 00:00:48.560
And how many people know an analyst in finance that fully delegates their work to AI, like fully hands-off running autonomously?

s8
00:00:48.560 --> 00:00:49.840
All right, one.

s9
00:00:49.840 --> 00:00:52.200
But a lot fewer.

s10
00:00:52.600 --> 00:00:57.560
I think if you think about the question, why did personal agents take off within the last 3 months?

s11
00:00:57.560 --> 00:01:00.600
Internally, we came up with three main answers.

s12
00:01:00.600 --> 00:01:02.880
The first, reliable background agents.

s13
00:01:02.880 --> 00:01:08.160
You can delegate a task, book a restaurant, book a flight, and it'll do it reliably now.

s14
00:01:08.160 --> 00:01:10.960
Computer use agents have gotten sophisticated.

s15
00:01:10.960 --> 00:01:14.120
The models themselves have gotten better.

s16
00:01:14.240 --> 00:01:15.760
The second is proactivity.

s17
00:01:15.760 --> 00:01:17.120
It'll do things without you asking.

s18
00:01:17.120 --> 00:01:25.600
It's part of that magical experience when Instinct wakes you up saying it's your wife's anniversary, go buy some flowers, or better yet, I already bought the flowers for you.

s19
00:01:25.600 --> 00:01:27.080
And finally, integrations.

s20
00:01:27.080 --> 00:01:30.080
It's connected to the systems of context that matter most for you.

s21
00:01:30.080 --> 00:01:33.600
Email, drive, calendar.

s22
00:01:34.440 --> 00:01:43.120
But all the factors that make personal agents work so well doesn't really translate to institutional finance today.

s23
00:01:43.120 --> 00:01:57.440
If we think about background tasks, something as simple as booking a restaurant reservation, the analog equivalent in buy-side finance might be how do you go from a data room to a fully prepared set of IC models, slides, and memos,

s24
00:01:57.440 --> 00:02:05.292
taking a process that would normally take 4 weeks, multiple rounds of iteration and review, and compressing that to a few days.

s25
00:02:05.292 --> 00:02:16.452
If we think about proactivity, your managing director doesn't really want agent rogue running around doing a bunch of things and burning tokens without them providing and soliciting input.

s26
00:02:16.452 --> 00:02:29.652
And then finally, if you think about the context that matters, it's not just email, it's not just calendar, it could be a data room with 15,000 files, it could be SharePoint box with petabytes of unstructured data a firm has collected in its 40-year history.

s27
00:02:29.652 --> 00:02:32.852
So, how do you deal with these problems?

s28
00:02:32.972 --> 00:02:41.492
So, the purpose of today's talk is to discuss a bit more about how we at Compound have approached the problem of solving long-running agents in finance.

s29
00:02:41.492 --> 00:02:46.492
On one hand, it's creating a real teammate that collaborates with you and the deal team.

s30
00:02:46.492 --> 00:02:49.532
So, that's multiplayer embedding that into the app.

s31
00:02:49.532 --> 00:02:57.652
On the other hand, it's solving for how you can you run long tasks in parallel in the background, reliably execute them.

s32
00:02:57.652 --> 00:03:01.092
And so, for that, we actually rebuilt Office from scratch.

s33
00:03:01.092 --> 00:03:07.732
And then finally, it's how do you manage the context of everything, everything we just discussed, petabytes of data in SharePoint and Box.

s34
00:03:07.732 --> 00:03:12.052
And we'll talk a little bit about how we've designed a solution for that.

s35
00:03:12.452 --> 00:03:17.132
So, the first question we have to ask, I think, is why does multiplayer actually matter for finance?

s36
00:03:17.132 --> 00:03:30.012
If you look at the anatomy on a deal team, right, the type of tasks that matter for long-running type of workflows, for example, going from a data room into all the sorts of materials that make its way in front of an investment committee,

s37
00:03:30.012 --> 00:03:33.052
it doesn't work for the single-player siloed workflows.

s38
00:03:33.052 --> 00:03:39.412
Today, for people who have deployed Claude or ChatGPT in their institutions, it's all single player.

s39
00:03:39.412 --> 00:03:47.852
People working in a plugin, people working in the web app, producing outputs, but invariably, those people need to collaborate with their team.

s40
00:03:47.852 --> 00:03:48.732
And what does that look like?

s41
00:03:48.732 --> 00:03:55.012
It means downloading the file, uploading it into email, uploading it to Teams, asking for feedback.

s42
00:03:55.012 --> 00:04:02.052
I think the right way to approach this, and this is the way we've thought about at Compound, is how do you get every person who matters on a deal onto the same thread?

s43
00:04:02.052 --> 00:04:10.454
How can they all talk to the same agent so that one agent can share the context of everyone who matters for any particular work stream?

s44
00:04:11.094 --> 00:04:17.654
When we thought about how do we actually bring multiplayer into a familiar context, we looked again towards personal agents.

s45
00:04:17.654 --> 00:04:19.014
Why did they work so well?

s46
00:04:19.014 --> 00:04:23.334
Well, you can easily text one in iMessage or you can text one in WhatsApp.

s47
00:04:23.334 --> 00:04:27.694
So for agents at Compound, every single one you create comes with a built-in inbox.

s48
00:04:27.694 --> 00:04:32.294
Because ultimately at the end of the day for institutional finance, most workflows run through Outlook.

s49
00:04:32.294 --> 00:04:35.094
You'll have chains of emails 20 or more running.

s50
00:04:35.094 --> 00:04:39.374
You want an agent to be part of every single one of those conversations.

s51
00:04:40.254 --> 00:04:43.974
Designing email for agents is actually non-trivial.

s52
00:04:43.974 --> 00:04:47.054
It's not just as simple as hooking it up with an email inbox.

s53
00:04:47.054 --> 00:04:54.094
It requires A, authenticating, making sure everyone part of that thread has read and write access to that agent.

s54
00:04:54.094 --> 00:04:57.494
Ultimately at these financial firms, privacy is incredibly important.

s55
00:04:57.494 --> 00:05:00.174
You're always under NDA no matter what deal you look at.

s56
00:05:00.174 --> 00:05:03.694
And so you want to make sure everyone on that thread can actually talk to the agent.

s57
00:05:03.694 --> 00:05:08.334
But then beyond authentication, you also have to think about how do you design a real human-like experience?

s58
00:05:08.334 --> 00:05:10.854
Because after all, we're trying to create a real teammate.

s59
00:05:10.854 --> 00:05:17.694
If multiple people email in the same thread in quick succession, you don't want multiple acknowledgements spamming that group.

s60
00:05:17.694 --> 00:05:21.454
You actually want to bake in some more latency to make it feel more human.

s61
00:05:21.454 --> 00:05:27.814
And so there are other design decisions when thinking about how to create real email agents for enterprise finance.

s62
00:05:28.334 --> 00:05:37.534
But multiplayer aside, we realized even after you solicit the input of everyone who matters, if you wanted to scale up the number of tasks and run them all in parallel,

s63
00:05:37.534 --> 00:05:40.494
existing off-the-shelf solutions simply don't cut it.

s64
00:05:40.494 --> 00:05:41.774
We evaluated a lot.

s65
00:05:41.774 --> 00:05:45.174
The desktop plugins of Excel, PowerPoint, and Word.

s66
00:05:45.174 --> 00:05:52.814
We evaluated computer use using virtual machines to try to scale up the number of agents that could work in Excel, PowerPoint, and Word natively.

s67
00:05:52.814 --> 00:06:01.294
And we also evaluated a ton of off-the-shelf engines, whether those are open-source packages like Open PyExcel or commercial engines that are available for purchase.

s68
00:06:01.294 --> 00:06:04.335
None of them really cut it for what we were trying to look at.

s69
00:06:04.335 --> 00:06:13.095
And with coding agents dramatically improving and bring the cost of software down, we decided to just build our own office from scratch.

s70
00:06:13.095 --> 00:06:23.255
And like a great AI engineer would, we ran agents in many loops, spend 1.5 trillion input-output tokens and over 8 million lines of code to rewrite office from scratch.

s71
00:06:23.255 --> 00:06:25.975
And I'll walk through a little bit of how we approached it.

s72
00:06:25.975 --> 00:06:34.455
But it's as simple as pointing agents at an objective function, which is recreate office in full fidelity, and then letting it run.

s73
00:06:34.455 --> 00:06:37.255
So, take Excel as an example.

s74
00:06:37.255 --> 00:06:39.815
We started with an open-source solution called Iron Calc.

s75
00:06:39.815 --> 00:06:46.775
We decided, "Okay, how can you recreate this perfectly for Excel, use office as an oracle, and just run loops?"

s76
00:06:46.775 --> 00:06:53.855
Benchmarking it on real files from both real-world corpus that we grabbed online, and also ones that internally we created.

s77
00:06:53.855 --> 00:07:03.335
And 800,000 lines of Rust later, we had a performant much more performant compared to Excel, one-for-one replica of the product.

s78
00:07:03.335 --> 00:07:08.695
With this, we're actually able to do that for not only Excel, but also PowerPoint and Word.

s79
00:07:08.695 --> 00:07:08.975
Right?

s80
00:07:08.975 --> 00:07:13.015
So, we ran loops across every single one of these products, and we have faithful recreations.

s81
00:07:13.015 --> 00:07:16.255
You can try it for yourself today at the compound.ai.

s82
00:07:16.255 --> 00:07:20.375
And it's the same method, loop agents against office as a judge.

s83
00:07:20.375 --> 00:07:26.175
Using Rust renders to make sure that the rendering of these products was pixel perfect.

s84
00:07:26.175 --> 00:07:30.055
So, what you see in Compound is what you see when you download to office.

s85
00:07:30.055 --> 00:07:37.815
We needed one-for-one parity because at the end of the day, these firms only trust what they can download and they what they can send.

s86
00:07:38.375 --> 00:07:40.415
Now, let's talk about performance.

s87
00:07:40.415 --> 00:07:45.655
Why is a headless engine so much better compared to using a VM or using desktop Excel?

s88
00:07:45.655 --> 00:07:50.815
Well, for one, desktop Excel or PowerPoint or Word is bound to that CPU.

s89
00:07:50.815 --> 00:07:54.775
With headless engines, you can do tasks in parallel much, much faster.

s90
00:07:54.775 --> 00:07:58.415
You can build out a complex model in a much shorter amount of time.

s91
00:07:58.415 --> 00:08:02.375
You can recalculate 20 MB Excels 4x faster.

s92
00:08:02.375 --> 00:08:12.057
So, every single piece of work of an analyst would expect an agent to do cuz again, their expectation is quality of the human at much lower speed and much lower cost.

s93
00:08:12.057 --> 00:08:14.697
You have to have a headless engine to do this.

s94
00:08:14.697 --> 00:08:20.897
If you try to scale this up with Excel and PowerPoint, I think you'd be going down the wrong path.

s95
00:08:21.297 --> 00:08:23.097
But, it's not just about performance.

s96
00:08:23.097 --> 00:08:32.977
Owning the editor actually allows you to create a much richer product experience that allows you to work and collaborate with agents asynchronously much better than you can with other products.

s97
00:08:32.977 --> 00:08:39.257
So, this entire slide deck you're seeing today, I built in Compound just by dropping in comments.

s98
00:08:39.257 --> 00:08:45.457
I had it create a first draft, and then as you can see here on the UI, I dropped in comments for every single piece of formatting.

s99
00:08:45.457 --> 00:08:52.297
From my consulting days, from my Coatue days, all the learnings I had on what makes a great slide, I imparted with the agent.

s100
00:08:52.297 --> 00:08:53.737
This can also work for multiplayer.

s101
00:08:53.737 --> 00:08:59.857
You can have multiple people part of the same team using the same multiplayer infrastructure we set up, dropping in comments.

s102
00:08:59.857 --> 00:09:08.457
So, for a team of five, you can rip through a 100-page deck in an afternoon rather than sitting in a room revising it for multiple weeks.

s103
00:09:08.897 --> 00:09:14.817
Finally, with respect to building your own engine, it also allows us to run iterative checking loops much more as well.

s104
00:09:14.817 --> 00:09:21.257
So, if you have a task that, for example, is writing a complex model, it might take a few hours.

s105
00:09:21.257 --> 00:09:22.857
But, how do you How can we make that faster?

s106
00:09:22.857 --> 00:09:24.417
How can we make it more accurate?

s107
00:09:24.417 --> 00:09:29.377
If you're using, for example, an OpenPyXL code library, there's no render you can use to check formatting.

s108
00:09:29.377 --> 00:09:37.297
You're just guessing and hoping that the model writes the right thing, and maybe you do some parsing to see a cell has a particular color, has a particular font.

s109
00:09:37.297 --> 00:09:44.657
If you try to use Microsoft's own interface, you're going to be limited by what Microsoft provides you, which is admittedly very little.

s110
00:09:44.657 --> 00:09:49.537
So, with an own engine, you actually own the write, render, check, and fix loop.

s111
00:09:49.537 --> 00:09:54.617
So, you can rapidly iterate on the output for the user.

s112
00:09:55.337 --> 00:10:04.217
So, the last thing I sort of want to discuss today beyond multiplayer and building our own office is how to deal with the context that these firms have.

s113
00:10:05.617 --> 00:10:11.258
For firms on the buy side, they deal with situations where cross is both breadth and depth of data.

s114
00:10:11.258 --> 00:10:18.858
You may have situations where you have a data room of over 15,000 files, and then files in that data room might be well over 20 megabytes.

s115
00:10:18.858 --> 00:10:22.658
People in finance complain all the time, "Hey, I have an Excel model that's 30 megabytes.

s116
00:10:22.658 --> 00:10:29.618
It takes 5 minutes to recalculate because we have 2 million formulas and five sensitivity tables that need to recalculate every single time."

s117
00:10:29.618 --> 00:10:31.978
So, how do you deal with this?

s118
00:10:31.978 --> 00:10:39.178
Well, for breadth, I think again we take a look at a page out of the coding book and apply agent swarms to the large number of files.

s119
00:10:39.178 --> 00:10:44.418
No longer do you have to index everything in a vector DB unless it's for it's for a very specific use case.

s120
00:10:44.418 --> 00:10:55.218
It's actually much preferable to use coding agents to read files either through grep or through some other methodology, and then have a lead agent slice the contents of the file directory,

s121
00:10:55.218 --> 00:10:58.618
and then have swarms of agents come back to you with insights.

s122
00:10:58.618 --> 00:11:04.058
And then you iterate that in a loop until you're satisfied with the output required.

s123
00:11:04.058 --> 00:11:13.658
Furthermore, through this process you're actually able to ground every single finding inside citations in the source document, so that you know exactly what you show on the screen is linked to some number

s124
00:11:13.658 --> 00:11:16.338
that the analyst can trust.

s125
00:11:16.938 --> 00:11:19.578
If we think about the depth of data, right?

s126
00:11:19.578 --> 00:11:21.778
Take that 30 megabyte workbook.

s127
00:11:21.778 --> 00:11:25.098
How can you actually process this more accurately?

s128
00:11:25.098 --> 00:11:34.298
In today's world, if you were to just use ChatGPT or Claude off the shelf to process that 30 megabyte model, it would write code, it would use open-source packages like openpyxl.

s129
00:11:34.298 --> 00:11:42.338
It would be expensive and slow because it's printing out every single piece of context about that model in code for the model to read.

s130
00:11:42.338 --> 00:11:51.898
But because we've developed our own engine for Excel, we're actually not only more accurate, but a lot faster and cheaper because the engine processes it and then lays it out in a very

s131
00:11:51.898 --> 00:11:56.138
easy-to-read and easy-to-process format for the model.

s132
00:11:56.138 --> 00:12:02.578
This means we can expose a much richer set of APIs and a much richer set of tools for the agent to work over.

s133
00:12:02.578 --> 00:12:08.018
And that allows us to process these models in a much faster manner.

s134
00:12:08.138 --> 00:12:13.658
So, if we sort of take a step back and think about, "Okay, what is all of this context built for?"

s135
00:12:13.658 --> 00:12:21.379
At the end of the day, what we want to do is prevent people from spending time finding files, from reminding the model this is how to do things.

s136
00:12:21.379 --> 00:12:24.859
Instead, they should be focused on importing their judgment on the deal process.

s137
00:12:24.859 --> 00:12:31.699
They should be focused on tailoring, training agents, and deploying them on every part of the deal flow.

s138
00:12:31.699 --> 00:12:41.659
And so, it goes from the bottom level, connected sources, off-the-shelf, you know, connectors to SharePoint or Outlook, to the cited findings grounded in the sources that matter.

s139
00:12:41.659 --> 00:12:45.579
And then finally, embedding in the preferences, company knowledge that matters.

s140
00:12:45.579 --> 00:12:46.459
How do you do it, model?

s141
00:12:46.459 --> 00:12:47.219
How should it look?

s142
00:12:47.219 --> 00:12:48.979
Which differs by every single firm.

s143
00:12:48.979 --> 00:12:53.139
So, that for humans, they spend most of their time imparting judgment.

s144
00:12:53.139 --> 00:12:56.619
They spend most of their time thinking about is this actually good deal?

s145
00:12:56.619 --> 00:12:58.339
Not did all the numbers tie?

s146
00:12:58.339 --> 00:12:59.579
Does the model look right?

s147
00:12:59.579 --> 00:13:03.699
Will my VP yell at me because it looks different way?

s148
00:13:03.979 --> 00:13:06.939
So, Oh.

s149
00:13:06.939 --> 00:13:09.579
Cursor needs to update.

s150
00:13:10.899 --> 00:13:23.739
If we take a step back and think about the type of tasks that currently are on autopilot um versus what are on copilot, I would say there's already several finance tasks you can do pretty well with off-the-shelf tools.

s151
00:13:23.739 --> 00:13:29.459
Spreading comps, as the ChatGPT head of finance mentioned earlier, they have now their own products for this.

s152
00:13:29.459 --> 00:13:33.899
But I think there are a lot of longer running tasks that are not capable with existing solutions.

s153
00:13:33.899 --> 00:13:37.739
How do you draft a 50-page IC presentation off the cuff?

s154
00:13:37.739 --> 00:13:46.539
How do you get agents to build out a model exactly the way you want it for a private equity professional or a hedge fund professional?

s155
00:13:46.539 --> 00:13:52.019
I think those are tasks that with off-the-shelf tools still exist as co- as sort of within the copilot realm.

s156
00:13:52.019 --> 00:13:57.659
People want to be embedded deeply in that process without letting go.

s157
00:13:57.659 --> 00:14:05.099
But with some of the tools we've built today, I think we're able to expand the aperture for which autopilot can take over in finance firms.

s158
00:14:05.099 --> 00:14:12.659
So, rather than just using tools embedded in Excel as plugins, hand-holding along the way, you can start delegating.

s159
00:14:12.659 --> 00:14:16.661
You can start becoming more ambitious about what AI is capable of.

s160
00:14:16.661 --> 00:14:27.541
If I think about where we are today in the world of finance, it very much reminds me of when Opus 4.5 launched last December, where people stopped using code

s161
00:14:27.541 --> 00:14:34.421
as a simple co-pilot to generate the next file or the next line of code, but they started delegating far more ambitious tasks.

s162
00:14:34.421 --> 00:14:37.901
They started realizing, maybe I can just truly vibe it.

s163
00:14:37.901 --> 00:14:44.661
If I have sufficient checks, if I have sufficient tests, maybe I can just trust all the code it writes.

s164
00:14:44.661 --> 00:14:53.541
I think with some of the tooling we've built today, along with what we're planning in the future, these are the type of problems you have to solve before you get to that point for finance.

s165
00:14:53.541 --> 00:14:58.181
How can analysts, how can the entire deal team become more ambitious with AI?

s166
00:14:58.181 --> 00:15:08.741
How can they just drop in a data room and decide, okay, I'm going to trust every single one of the outputs, and then let's do that tenfold so we can see more deals, so we can expand the aperture of what matters.

s167
00:15:09.141 --> 00:15:13.181
So, to conclude, enterprise agents are certainly coming to finance.

s168
00:15:13.181 --> 00:15:21.181
I strongly believe we're at an inflection point in the adoption curve, and that people are slowly becoming more ambitious, and they're moving away from co-pilots to auto-pilots.

s169
00:15:21.181 --> 00:15:24.981
And so, this was sort of how we've approached it here at Compound.

s170
00:15:24.981 --> 00:15:30.701
If you work at a firm and you're interested in deploying our agents to drive more of your deal work, please reach out.

s171
00:15:30.701 --> 00:15:37.861
Or if you're engineer and you're curious about talking about our approach and sharing ideas, please either reach out online or I'll be around if you want to find me.

s172
00:15:37.861 --> 00:15:40.101
Thanks so much.
