# A Hedge Fund as a Function — Frank Long — session 2026-10-13T20:30:00.000Z → 2026-10-13T20:48:00.000Z

_65 transcript lines · 35 slides_

## Transcript

The topics that are being talked about we are going to continue to see those play out over the next twelve, twenty For thirty six months. I've had a variety of conversations like this throughout the day to fusion gap, open source versus fine tune models. How hard it is to hire great AI engineers at scale. And so as we go about the rest of today, but also as you think about the conference in general, use the content as a starting point to have interesting conversations at the edge. With that, I would love to introduce you to our next talk, which is with Frank Long. Head of A. I. At COTU. He's going to be talking about a hedge fund as a function. Let's welcome Frank. Hello. Exciting to be here. My name's Frank. I work at COTU, which is a technology investment firm across public and private markets. So in our Business, what you really need to do is be able to take high conviction bets on big themes and watch those play out. I think, honestly, a career is the same way. And last year, when I joined Coachu, the bet that I wanted to make was, I think that agents will have an even bigger impact in investing than they did at coding. I know that's a big statement. We're all here because of the transformative impact that AI has had in coding. But I really believe it strongly, and today I want to talk a little bit about the framework that We use to actually realize that impact. So at a high level, you can think about a hedge fund as a function that takes in two parameters, context external and context internal, and spits out one tuple selection size timing what stock how much when Right? And I think this is a good framework to actually... To ground our work, which is we're trying to solve this compression problem. Of how do you take all the information in the world and spit out this one simple tuple. And the product that we that we provide is essentially a time series of this tuple that constructs a portfolio. So let's start from the top, which is the inputs. Very simple philosophy. We use our screens. We look at stuff. We do work. Every single thing that a human can see in pixels on the screen, an agent in your building should be able to see via API. The analogy I use is Imagine you brought the smartest people ever, the greatest investors alive, and you brought them into your company, but you gave them a computer without logins to 75% of your services. It's almost immaterial how smart the system is if it doesn't have the tools to actually action that. So the two parts, external context. Right? No surprises here. Think the news, prices, filings. All of that should be easily accessible, and not via dragging and dropping, copy and paste. Like, directly via API. Internal context is just as important. Right? So this is your own firm situation. So that might be our current positions, potential liquidity and risk requirements we have around certain names, and past case studies or, you know, history with a certain sector or stock or management team. That stuff's all super important. So this is the foundation, and I think, no credit to me. Coachu has been Amazing leader on this for over a decade. It's both technological and cultural. We have an amazing data science team, amazing amazing processes, amazing amazing systems that bring all this in. And just as importantly, we have a culture that is super, super rigorous, and built from the ground up to capture all this insight. For decades, we filed every single note about every single trade, about every single decision we made or didn't make, about what went well and what didn't go well. And that has poised us to expose us to AI. So if you think about it, I probably can't just take all of those things, jam them into a context window, and get my magic three numbers and go home. Right? It can't be that easy. You probably have to break down this function a bit further. Right? So maybe the first step is I take in that external internal context, and I gather it. Right? I want to gather it. I want to filter out what's relevant and not relevant. Oh, okay. Well I pulled some news articles about the NBA that probably isn't material to stocks, but, oh, well, this is actually related to some local permitting that might actually impact data centers. Like, there's a lot of nuance in this gather step. Then you'll see probably the next step is I need to analyze that information and form a view. Right? I actually need to think about what that means for the markets, public and private. And then I need to take that view and turn it into To a decision. A Decision Object has these three parameters, right? These three sort of sub pieces. So you can see every single step has an input and an output, and the input for the subsequent step is the output that the previous function generated. I think, as an engineer, this is a way for me to conceptualize the problem in a way that makes a lot of sense. But even this, it really can't be as simple as writing three functions, right? So let's just... To really appreciate the scope and understand the full complexity of the problem, let's look into the first step, a tiny sub piece of a tiny sub piece of just gathering information, and let's do a case study on interpreting the news. Right? So it's probably no secret to you guys that, you know, news from Asia and Korean media outlets has been super important this year, because semis AI have been a huge huge theme in the market. Huge theme. And I think this is an area where AI is poised to have a lot of impact, is reading, Korean language news better than our completely non Korean speaking staff. Right? I think I have a good thesis that this might be a good use case. So you can imagine the first step is, I have, articles. I need to collect the articles. Right? So this could be an MCP. This could be a CLI. License the data feeds, clean the data feeds. There's actually a lot of ways to do this and a lot of dimensions of freedom for how you can even just write this simple piece. How do I chunk it? When I pass it to the LMM, do I want to pull the images as images? Do I want to pull the images, and then turn the images into text? There's actually a lot of knobs here. And I almost think about those knobs as like hyperparameters in a traditional machine learning system. Right? I think about each of these knobs Just something for me to tune and optimize against. Obviously, filtration, we talked about it. Korean... They're probably Korean NBA fans. Right? There's probably a bunch of stuff that's not necessarily material to the the names and themes and stocks in our portfolio that really, really matter. Right? So I want to make sure that I filter those out. There's this, like, translate slash extract slash should I suck? Summarize? Should I extract this into some sort of structured form? Again, so, so many ways to do this, so many ways to experiment how to expose information to the model. One of the reasons this is hard is, it keeps changing. And obviously, checking checking our own internal notes, our own internal views, potential conversations we've had, meeting recordings against these things. We actually need to cross reference those things. Actually the idea of pulling information from disparate sources and cross referencing That's super powerful. So you'll see on on the right here. I have code, l m, l m, code, person. There's many many ways to run these functions. I think about, oh, yeah. And finally, update. Potentially, we update our views. So there's many ways to run these functions. I think of each line as having a runner. And the most obvious one is code. Code is very good. It's fast. It's cheap. It's reliable. So for something like, if the prices to earnings ratio is less than 15, I should just use the deterministic code for that. Runner number two is statistics, classical machine learning. You can imagine fitting a line to a regression for a specific pattern. This is very powerful because you can model much more complex relationships than just pure deterministic code. Right? For even more complex relationships, the reason we're all here, AI agents that is another type of runner. Right? So for something like summarization, that is the state of the art. Right? It is probably totally impossible to build a bunch of if statements that can summarize better than a modern MLM. And of course, people. People are important runners in the system. Right? So imagine a function, meetings, the management team of a company. I probably don't wanna send... I mean, I like the new unitary robots, but I probably don't wanna see Send an l m or an AI agent in to do that. I probably don't want to send an if statement into that meeting. I think there's many cases where because of judgment and the ability to navigate the real world and all of these things, a person is the best runner for a given piece of the function. And I think this is, like, a super super important point. There is no glory in automating things for the sake of automating things. The goal is not to take as many things and make them LLM as possible for us. The goal is for any given piece Of this function, what can I do to maximize absolute quality? And if you actually think about the function, it probably looks something like this. It's probably not just a linear statement of a bunch of different things. There's probably all kinds of branching logic and all kinds of ways to actually fork this. So maybe I want to collect the information and then translate it, and my main goal is to extract quotes and check those against sources to make sure that these are actually the few things that people said. That's my approach. But that might be totally wrong. Maybe, actually, what I wanna do is I wanna dedupe, and then I wanna filter, and then I want to pull external figures, or maybe I wanna do something totally different. I actually want to... I'm passing in a note first, and I actually just want to find other confirmatory data points, or maybe I'm trying to red team. There's a million different ways to configure this. So yet again, more hyperparameters within the control flow. Right? So, so many ways to think about just this very simple problem. Appalling, filtering, summarizing, aggregating the news for LLMs. And each of these boxes probably has an optimal runner. Right? So, the optimal runner might be deterministic code for collection. Right? I'm pulling last twenty four hours for a given source. That's deterministic code. Filtration? Decision models maybe. LLMs. Statistical methods a combination, right? So this probably understates the complexity. The reality is, most things are multi runner. Most things have deterministic code plus LLM plus statistical method, or a human with LLM in conjunction. The reality is it's probably combinatorics between my four buckets. And there's even more buckets than that. Because within the LLM category, I can tune the model. I can choose big model, small model, medium model. I can tune Thinking effort. X high, high, medium. I can tune harness. I can choose the harness. I can choose which skills load with the harness. I can choose which hooks load with the skills. So yet again, more hyperparameters within my search space. I have an absolutely enormous amount of hyperparameters within my search space. And this is just for this one tiny problem. Right? I'm just filtering the news. So the way, to think about breaking down these problems is, what can I actually compartmentalize in a way that we can understand and evaluate? Because that's what I'm hill climbing against. Right? Otherwise, I'm just tuning these things. I'm, okay, well, that should actually be a machine learning system instead of an L. M. That should be a little model that we train. Oh, no. That actually shouldn't be a model at all. That should be an if statement. Or, oh, man, LMs are really, really bad at translating that to portfolio impact. It should really be a human on that step, but they're using a deterministic system to help them search and pull the information. It could be all different things. Right? And if you don't have a North Star to hill climb against, you're Just kind of, you're just fidgeting around. And I think I cannot convey enough that this is just one tiny thing we do. Imagine every single data source that we pull in, there's probably more than just three transformations to get them to the intermediate output. So the actual graph of code two and funds like code two, it actually probably looks... Oh, not like this. This is my screen shaver. The actual graph probably looks something like this. Right? It's probably massively complex. In each of those nodes, we just talked about at least 10 hyper parameters with at least 20 different valid values for them. So the search space is basically infinite. And figuring out how to actually lay this out in a way that you can comprehend, both from technical perspective, but also absorb culturally, organizationally, that is the great challenge of applying AI in investing. And beyond investing We're really talking about is creating a state machine that can take information from the world and understand it well enough to make coherent decisions. There's use cases for this far and above, wider than just investment firms, in policy, in non profits, in drug discovery, in corporate strategy. I think one of the most exciting things for me about being in forums like this is talking to other people in different spaces with different problems that kind of congeal on the same Problem space. I'd love to keep talking about this. I'll hang out in the hallway afterwards. Here are my socials. And thank you, everyone, for your time. And now, let's take a look at Frontier models built To act in space and time. Please welcome cofounder and CEO of General Intuition, Pim DeWitt. Hey. Hello. I want you to, zoom out for a second and think about if somebody were to tell you today that we would take all the information on the Internet, and then we would train a model on it, and we would use that in order to solve scientific problems that were not on the Internet. I think a lot of people would tell you that that's crazy. And what we're doing, There's a lot of parallels to that story. And so if you think about how intelligence works, imagine for a second that you're in the movie Frozen, and you're Olaf, the the snowman. If Olaf was an LLM, and there's a scene which is one of my favorites, which is where he rolls down the mountain, and there's a little stone that pops up, and Olaf spreads out, temporarily becomes a disassembled snowman, and then becomes an assembled snowman. Olaf knows how to do that because Olaf can observe as he is acting. Olaf can, unlike LLMs, which auto aggressively predict tokens, constantly part of that behavior is that it's constantly observing as it is acting. And so, this is the big difference between, you know, when you see LMs try to solve robotics problems or when you look at native architectures like we're working on. It's very, very easy to think of LMs. The demos is you on Twitter as the thing that will solve everything. There's fundamental limitations that we see, where purpose built models are a much better fit. Now, today I'm going to talk a little bit about what the other side of that coin looks like. And so for us, it all started with Metal. We built the largest video game recorder in the world, and we think of that as the Internet.

