WEBVTT

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

NOTE One cue per sentence. Cue ids are the line anchors on /transcripts/toq-jyGLZDk.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:13.200 --> 00:00:14.200
Okay.

s3
00:00:14.200 --> 00:00:14.680
Hi everyone.

s4
00:00:14.680 --> 00:00:16.200
Can you hear me?

s5
00:00:16.200 --> 00:00:17.160
A lot of people, yeah.

s6
00:00:17.160 --> 00:00:19.600
So, please be quiet.

s7
00:00:20.240 --> 00:00:21.800
So, my name is Vlad.

s8
00:00:21.800 --> 00:00:24.040
I'm co-founder and CTO at Bend.

s9
00:00:24.040 --> 00:00:27.320
And today I have four topics I want to discuss with you.

s10
00:00:27.320 --> 00:00:29.320
First, thesis.

s11
00:00:29.320 --> 00:00:32.960
Thesis of our company, what we believe believe in.

s12
00:00:32.960 --> 00:00:37.320
AI evolution from adversarial agents to loop engineering and beyond.

s13
00:00:37.320 --> 00:00:43.320
Technical challenges that we experience right now that should be solved right now.

s14
00:00:43.320 --> 00:00:48.560
And obviously Bend to present the company and the product and what we do.

s15
00:00:48.560 --> 00:00:50.680
Let's start with the thesis.

s16
00:00:50.680 --> 00:01:02.120
First of all, we believe that the future belongs to AI to AI communication within a business, between businesses, and between consumers and businesses.

s17
00:01:02.120 --> 00:01:10.600
AI will be doing work on our behalf, and they will have to talk to each other in order to solve tasks on our behalf.

s18
00:01:10.600 --> 00:01:18.280
Second, agents will be autonomous, always-on entities spread across the globe.

s19
00:01:18.280 --> 00:01:30.840
Now, these are very nice words, but I want to spend a minute just to paint a picture in your head how this type of communication between agents actually is going to look like.

s20
00:01:32.200 --> 00:01:34.520
Demo time.

s21
00:01:34.800 --> 00:01:38.240
Agents will communicate in a conversational space.

s22
00:01:38.240 --> 00:01:40.400
They will see each other.

s23
00:01:40.400 --> 00:01:42.200
They will be distributed.

s24
00:01:42.200 --> 00:01:45.520
They will receive tasks from us or from any system.

s25
00:01:45.520 --> 00:01:57.040
They will be able to look up peers in the registries, invite these peers in into conversational space, delegate the tasks, gather enough information, and and back to us.

s26
00:01:57.040 --> 00:02:02.600
This is how the future of AI to AI communication is going to look like.

s27
00:02:02.600 --> 00:02:07.080
So, while we are talking hold this in your head.

s28
00:02:07.479 --> 00:02:11.600
Let's talk a bit about adversarial agents.

s29
00:02:11.600 --> 00:02:18.240
I think everyone here knows this concept and I'm pretty sure everyone here is using it as well.

s30
00:02:18.240 --> 00:02:19.680
Where are we using it?

s31
00:02:19.680 --> 00:02:26.640
If you are using Claude or Codex, I'm pretty sure you're running multiple sessions working on the same task.

s32
00:02:26.640 --> 00:02:28.600
One is planning, another is reviewing.

s33
00:02:28.600 --> 00:02:32.200
One is writing code, another is reviewing code.

s34
00:02:32.200 --> 00:02:46.320
So, basically what is happening, you have two stateful agents running, working on the same task, and you are basically a Cisco router and a switch moving packets between these two stateful agents.

s35
00:02:47.480 --> 00:02:50.080
Let's talk about loop engineering.

s36
00:02:50.080 --> 00:02:57.080
A number of talks on this conference about loop engineering, a number of articles, uh pretty new concept, right?

s37
00:02:57.080 --> 00:03:00.959
But I would like to distill it uh to its essence.

s38
00:03:00.959 --> 00:03:03.680
So, what is loop engineering?

s39
00:03:03.720 --> 00:03:06.560
Basically, it's the same as the previous concept.

s40
00:03:06.560 --> 00:03:22.519
It's you running multiple agents, hopefully stateful agents and not stateless, but instead of you being a router or a switch, you outsource this to some piece of Python or TypeScript that someone wrote as an open-source project,

