Tethered: Our Agents Are Us — Shu Fang, Two Sigma

AI Engineer · 21 min · 184 sentences · from YouTube's caption track

Each timecode opens YouTube at the start of that sentence. Line anchors (#s42) are the cue ids in the WebVTT, and every line carries its start and end seconds. All transcripts has every talk, and the whole corpus as one file.

  1. 00:01[music]
  2. 00:13Great.
  3. 00:13Thanks everyone for coming.
  4. 00:15Uh this talk is called Tethered.
  5. 00:16Our agents are us.
  6. 00:18I'm Shu Fang from Two Sigma and let's get started.
  7. 00:23So just a quick explanation.
  8. 00:26Two Sigma is a little quant fund.
  9. 00:27I 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 sigas are about the volatility sigma the small
  10. 00:41sigma and the large sigma sum.
  11. 00:43So by summing together these individual volatilities we can uh hedge the risk achieve differentiated alpha.
  12. 00:52Now because we are a hedge fund I have to give you all this important legal disclaimer.
  13. 00:56You don't have to read it.
  14. 00:57It just has to be in this.
  15. 00:59And the TLDDR is that I'm not trying to sell you on anything.
  16. 01:03The views are mine and not necessarily the companies.
  17. 01:06Any logos, any other companies I mentioned here are not me endorsing them or telling you to buy their stocks or anything.
  18. 01:13It is purely maybe coincidental.
  19. 01:17But that also is meant to segue into the fact that we are an old company.
  20. 01:22We'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.
  21. 01:34And not only that, but these agents run as their own identity.
  22. 01:37So, we're going to explain how we got here and why we're actually okay with this.
  23. 01:44So, we're first going to do a little horror movie review.
  24. 01:46If any of you have seen us, you don't have to pay attention to this.
  25. 01:49defend if you haven't the TLDDR 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 untetered
  26. 02:05and this is going to somehow relate into my talk so back in June 2025 you know cloud code GA and all that stuff people started using agents through the local
  27. 02:18computer 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
  28. 02:30from 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
  29. 02:41but many many people technical or not are not comfortable fully operating within a CLI so the question became Okay, how do we actually run these in terms of what identity they run as?
  30. 02:55The conventional wisdom is that you run these as some machine identity that is attached to your user in some way.
  31. 03:02You have a shoe and you have a shoe agent.
  32. 03:05But this quickly collapses and we found this collapsed because of all the reasons that you can imagine, right?
  33. 03:10It's very hard to keep permissions in sync.
  34. 03:12Anytime you're dealing with software licensing, now you have to deal with two licenses.
  35. 03:17uh there's certain systems that do not support multiple identities interacting with the same underlying data.
  36. 03:23You know, stuff like Google Workspace, your emails, etc. And then how some systems are going to block as a first step.
  37. 03:31So you have to you're just going over the barrier of entry.
  38. 03:34And then you also have to figure out how you actually manage the public and private boundaries.
  39. 03:41So obviously it's like why don't we just run these as the user, right?
  40. 03:45How do how do we run these remotely as the exact same user identity?
  41. 03:49And as a result, all the capabilities, all the access, all those previous constraints are no longer valid.
  42. 03:59And we already had the info for this and I imagine a lot of you do too.
  43. 04:03If you don't, I would uh encourage investing in it, which is that you know you could have a Kubernetes cluster.
  44. 04:10You have all all of your clusters, your regions, etc. And you have name spaces for individuals, right?
  45. 04:16And the reason we had this is because we often already needed this capability not for the agentic purposes, but for all the automated operations that we need to do that did not
  46. 04:27suit confinement to someone's local machine.
  47. 04:30So we'd 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.
  48. 04:43A very simplistic way of how this works.
  49. 04:46Some trigger is going in to your controller and it's saying, "Hey, I need to spin up some compute resources.
  50. 04:53You 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.
  51. 05:07So of course there are big dangers with this right and you know the first danger you may imagine is an internal danger.
  52. 05:14How do you actually differentiate who or what took action right?
  53. 05:19You have you and your U agent are now the exact same identity.
  54. 05:23That's why I grew this mustache so you could tell the difference between us for now.
  55. 05:26But uh you really want to know that differentiation because certain actions that can be taken.
  56. 05:33You want to audit, you possibly want to block and you want to just have the trace, right?
  57. 05:39You 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?
  58. 05:53Another danger and perhaps a bigger one is we all know that for all of these capabilities and LOMs in general, it's essential you have access to the external web.
  59. 06:03These are point in time mathematical functions that cannot actually update based on current data.
  60. 06:09So it's like open internet access.
  61. 06:11That's why it's a core capability, web search, web fetch tools, right?
  62. 06:15The problem is once you have that capability, you leave yourself open to huge vulnerability vectors.
  63. 06:21One of which is exfiltration risk.
  64. 06:24This is one we are deeply concerned with in terms of possibly losing IP, you know, just exposing our sensitive information.
  65. 06:31but 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
  66. 06:47u use licensed content without the right copyrights or actual licensing right you can map this to the golden scissors that they use and us so this is kind of our biggest fear to be honest
  67. 07:01So we are a finance firm and in finance there's a concept of obviously risk and return.
  68. 07:08So when we think about what is the positioning on the risk and return graph there's huge value in allowing agents to run you but also there's very high risk.
  69. 07:20What we generally want to do is make sure we capture as much of the value as possible but reduce the risk.
  70. 07:26We're optimizing that ratio of return over risk.
  71. 07:29Some of you may know the sharp ratio.
  72. 07:31We're looking at that from the perspective of how do we let agents run as users and optimize that return.
  73. 07:38And the ways we need to do this, right, are to solve those two critical problems.
  74. 07:42One, differentiating access attributed to the human versus the agent.
  75. 07:47And two, somehow getting safe web access in place.
  76. 07:54So the first thing we did is this attribution step, right?
  77. 07:58And how we did this is we use a header and we make sure that every single agent continues to append to that header.
  78. 08:06And this is something we've all hopefully done in some way, right?
  79. 08:11Trace IDs.
  80. 08:12You've you've all done this in deterministic code.
  81. 08:14Making sure that your observability stack propagates through a trace ID through disparate systems.
  82. 08:20How 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
  83. 08:32you can force you know using certain HP clients using MCPS using skills 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
  84. 08:46control over agents and the harnesses and the frameworks than you may ink and you can enforce it with some of the already existing primitives.
  85. 08:56Now 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
  86. 09:10just knowing the act identity but we also actually get the full provenence 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.
  87. 09:24So the comparison here is if we had used that shoe agent identity we wouldn't have this and we would just know that at some point shoe agent triggered this initial flow
  88. 09:36into 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
  89. 09:49and the actor is still me right it's still my identity And the second step that we needed to fix is this web access.
  90. 09:59Right?
  91. 10:00A lot of web access these days uses indexes for search.
  92. 10:06Right?
  93. 10:06I think cloud code's native one is Brave web browser and it uses a Brave index.
  94. 10:11Well, we were like, hey, why don't we see what Google has, right?
  95. 10:14Google is at its core hopefully still a search company and they do this index generation already.
  96. 10:21And 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 and it's called
  97. 10:35web grounding for enterprise.
  98. 10:37It 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 and offers two core capabilities
  99. 10:48search and fetch.
  100. 10:50Right?
  101. 10:50So the exact capabilities we want to mirror, we leverage that.
  102. 10:53We have all these guarantees.
  103. 10:55There's one tiny downside, which is the data is obviously not going to be completely fresh, right?
  104. 11:02And the constraints around this last I checked, it's fresh within 24 hours.
  105. 11:07And for more regularly updated websites, it's fresh within 6 hours.
  106. 11:10But for most use cases that you may have for agents, that's probably more than sufficient and completely removes this external egress vulnerability vector.
  107. 11:21Now 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
  108. 11:33and 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 again here's cloud code example.
  109. 11:49I think every other hotness has the same thing.
  110. 11:52Web search, web fetch.
  111. 11:53We just deny those tools.
  112. 11:54It's like, hey, you can't even use these.
  113. 11:55These are not even in your suite of tools available to you.
  114. 12:00Instead, 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,
  115. 12:13it goes through that web grounding cache index.
  116. 12:21So takeaways from this talk basically make sure you ted your agents right letting them run around untetered you know is very dangerous we want to tar 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
  117. 12:38because of some of the things we found while doing this we actually believe we didn't lose expected value while huge hugely reducing the risk, right?
  118. 12:49So, 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.
  119. 13:03And I think this is [sighs and gasps] 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
  120. 13:18that make your security teams really afraid that feel like, hey, they are too far on the frontier, right?
  121. 13:24You you're like, I wouldn't run this locally.
  122. 13:26I wouldn't run a open cloud agent on my local machine with full permissions, right?
  123. 13:32There's all these horror stories and you know various anecdotes about why this is bad.
  124. 13:38But in an enterprise again you can figure out how to leverage your enterprise resources to actually reduce those risk factors and get the real value out of the capabilities
  125. 13:49and this is where you should be investing that time.
  126. 13:54So what we ultimately shipped is this entire framework, right?
  127. 13:59We have the ability to run cloud agents as user identities uh because of all of those guard rails and vectors we put in place and using different kind of
  128. 14:12interface 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.
  129. 14:20And as part of that, we made sure to ship out just a managed fleet of cloud, 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
  130. 14:34what is actually available to individual users.
  131. 14:37But 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.
  132. 14:51So to finish up, uh, everything I talked about actually happened last year.
  133. 14:56So 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.
  134. 15:07We are hiring and we encourage you to apply.
  135. 15:10If you have any experience in any of these domains, you can check that QR code, check that link.
  136. 15:17Yeah, that's it.
  137. 15:19Any questions?
  138. 15:20[applause]
  139. 15:26What do you think about local connected to agents for enterprises?
  140. 15:32Uh, not the views of my company, but personally I I think that is
  141. 15:38question.
  142. 15:39Yeah, sorry.
  143. 15:39His question was how do how do I view local LLMs for enterprise usage?
  144. 15:44And 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
  145. 15:56because of you know every time Frontier Lab drops a new model you see some degradation.
  146. 16:01It's just there's too much volatility in that that we don't need to risk as the openweight models kind of become more advanced and sophisticated.
  147. 16:22request.
  148. 16:31Yeah.
  149. 16:32So as you can see the header is not purely differentiating in itself.
  150. 16:36Someone someone could certainly populate that, but the actor the identity itself will not be me, right?
  151. 16:42So some someone could I guess write in that they're using some agent, but the core previous identity itself is not mimickable, not like actually interceptable, right?
  152. 16:54So we still we have both we have both the originating identity and that you know all of your identity ecosystems and chains to ensure that but also the header.
  153. 17:04part of the header.
  154. 17:05Yeah, that that that is separate.
  155. 17:06The header is just XSLm agent and then you still have some way you you need some way to actually determine the identity of who's coming.
  156. 17:26Yeah, I you know gen generally 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 So
  157. 17:45can you clarify how the use of Google index addresses the prompt injection issue?
  158. 17:52Yeah.
  159. 17:52So 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.
  160. 18:01It is specifically made for these curated financial like um highly regulated industries.
  161. 18:07So they themselves are doing some of their own curation on top of it.
  162. 18:10Now certainly I think that creation could fail.
  163. 18:13It's probably done using Gen AI but the prompt injection risk is much far reduced because everything still remains internal.
  164. 18:24Yep.
  165. 18:33Do you mean how they're being used?
  166. 18:38Yeah.
  167. 18:38I 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
  168. 18:50at 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.
  169. 18:58So your session data is kind of localized.
  170. 19:00Now 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.
  171. 19:09So 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.
  172. 19:26Uh we're almost out of time.
  173. 19:28me and my co sorry I'll take the last question you're saying you have a process for letting individuals create their own
  174. 19:38yep I mean how do you go about like anybody there is a process for like agents across the company
  175. 19:54yeah uh for building our own agents you know we we use some of the existing frameworks for agent building.
  176. 20:00Obviously all the genai harnesses are very good at using those frameworks to build agents.
  177. 20:04So you have a lot of agents proliferating based on that.
  178. 20:07In terms of provision, everything is already provision.
  179. 20:09All this is every single user at the firm has all the necessary infrastructure in place.
  180. 20:15So that's not really a worry.
  181. 20:17They can build an agent, deploy it as necessary into their namespace running as their identity.
  182. 20:21the the aspect of how do agents then become like a universal companywide or larger beyond a 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 the right security
  183. 20:38it'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
  184. 20:51[applause]