## Slides

### 00:00:46

[Abstract geometric background with a stylized building outline on the left and vertical lines of varying heights on the right]

### 00:01:15

# AI Engineer
## NEW YORK
PRESENTED BY arize
[Stylized graphic resembling a cityscape or art deco architecture]

### 00:01:52

# An Investment Fund as a Function

### COATUE
### 01 / COVER
### AI ENGINEER / NEW YORK

### 00:02:14

# An Investment Fund as a Function

```python
def fund(c_external, c_internal):
```
Takes external and internal context

### 00:02:46

# An Investment Fund as a Function

```python
def fund(c_external, c_internal): # Takes external and internal context
return selection, size, timing # People own the investment judgment
```

### 00:03:18

# COATUE
Everything a human can see in pixels, **a model can see via API**

### A PERSON LOOKS AT

Keynote
Frank Long / Head of AI COATUE

[Illustration of a computer monitor displaying a line graph and text elements]

### 00:03:47

# Everything a human can see in pixels, a model can see via API

### A PERSON LOOKS AT

```
c_external
>>> news.search("Samsung", lang="ko")        [{title, source, time}, ...]
>>> prices.history("005930.KS")              [{date, close}, ...]
>>> filings.get("005930.KS", "Q3")           {revenue, op_margin, ...}
```