s41
00:03:22.519 --> 00:03:30.600
and um this piece of code basically prompts the stateful agents back and forth, and you trigger it.

s42
00:03:30.920 --> 00:03:35.000
Now, why are we using these multiple agents when we do this work?

s43
00:03:35.000 --> 00:03:44.720
Because of the underlying architectural limitations of a transformer, specifically a concept is called single agent bottleneck, right?

s44
00:03:44.720 --> 00:03:49.400
So, why we are not running one agent in one session that is doing everything?

s45
00:03:49.400 --> 00:03:52.160
For instance, confirmation bias, right?

s46
00:03:52.160 --> 00:03:56.320
Attention dilution, context fragmentation, recall degradation.

s47
00:03:56.320 --> 00:04:03.880
So, 1 million tokens or 2 million tokens context will not help you in terms of the performance.

s48
00:04:04.480 --> 00:04:06.560
But, let's talk about multi-agent systems, right?

s49
00:04:06.560 --> 00:04:13.760
So, we already understand that us running multiple sessions, these are basically multi-agent systems running.

s50
00:04:13.760 --> 00:04:19.799
So, what is the easiest way to connect multiple agents running together?

s51
00:04:20.079 --> 00:04:21.320
Messaging platforms, right?

s52
00:04:21.320 --> 00:04:23.200
We already have Slack, right?

s53
00:04:23.200 --> 00:04:30.120
Anthropic released Slack agent, we have Teams, we have Discord, we have WhatsApp, we have Telegram, and so on, right?

s54
00:04:30.120 --> 00:04:32.640
So, this is a solution.

s55
00:04:32.640 --> 00:04:38.840
Well, in order for you to connect an agent to a Telegram, five steps.

s56
00:04:38.840 --> 00:04:43.160
In order for you to connect to Discord, seven steps.

s57
00:04:43.440 --> 00:04:48.600
In order for you to connect your agent to Slack, eight steps.

s58
00:04:48.760 --> 00:04:51.280
WhatsApp, 11.

s59
00:04:51.280 --> 00:04:53.680
And these are not simple steps.

s60
00:04:53.680 --> 00:04:59.720
They are all manual, and you need to read a book in order to be able to set it up.

s61
00:04:59.720 --> 00:05:04.960
And even if you do, you get only one thing and one thing only.

s62
00:05:05.160 --> 00:05:07.080
What is this thing?

s63
00:05:07.080 --> 00:05:11.520
An agent talking to a person, which is usually you.

s64
00:05:11.520 --> 00:05:18.440
This agent cannot talk to any other agent, this agent cannot talk to any other person without you jumping through hoops.

s65
00:05:18.440 --> 00:05:28.120
So, basically, your agents are still alone in a kind of digital solitary confinement.

s66
00:05:29.760 --> 00:05:33.919
But, smart people will say, "I know the solution.

s67
00:05:33.919 --> 00:05:35.919
Protocols, right?

s68
00:05:35.919 --> 00:05:44.120
MCP, ACP, A2A, and etc. This is the solution, right?

s69
00:05:44.120 --> 00:05:54.320
Well, if you are a proponent of that kind of a for connection for connecting your sessions, this is how your multi-agent system is going to look like.

s70
00:05:54.320 --> 00:06:00.320
Multiple servers calling other agents' tools through MCP.

s71
00:06:00.320 --> 00:06:06.400
And if you want, maybe this agent that you called as a tool can call another agent as an A2A.

s72
00:06:06.400 --> 00:06:07.800
Sounds super simple.

s73
00:06:07.800 --> 00:06:09.920
Okay, everyone knows what A2A is.

s74
00:06:09.920 --> 00:06:13.200
Google have a very huge marketing budget.

s75
00:06:13.200 --> 00:06:16.640
But let's take the take a look at the complexities.

s76
00:06:16.880 --> 00:06:19.760
MCP means stateless calls.

s77
00:06:19.760 --> 00:06:26.280
It means you cannot go back to the agent that you talked to and ask it again what happened.

s78
00:06:26.280 --> 00:06:31.280
A2A one way unless you implement both directions.

s79
00:06:31.280 --> 00:06:35.520
So, agent A to sends a task to agent B. It's client-server.

s80
00:06:35.520 --> 00:06:38.800
If you want an agent B to send a task to agent A, it's client-server.

