Two Sigma0:00
Great. Thanks, everyone, for coming. Uh, this talk is called "Tethered: Our Agents Are Us." I'm Shu Fang from Two Sigma, and let's get started. So, just a quick explanation: Two Sigma is a little quant fund. I will also take the opportunity to explain that the name, ostensibly, is not because we have two co-founders who are very online, but because the two sigmas are about the volatility sigma, the small sigma, and the large sigma, sum.
So by summing together these individual volatilities, we can, uh, hedge the risk and achieve differentiated alpha. Now, because we are a hedge fund, I have to give you all this important legal disclaimer. You don't have to read it; it just has to be in this.
And the TL;DR is that I'm not trying to sell you on anything. The views are mine and not necessarily the company's. Any logos, any other companies I mention here are not me endorsing them or telling you to buy their stocks or anything.
It is purely maybe coincidental.
But that also is meant to segue into the fact that we are an old company. We're 25 years old, and clearly we're a very regulated industry. But we've managed to run an ecosystem where everyone at the company has a cloud agent.
Agents as us1:18
And not only that, but these agents run as their own identity. So we're going to explain how we got here and why we're actually okay with this.
The tethered1:44
So we're first going to do a little horror movie review. If any of you have seen us, you don't have to pay attention to this. If any of you haven't, the TL;DR of the movie is that everyone has these doubles.
And these doubles are called tethered. When the doubles decide to run loose and cause chaos and run around with these golden scissors, they're called untethered. And this is going to somehow relate into my talk.
So back in June 2025, you know, Claude Code GA and all that stuff, people started using agents through the local computer, your local machine. And it's very powerful, but one, it was CLI-constrained, and two, it was localized,right? We wanted to achieve a world where people could use these agents from wherever they were, whether it be mobile, through Slack, through browsers, but still have the ability to run them remote.
And this is important not just because of the capability, but many, many people, technical or not, are not comfortable fully operating within a CLI. So the question became, how do we actually run these in terms of what identity do they run as?
Identity collapse2:48
The conventional wisdom is that you run these as some machine identity that is attached to your user in some way. You have a Shu, and you have a Shu agent. But this quickly collapses. And we found this collapsed because of all the reasons that you can imagine,right?
It's very hard to keep permissions in sync. Any time you're dealing with software licensing, now you have to deal with two licenses. Uh, there's certain systems that do not support multiple identities interacting with the same underlying data, you know, stuff like Google Workspace, your emails, etc.
And then some systems are going to block as a first step. So you have to, you're just going over the barrier of entry. And then you also have to figure out how you actually manage the public and private boundaries.
So obviously, it's like, why don't we just run these as the user,right? How do, how do we run these remotely as the exact same user identity? And as a result, all the capabilities, all the access, all those previous constraints are no longer valid.
And we already had infra for this, and I imagine a lot of you do too. If you don't, I would, uh, encourage investing in it, which is that, you know, you could have a Kubernetes cluster. You have all, all of your clusters, your regions, etc.
Existing namespaces4:09
And you have namespaces for individuals,right? And the reason we had this is because we often already needed this capability, not for agentic purposes, but for all the automated operations that we need to do that did not suit confinement to someone's local machine.
So we run automated jobs. You know, code containers usually operate on this principle, research notebooks, etc. And every single user already had these namespaces existing in every single region, and everything in it runs as the user. Oh, very simplistic way of how this works.
Some trigger is going into your controller, and it's saying, "Hey, I need to spin up some compute resources." You have a separate identity service that a sidecar in the pod pulls down from to allow your actual containers to run and mount that identity, and it runs as you.
So of course, there are big dangers with this,right? And, you know, the first danger you may imagine is an internal danger. How do you actually differentiate who or what took action,right? You have you and your you agent are now the exact same identity.
Attribution danger5:17
That's why I grew this mustache, so you could tell the difference between us for now. But, uh, you really want to know that differentiation because certain actions that can be taken, you want to audit, you possibly want to block, and you want to just have the trace,right?
You want to have the attribution to determine, "Hey, was it someone operating as the human, operating purely human actions, or was it the agent identity doing these things?"
Another danger, and perhaps a bigger one, is we all know that for all of these capabilities and LLMs in general, it's essential you have access to the external web. These are point-in-time mathematical functions that cannot actually update based on current data.
Web exposure5:58
So it's like open internet access. That's why it's a core capability, web search, web fetch tools,right? The problem is once you have that capability, you leave yourself open to huge vulnerability vectors, one of which is exfiltration risk. This is one we are deeply concerned with in terms of possibly losing IP, you know, just exposing our sensitive information.
But also certainly the possibility of untrusted content flowing back in. And, you know, prompt injection, just malware and vulnerabilities are all big risks there. And then something we separately deal with is just the ability to make sure we don't, uh, use licensed content without theright copyrights or actual licensing,right?
You can map this to the golden scissors that they use in us. So this is kind of our biggest fear, to be honest. So we are a finance firm, and in finance, there's a concept of obviously risk and return.
Risk and return7:07
So when we think about what is the positioning on the risk and return graph, there's huge value in allowing agents to run as you, but also there's very high risk. What we generally want to do is make sure we capture as much of the value as possible, but reduce the risk.
We're optimizing that ratio of return over risk. Some of you may know the SHARP ratio. We're looking at that from the perspective of how do we let agents run as users and optimize that return. And the ways we need to do this,right, are to solve those two critical problems.
One, differentiating access attributed to the human versus the agent. And two, somehow getting safe web access in place.
So the first thing we did is this attribution step,right? And how we did this is we use a header, and we make sure that every single agent continues to append to that header. And this is something we've all hopefully done in some way,right?
Trace header8:04
Trace IDs. You've, you've all done this in deterministic code, making sure that your observability stack propagates through a trace ID through disparate systems. How we did it is very similar to how you would do it for trace ID, except we are dealing with a certain difference in the control vector, which is the agent itself,right?
And you can force, you know, using certain HTTP clients, using MCPs, using SQLs to make sure that that header initially gets populated and everywhere else along the way continues to be populated,right? You have a lot more deterministic control over agents and the harnesses and the frameworks than you may think, and you can enforce it with some of the already existing primitives.
Now, this gets very interesting because this is not only giving us the proper identification of who did something,right? It actually goes beyond that. And no longer are we confined by just knowing the act identity, but we also actually get the full provenance through the system,right?
As we deal with multiple steps in the system, we are able to replay the entire chain of actions that actually led to some end result. So the comparison here is if we had used that Shu agent identity, we wouldn't have this, and we would just know that at some point, Shu agent triggered this initial flow into the span, but we don't actually know, "Hey, those subsequent actions, how do we properly trace back to that origination point?"
With this header, this trace ID, we get that full propagation, and the actor is still me,right? It's still my identity.
Web grounding9:56
And the second step that we needed to fix is this web access,right? A lot of web access these days uses indexes for search,right? I think Claude Code's native one is Brave Web Browser, and it uses the Brave index.
Well, we were like, "Hey, why don't we see what Google has,right?" Google is, at its core, hopefully, still a search company, and they do this index generation already. And it turns out they actually do offer something specifically for regulated industries like ours that allows you to use their web index, but within your existing VPC, your, you know, network controls,right?
It's called web grounding for enterprise. It basically works like this, where it's still within the exact same network boundary where you're probably running your cloud agents and stuff like that. It offers two core capabilities, search and fetch,right? So the exact capabilities we want to mirror.
We leverage that. We have all these guarantees. There's one tiny downside, which is the data is obviously not going to be completely fresh,right? And the constraints around this, last I checked, it's fresh within 24 hours. And for more regularly updated websites, it's fresh within six hours.
But for most use cases that you may have for agents, that's probably more than sufficient and completely removes this external egress vulnerability vector.
Now, the second question is, how do we actually ensure the agents use web grounding? And again, this is very simple with the existing primitives,right? You just need to make sure that they don't get confused. And you certainly block the access itself, but just for user experience and stuff like that, you need to make sure those tools themselves that are already existing and primitive and native to these agent harnesses and frameworks and such are actually blocked,right?
And again, here's a Claude Code example. I think every other harness has the same thing. Web search, web fetch. We just deny those tools. It's like, "Hey, you can't even use these. These are not even in your suite of tools available to you."
Instead, we use the redirection going through, you know, MCP CLI and actual client code using the supported paths, uh, skills, whatever, to make sure that whenever someone does need the capabilities of web access, it goes through that web grounding cached index.
So takeaways from this talk, basically, make sure you tether your agents,right? Running, letting them run around untethered, you know, is very dangerous. We want to tether them, and it's much safer to do so. And in fact, if we go back to that initial slide of how we consider this relative to the risk and expected return, because of some of the things we found while doing this, we actually believe we didn't lose expected value while hugely reducing the risk,right?
So the index certainly lags, but we get a ton more observability by just using that tagging primitive versus the actual, uh, just pure identity verification.
And I think this is one thing people should really consider, especially people working at companies, enterprises, which is that there are a ton of things happening in the GenAI landscape that are probably scary to us, that make your security teams really afraid, that feel like, "Hey, they are too far on the frontier,"right?
You, you're like, "I wouldn't run this locally. I wouldn't run an open Claude agent on my local machine with full permissions,"right? There's all these horror stories and, you know, various, uh, anecdotes about why this is bad. But in an enterprise, again, you can figure out how to leverage your enterprise resources to actually reduce those risk vectors and get the real value out of the capabilities.
And this is where you should be investing that time.
So what we ultimately shipped is this entire framework,right? We have the ability to run cloud agents as user identities, uh, because of all of those guardrails and vectors we put in place and using different kind of interface vectors to actually operate with them so that people who are not comfortable with CLIs can leverage them, but certainly for other cases as well.
And as part of that, we made sure to ship out just a managed fleet of Claude, you know, whatever agents for every single user in this remote fashion that they can already interact with so that we can continue to deploy and improve what is actually available to individual users, but also the core capability itself of being able for every anyone at the company to deploy an agent that runs in the cloud remotely with their full identity is there and is something we are comfortable with.
So to finish up, uh, everything I talked about actually happened last year. So if you are interested at all in wanting to build and see what we're working on now, or even better, if you're like, "That was horrible.
We could do so much better," we are hiring, and we encourage you to apply. If you have any experience in any of these domains, you can check that QR code, check that link. Yeah, that's it. Any questions?
Local LLMs15:26
What do you think about local LLMs connected to agents for enterprises?
Uh, not views of my company, but personally, I, I think that is.
Question.
Yeah, sorry. His question was, how do, how do I view local LLMs for enterprise usage? And I think local in the sense that we manage ourselves is probably where we eventually want to go for a lot of our token use and inference because of cost, because of deprecations, because of, you know, every time Frontier Lab drops a new model, you see some degradation.
It's just there's too much volatility in that, that we don't need to risk as the open weight models kind of become more advanced and sophisticated.
Q&A16:14
Um, for that header, how are you actually ensuring that, like, someone doesn't just make a request with Shu as the front? Are you cross-entry that against, like, what the root of it is, like an HTTP search or something in that field, or?
Yeah. So as you can see, the header is not purely differentiating it in itself. Someone, someone could certainly populate that, but the actor, the identity itself will not be me,right? So some, someone could, I guess, write in that they're using some agent, but the core previous identity itself is not mimical, not like actually interceptable,right?
So we still, we have both act, we have both the originating identity and that, you know, all of your identity ecosystems and chains to ensure that, but also the header.
It's not part of the header.
Yeah, the he that, that is separate. The header is just an XCS LLM agent, and then you still have some way you, you need some way to actually determine the identity of who's coming.
Are you using that in, like, SQL headers or, like, you know, any other identification that bounces or not HTTP or? I guess where is running and the SQL header from?
Yeah, I, you know, generally, our all of our RPC in some way has an initial entry point that is like populatable with that header. And then once it actually goes downstream, you know, you make sure that same with trace IDs is part of the span internally within the system.
Can you clarify how the, uh, use of Google cache index addresses the prompt injection issue?
Yeah. So the core things about this index is not only is it a cached index, it is, it has a lot of other controls and safety guarantees around it. It is specifically made for these curated financial, like, um, highly regulated industries.
So they themselves are doing some of their own curation on top of it. Now, certainly, I think that curation could fail. It's probably done using GenAI, but the prompt injection risk is much, far reduced because everything still remains internal.
Yep.
How important is behavioral data for these agents? And if so, what, what are the sources you're looking to acquire?
Do you mean how they're being used?
Behavioral data of people that are, you know, using it.
Yeah. I, I think it's critical, um, in the sense that that behavioral data is something we can further configure based on,right? Like that we, we do try to ensure that not everyone at the firm can see what your agents are doing,right?
Like there's stuff certainly work-wise, but also more sensitive information that might be privileged to you. So your session data is kind of localized. Now, that behavioral data in the session data is very powerful because it can define additional configuration that can be applied to these agents for the purposes of making the user experience better.
So we, we try to leverage that to figure out what to configure further, not just based on someone's like hierarchical persona, but actually based on their usage to make sure that their experience continues to improve actually based on what they're doing.
Uh, we're almost out of time. Me and my sorry, I'll take the last question.
Yeah. I was just going to ask, you were saying you have a process for, um, letting individuals create their own agents.
Yep.
Um, what, what, I mean, how do you go about, like, can anybody create their own agents? Is there, is there a process for provisioning certain individuals? Uh, and is there a process for, like, promoting agents to be used across the company versus individual teams?
Yeah. Uh, for building our own agents, you know, we, we use some of the existing frameworks for agent building. Obviously, all the GenAI harnesses are very good at using those frameworks to build agents. So you have a lot of agents proliferating based on that in terms of provision.
Everything is already provisioned. All this is every single user at the firm has all the necessary infrastructure in place. So that's not really a worry. They can build an agent, deploy as necessary into their namespace, running as their identity.
The, the aspect of how do agents then become like a universal company-wide or larger beyond, uh, individual users, uh, agent, you know, goes through your standard kind of mechanisms,right? Like, hey, is there going to be proper production support?
Is there theright security? It's like any application you might develop. Uh, yeah. So me and my colleagues will stick around here if anyone wants to talk further. You know, I guess if you're sticking around, I can also take more questions, but thanks for coming to this talk.