```
c_internal
>>> positions.current()                     [{ticker, weight, cost}, ...]
>>> liquidity.requirements()                {cash_floor, redemptions}
>>> case_studies.search("Samsung")          [{memo, author, date}, ...]
```

[Diagram of a computer monitor displaying a line graph and text, connected by dotted lines to two blocks of API call examples.]

### 00:04:23

# COATUE
## Everything a human can see in pixels, a model can see via API

### A PERSON LOOKS AT

**c_external**
```python
>>> news.

### 00:04:46

# Break it down until each piece can be checked

```python
def fund(c_external, c_internal): # Takes external and internal context
    return selection, size, timing # People own the investment judgment
```

### 00:05:19

# Break it down until each piece can be checked

```python
def fund(c_external, c_internal): # Takes external and internal context
    info = gather(c_external, c_internal) # Gather information
    return selection, size, timing # People own the investment judgment
```

COATUE / AN INVESTMENT FUND AS A FUNCTION

### 00:05:55

## Break it down until each piece can be checked

```python
def fund(c_external, c_internal):
    info = gather(c_external, c_internal)

### 00:06:18

# Break it down until each piece can be checked

```python
def fund(c_external, c_internal):
    info = gather(c_external, c_internal)

### 00:06:51

# Interpreting news from Korean media outlets

### fund > gather

```python
def gather(question, korean_news):
    return update