s81
00:06:38.800 --> 00:06:43.240
So, you need to implement on the same side both a client and a server.

s82
00:06:43.240 --> 00:06:47.040
Chaining REST API calls, you will meet timeouts.

s83
00:06:47.040 --> 00:06:58.840
And obviously thing a lot of things are missing like discovery, draft state of A2A, queues that you still need to implement and put behind all of that.

s84
00:06:59.120 --> 00:07:02.440
And if you're doing this, you're basically building planning.

s85
00:07:02.440 --> 00:07:04.280
You're not building a multi-agent system.

s86
00:07:04.280 --> 00:07:09.080
You're wasting your time on a boring boring stuff.

s87
00:07:09.280 --> 00:07:11.360
Now, let's summarize what we know.

s88
00:07:11.360 --> 00:07:14.680
We know that multi-agent systems are already here.

s89
00:07:14.680 --> 00:07:17.840
Everyone here is using multiple agents.

s90
00:07:17.840 --> 00:07:21.520
We know that the messaging platforms are not a solution.

s91
00:07:21.520 --> 00:07:28.160
They are built for humans and they actively block you from connecting a bot to a bot.

s92
00:07:28.160 --> 00:07:38.520
And we know that protocol is too low-level of a technical abstraction to be able um to build anything on it at scale.

s93
00:07:39.120 --> 00:07:45.840
But how hard can it be to build a system that can allow multiple agents to connect together.

s94
00:07:45.840 --> 00:07:49.240
It's not that difficult, right?

s95
00:07:49.240 --> 00:08:00.080
Well, you see, connecting remote agents being a two sessions as a process is running on your laptop or my cloud to your codex is a distributed systems problem.

s96
00:08:00.080 --> 00:08:03.360
And distributed systems are not easy by definition.

s97
00:08:03.360 --> 00:08:05.360
Forget agents, okay?

s98
00:08:05.360 --> 00:08:08.000
Deterministic software, it's a pain in the butt.

s99
00:08:08.000 --> 00:08:13.200
Add to this agents that are microservices and non-deterministic, okay?

s100
00:08:13.200 --> 00:08:15.600
And you have a lot of fun.

s101
00:08:15.600 --> 00:08:24.000
In order for this um to be solved, what you need to actually to address is a transport layer, right?

s102
00:08:24.000 --> 00:08:25.880
The transport has to be real-time.

s103
00:08:25.880 --> 00:08:30.040
It has to be ordered because LLMs expect ordered messages.

s104
00:08:30.040 --> 00:08:32.479
You need to handle retries and so on.

s105
00:08:32.479 --> 00:08:37.200
You need to handle persistency and hydration because your agent is a microservice.

s106
00:08:37.200 --> 00:08:42.680
It can fail, the pod can crash, and then all your multi-agent system goes kaput.

s107
00:08:42.680 --> 00:08:44.240
So, you need to handle this.

s108
00:08:44.240 --> 00:08:48.040
You need to handle something very new, runtime binding.

s109
00:08:48.040 --> 00:09:00.680
If you want to connect a LAN graph to a codex or cloud to a crew AI, you need to connect a thread ID to a session ID to execution ID to a run ID of this multiple agents by and map it up to this IDs together.

s110
00:09:00.680 --> 00:09:07.240
Otherwise, agents will not be able to work as a group towards the same goal and the same task.

s111
00:09:07.240 --> 00:09:16.960
And obviously, you cannot work at the level of IPs and ports, or URLs that you have to manage, or even pub/sub topics.

s112
00:09:16.960 --> 00:09:32.200
You need to rise above all of the technical details to a different level of abstraction, conversation, participants, channels, or rooms, message routing that is tailored to agents as the first citizens.

s113
00:09:32.200 --> 00:09:42.640
And of course, all of that is still not enough for an to use this kind of product or communication software because every organization wants governance.

s114
00:09:42.640 --> 00:09:44.840
They need identity, they need observability.

s115
00:09:44.840 --> 00:09:55.080
Observability not in a message that was sent from agent A on server A to agent B on server B. But also what tool calls, okay, happened after a certain agent received this message,

s116
00:09:55.080 --> 00:09:55.560
right?

s117
00:09:55.560 --> 00:10:00.760
And it's very difficult to provide this kind of observability across distributed systems.

s118
00:10:00.760 --> 00:10:15.120
So, without all of that solved, you will not have agents talking to each other and this wonderful future of us, okay, everyone on a universal basic income lying on a beach will not happen.

s119
00:10:17.520 --> 00:10:20.120
I would like to introduce Bend.

s120
00:10:20.120 --> 00:10:24.160
We actually took all the stuff that we talked about and solved it.

s121
00:10:24.160 --> 00:10:26.000
So, you don't have to solve it.

s122
00:10:26.000 --> 00:10:32.880
So, you can super easily connect all your agents within an enterprise or your Hermes and Open Cloak.

s123
00:10:33.400 --> 00:10:39.600
I would like to unveil a product that we are launching this week.

s124
00:10:39.600 --> 00:10:52.600
And this is a global interaction and collaboration layer worldwide for any agents, any platform, any language, any environment.

s125
00:10:52.600 --> 00:10:56.040
And it's not peer-to-peer, it's multi-peer.

s126
00:10:56.040 --> 00:10:58.560
And we did not forget humans as well.

s127
00:10:58.560 --> 00:11:01.200
Okay, if you are human, you can still connect and talk to your agent.

s128
00:11:01.200 --> 00:11:03.760
This is completely fine.

s129
00:11:03.760 --> 00:11:09.000
And if we open the hood quite a bit, what we see there is that it's not just communication layer.

s130
00:11:09.000 --> 00:11:14.120
We have a registry, so your agents can see each other automatically without you jumping through hoops.

s131
00:11:14.120 --> 00:11:17.320
Persistency, channels, message filtering.

s132
00:11:17.320 --> 00:11:21.000
Instead of doing it on the client side, we do it within the platform.

s133
00:11:21.000 --> 00:11:24.400
Security, observability, and so on.

s134
00:11:24.400 --> 00:11:26.520
Now, the fun part.

s135
00:11:26.520 --> 00:11:28.839
Okay, let me show you a few demos.

s136
00:11:28.839 --> 00:11:32.040
Uh the time is short, so demos are recorded, but we have a booth.

s137
00:11:32.040 --> 00:11:35.280
Please come and see it live or just go and connect.

s138
00:11:35.280 --> 00:11:41.160
Um the demo will be two users in two different browsers connected to the communication platform.

s139
00:11:41.160 --> 00:11:42.320
One is me, Vlad.

s140
00:11:42.320 --> 00:11:45.520
I have a personal agent Claude running on a Mac.

s141
00:11:45.520 --> 00:11:50.320
And another user is Mike, Claude code in a terminal session, okay?

s142
00:11:50.320 --> 00:11:53.920
Uh Claude SDK and uh Landlord.

s143
00:11:54.560 --> 00:11:56.520
Demo number one.

s144
00:11:56.520 --> 00:12:00.160
On the top window, it's me, my account.

s145
00:12:00.160 --> 00:12:02.080
And I have a personal assistant.

s146
00:12:02.080 --> 00:12:09.240
Below, it's a different user connected to the same interaction layer with no agents at all.

s147
00:12:09.240 --> 00:12:20.920
On the right, okay, I'm going to spin up two agents and they will onboard on the platform and connect and become agents that belong to Mike.

s148
00:12:20.920 --> 00:12:26.000
And let's see how fast it's going to to be.

s149
00:12:26.040 --> 00:12:31.040
So, first of all, we go and we uh spin up an agent.

s150
00:12:31.040 --> 00:12:36.320
Seconds later, this agent card already appears with any within an account of Mike.

s151
00:12:36.320 --> 00:12:38.560
We spin up a Landlord.

s152
00:12:38.560 --> 00:12:41.480
Second later, this agent card appears as well.

s153
00:12:41.480 --> 00:12:44.440
From this point on, these agents know of each other.

s154
00:12:44.440 --> 00:12:47.400
They understand that they can interact with each other.

s155
00:12:47.400 --> 00:12:49.200
But we want to do something cooler.

s156
00:12:49.200 --> 00:13:00.720
We want to take a Codex agent and connect this agent to my personal assistant running on my Mac, so they can actually interact together.

s157
00:13:00.720 --> 00:13:13.320
We are sending a contact request that requires a bilateral consent from both parties in order for this agent to be introduced inside each uh registry that belongs either to an agent or to a human.

s158
00:13:13.320 --> 00:13:18.040
The request was sent and it was accepted by me.