```

One research question, one source
PERSON Accepts, revises or rejects it

COATUE / AN INVESTMENT FUND AS A FUNCTION

### 00:07:20

# Interpreting news from Korean media outlets

### fund > gather

```python
def gather(question, korean_news):
    articles = collect(korean_news)
    return update
```
- **Line 1**: One research question, one source
- **Line 2**: CODE Originals, with source and time
- **Line 3**: PERSON Accepts, revises or rejects it

COATUE / AN INVESTMENT FUND AS A FUNCTION

### 00:07:47

# Interpreting news from Korean media outlets

### fund > gather

```python
def gather(question, korean_news):
    articles = collect(korean_news)
    relevant = filter(articles, question)
    return update
```

- One research question, one source
- **CODE** Originals, with source and time
- **LLM** Against the question, with reasons
- **PERSON** **Accepts, revises or rejects it**

### 00:08:18

# Interpreting news from Korean media outlets

fund > gather

```python
def gather(question, korean_news):
    articles = collect(korean_news)

### 00:08:48

# Interpreting news from Korean media outlets

`fund > gather`

```python
def gather(question, korean_news):
    articles = collect(korean_news) # CODE: Originals, with source and time
    relevant = filter(articles, question) # LLM: Against the question, with reasons
    notes = translate_extract(relevant) # LLM: Sourced observations, in English
    check(notes, against=articles) # CODE: Every quote matches its source
    return update # PERSON: Accepts, revises or rejects it
```
One research question, one source

### 00:09:23

# You need a runner

```python
if pe < 15:
    keep()
```
```python
model.fit(x, y)
```

[Diagram showing a flow from abstract concepts to concrete entities: a lightning bolt, shield, dollar sign, and line graph connect to a dark square labeled "CODE", a green diamond labeled "ML", a grey circle labeled "LLM", and a red circle labeled "PERSON".]

### 00:09:50

# You need a runner