s159
00:13:18.040 --> 00:13:27.640
And right now we have a Codex agent that can invite my personal assistant into a conversational space and interact with it in real time.

s160
00:13:27.640 --> 00:13:33.920
This is completely stateful agents can be deployed anywhere in the world and they are.

s161
00:13:33.920 --> 00:13:38.440
And what you see here, this is real time.

s162
00:13:39.480 --> 00:13:48.400
And you can see also that because my agent is talking to another agent of a different user, I have a full visibility into the conversation.

s163
00:13:48.400 --> 00:14:01.240
So, no conversation can happen without me seeing it and obviously my agent can invite me into every conversational space and interact with me and as a human in the loop.

s164
00:14:03.480 --> 00:14:08.840
So, what we have seen right now is a zero hassle on boarding of any agent.

s165
00:14:08.840 --> 00:14:09.800
Try it at home.

s166
00:14:09.800 --> 00:14:13.600
Tell me how it how how how it went.

s167
00:14:13.640 --> 00:14:16.360
So, another example.

s168
00:14:16.360 --> 00:14:18.560
We have a user Mike.

s169
00:14:18.560 --> 00:14:29.000
And this user still has the Codex running connected uh to the platform and now we want to run a Claude code terminal session.

s170
00:14:29.000 --> 00:14:37.360
And we want this terminal session from the terminal to connect to our platform and interact with other agents, right?

s171
00:14:37.360 --> 00:14:49.200
It can be here specifically Claude code in a terminal of Mike talks to a a Codex SDK of Mike, but because it's a global platform, it doesn't really matter, okay?

s172
00:14:49.200 --> 00:14:54.120
They can talk to your agent, they can talk to your your agent and so on.

s173
00:14:54.120 --> 00:15:02.800
So, we are spinning up Claude and we tell Claude in a terminal session, please go and connect to our platform.

s174
00:15:02.800 --> 00:15:03.920
Same concept.

s175
00:15:03.920 --> 00:15:13.800
This specific Claude session gets an identity, an agent card and we hide all the complexities in terms of where it is from the network perspective.

s176
00:15:13.800 --> 00:15:25.720
And from now this agent can actually create a conversational space as an owner, invite other agents in this specific case, Equidex, right?

s177
00:15:25.720 --> 00:15:27.880
And it will invite Mike as well.

s178
00:15:27.880 --> 00:15:35.520
So, it's uh you know, happy family, and they can start working on some engineering tasks.

s179
00:15:35.520 --> 00:15:37.600
Whatever it is.

s180
00:15:37.600 --> 00:15:44.400
The other way that people call it, whatever you see here, is loop engineering.

s181
00:15:44.400 --> 00:15:45.400
Okay?

s182
00:15:45.400 --> 00:15:58.120
But, it's loop engineering without 500,000 lines of a price book Python or Python script code that you need to bring over so your agents can actually prompt each other for work.

s183
00:15:58.120 --> 00:16:07.480
These agents will now right now start to and create a small website, uh and they will interact with each other, and one will review work of the other.

s184
00:16:07.480 --> 00:16:15.640
Uh and obviously, if they struggle and Mike struggles, uh these agents can invite me into the same conversation space.

s185
00:16:15.640 --> 00:16:18.400
I can help them, assist them.

s186
00:16:18.400 --> 00:16:22.680
Um and it's pretty easy.

s187
00:16:23.680 --> 00:16:25.000
That's it.

s188
00:16:25.000 --> 00:16:25.640
Thank you very much.

s189
00:16:25.640 --> 00:16:27.360
I'm right on time.

s190
00:16:27.360 --> 00:16:29.920
Come to our booth, LG17.

s191
00:16:29.920 --> 00:16:31.920
Take screenshots, take QR codes.

s192
00:16:31.920 --> 00:16:41.720
One is for the platform to connect your agents, and one is for the future of the loop engineering that doesn't need not require anything.

s193
00:16:41.720 --> 00:16:47.600
And we have Works that actually came here because they like orchestration, they do not like collaboration.

s194
00:16:47.600 --> 00:16:49.800
They have stolen all the swag.

s195
00:16:49.800 --> 00:16:54.760
So, if you want a swag, please come to Works, get a sword, and help us fight them.

s196
00:16:54.760 --> 00:16:56.960
Thank you.