- `if pe < 15: keep()`
- `model.fit(x, y)`
- `summarize(transcript)`

[Diagram

### 00:10:22

# You need a runner

- `if pe < 15: keep()`
- `model.fit(x, y)`
- `summarize(transcript)`
- `meet

### 00:10:49

# COATUE
`gather()` for the Korean news · one function, many ways to wire it

[Flowchart diagram showing a data processing pipeline for news and internal data, starting with

### 00:11:22

# COATUE
`gather()` for the Korean news · one function, many ways to wire it

1 READ THE PRESS, CHECK THE QUOTES
2 FROM THE NUMBERS

### 00:11:55

# COATUE
AI ENGINEER / NEW YORK

- korean_news
- dart_filings
- call_transcripts
- c_internal
- our_notes

-

### 00:12:18

# COATUE
## AI Engineer / New York

### Data Processing Flow

**Inputs:**
- korean_news
- dart_filings
- call_transcripts
- c_

### 00:12:51

## COATUE
AI ENGINEER / NEW YORK

### Investment Process Flow

**Inputs:**
- `korean_news`
- `dart_filings`
- `call_

### 00:13:17

# COATUE
## AI ENGINEER / NEW YORK

### Data Processing Workflow

- **Inputs:**
    - `korean_news`
    - `dart_filings`

### 00:13:48

# COATUE
AI ENGINEER / NEW YORK

[Flowchart illustrating an investment fund's data processing pipeline. Inputs include `korean_news`, `dart_filings`, `call_transcripts`, `c_internal`, and `our_notes`. These feed into a `collect()` step. From `collect()`, data flows to `dedupe()`, `filter()`, `rank()`, and `translate()`. Further steps include `extract_quotes()`, `check_sources()` (with a "QUOTE DOESN'T MATCH" path), `extract_figures()`, `compare_to_last_view()`, `key_stock_drivers()`, `entity_link()`, and `compare_to_holdings()`. All these lead to `propose()`, which then goes to `review()`. A "REVISE" loop connects `review()` back to `propose()`.]

COATUE / AN INVESTMENT FUND AS A FUNCTION

### 00:14:18

### Contact Information
- X: @fyxlong
- LinkedIn: [linkedin.com/in/franklong1](https://linkedin.com/in/franklong1)

CO

### 00:14:51

# COATUE
X: @fyxlong
LinkedIn: [linkedin.com/in/franklong1](https://linkedin.com/in/franklong1)

### COATUE / An Investment Fund as a Function

[Diagram showing a complex network or flow, starting with many small nodes on the left and converging to a single output node on the right. Nodes are various shapes (circles, squares, diamonds) and colors (black, grey, red), connected by lines.]

### 00:15:24

# COATUE
## AI Engineer / New York

X @fyxlong
LinkedIn linkedin.com/in/franklong1

[Diagram showing a network of interconnected nodes, starting

### 00:15:46

# AI Engineer
## NEW YORK
PRESENTED BY Arize

[Stylized cityscape illustration with geometric lines and patterns on a dark background]

### 00:16:21

# Games ar
[Background image of fragmented, pixelated characters and symbols]

### 00:16:54

# The frontier lab for acting in space and time

Truly intelligent machines must move from words to worlds, and acquire the capacity to perceive, anticipate, and improvise. They need to obtain a general

### 00:17:22

### The frontier lab for acting in space and time

Truly intelligent machines must move from words to worlds, and acquire the capacity to perceive, anticipate, and improvise. They need to obtain a general intuition of reality.

We raised over $650M in the past year to build a new class of models that can perceive, predict, and act in virtual and physical environments.

### Frontier Models for Acting in Space and Time
Pim de Witte / Co-Founder & CEO

[Logos for Khosla Ventures and General Intuition]
[Three small, pixelated images showing different scenes, possibly a city skyline, an outdoor environment, and an indoor space]

### 00:17:48

# The frontier lab for acting in space and time

Truly intelligent machines must move from words to worlds, and acquire the capacity to perceive, anticipate, and improvise. They need to obtain a general
