From coding to Knowledge work agents — Karan Vaidya, Composio
Read the talk
From Coding Agents to Knowledge Work: The Infrastructure Around the Model
Karan Vaidya explains six supports that make agents useful beyond code: shared access, a record of work, organizational context, verification, enforced boundaries and a way to recover from mistakes.
From a talk by Karan Vaidya
At a glance
Ideas worth remembering
The proposed infrastructure grows in layers: shared app access enables a cross-app record of work, and accumulated records can supply reusable history and organizational skills.
Technically successful execution can still produce an unwanted outcome. The hiring-outreach example motivates checking drafts and reviewing simulated consequences before real messages are sent.
Governance separates access from permitted behavior. External access limits restrict available operations, while policies constrain use of granted capabilities; the talk does not detail the policy enforcement mechanism.
Recovery and prevention require different timing. Use undo where an inverse action exists; for irreversible operations, sandbox review moves the decision before execution. Vaidya acknowledges that reversibility coverage remains unfinished.
Why coding agents had a head start
Karan Vaidya, cofounder and CTO of Composio, opens with a question: why does software engineering account for so much agent tool use while other work trails behind? He describes a rapid progression from autocomplete three years earlier to agents that can carry out substantial coding work. His characterization of software engineering as fully autonomous is a broad claim framing the talk, rather than a measured result established here.
Better models and better harnesses—including Claude Code, Codex and Cursor—helped produce that progress. Vaidya argues that they were insufficient on their own. Coding already offered repositories, commit history, tests, CI/CD, review, linters and reverts. These systems give an agent material to inspect, feedback on its changes and a recovery path when something goes wrong. They also give people reasons to trust its work beyond the agent’s own account of what it accomplished.
Moving the same agents into support, finance or sales changes their surroundings. Vaidya’s argument is that agents become blind when the infrastructure that supported their coding work is absent. He organizes the proposed remedy around six primitives. This is a design argument about the support knowledge work needs; the talk does not establish that every business system lacks every one of these capabilities.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Centralization gives the agent somewhere to start
The first primitive is centralization. A coding agent can start near the source of truth: the repository contains the code, and infrastructure as code can describe the environment around it. Vaidya treats this concentration of information as an important starting advantage. The agent can inspect what exists and how its parts fit together before making a change.
His contrasting example is a single deal spread across five platforms. Salesforce holds the records, Notion the documents, Gmail the emails, Slack the conversations and Zendesk the support history. Each app has its own login. Before the agent can work on the deal, it must retrieve these separate threads and connect them. That preparation merely brings it to the baseline from which the coding agent started.
Composio’s proposed center brings apps, connections and logins into one place and gives the agent appropriate access. Its purpose is to remove repeated connection and information-gathering work from the agent’s task. Vaidya describes the intended access surface, but does not specify here how conflicting records become a single authoritative answer. Centralized access is the foundation he proposes, with further layers built above it.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
History makes work inspectable and reusable
The second primitive is history. Git records changes so a coding agent can inspect earlier work, investigate failures and recover an implementation that was previously reverted. Vaidya illustrates this with a request to bring back a difficult change that had been removed after a failure. The agent has an existing record to consult rather than having to reconstruct the work from scratch.
History also serves the person supervising the agent. A record lets that person inspect what happened and check the affected applications rather than accepting a success message at face value. In knowledge work, the analogous questions include what produced the CRM’s current state, how a colleague wrote an email that helped close a deal, and how a support issue was escalated or resolved. Vaidya argues that scattered answers leave both agents and people without a usable account of the process.
Without that account, an agent can start almost blank each time, unaware of earlier attempts and their outcomes. Vaidya proposes a record of work above the centralized access layer: log actions across applications, including what the agent touched, what it skipped, what worked and what failed. Such a record gives future runs something concrete to retrieve when facing similar tasks.
The two intended benefits are memory for the agent and evidence for the user. The agent can reuse successful approaches; the user can inspect its activity and catch bad actions. Vaidya describes trust as something that grows through repeated observation of correct work, allowing more tasks to be delegated over time. Logging supports that judgment, although an action record alone does not establish that every recorded action was appropriate.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Context includes the organizational map and its standards
Vaidya separates context into two kinds. The first is architecture: how parts connect and how data flows between them. He compares it to the mental map a senior engineer carries and a junior engineer might take three months to develop. The second is style: what good work looks like within a particular company. In code, local conventions appear in existing implementations, linters, formatters and choices such as a particular TypeScript decorator. An agent can inspect these examples even when there is no explicit playbook.
For knowledge work, he uses a customer document as the example. Writing it requires pulling usage from a database, checking PostHog to understand product behavior and consulting Salesforce for deal details. The document depends on the relationship between these sources. A person combines them into a working context in their head; access to any one tool does not supply that combined understanding. History and context together help explain how the organization operates.
The proposed mechanism is to derive patterns from accumulated action records. With enough logged work, recurring approaches and failures can become skills: distilled descriptions of how work gets done. Vaidya distinguishes three levels of knowledge—how a tool works generally, how a company does things and how an individual prefers to work. Making those patterns queryable would give agents an operational playbook. The talk describes this intended progression without specifying a method for extracting skills or validating that the inferred patterns are reliable.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Verification must ask whether an action should happen
Coding gives agents a stack of feedback mechanisms. Unit tests check smaller pieces of behavior; integration tests check interactions between components. Type checks and compiler failures can block invalid code, while linters, formatters and review skills help enforce team standards. Vaidya’s point is that an agent can run these checks and revise its work in a loop. These checks address the properties they encode; his description should not be read as a guarantee that compilation or passing tests catches every error.
His own hiring outreach illustrates a different kind of failure. He pointed OpenClaw at mass emails to candidates, and it sent many messages exactly as instructed. He calls the result a disaster that appeared on Twitter with his name attached. The emails were valid, the addresses were real and the messages reached actual people. Successful execution therefore supplied no answer to the consequential question: should those messages have been sent at all?
Vaidya then identifies the actionable failure more specifically: the outreach went out before he knew about it. He proposes two checks before real execution. First, compare the draft with emails he has previously sent to assess whether it matches his style and expectations. Second, let the agent rehearse consequential actions in a sandbox whose tools mock the real ones. The action then affects the sandbox, where he can review it before the agent performs the real operation.
Together, these mechanisms aim to move verification ahead of external consequences. Vaidya describes an agent that can check its own work and close more of its loop. His example still includes human review before the real action, however. Draft comparison evaluates resemblance to prior work, and mocked tools permit rehearsal; neither is demonstrated here as a complete test of whether outreach is appropriate or as a guarantee that simulated behavior matches every real tool outcome.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Governance puts boundaries outside the agent’s memory
Governance controls what an agent can do. Vaidya describes several coding boundaries: an agent works on its own branch, a human reviews before merging to main, code owners become involved when critical files change, and agents deploy to previews while production remains restricted. These gates vary with the potential blast radius. The intended tradeoff is to preserve freedom on safe paths while placing tighter controls around consequential transitions.
He contrasts those boundaries with a reported incident involving a director of alignment at Meta Superintelligence Lab. In his account, an email agent kept deleting messages after being told to stop, and the person had to reach a physical machine to halt it. By then, 200 emails had vanished. She had previously prompted the agent to confirm before such actions. Vaidya suggests that the instruction might have been compacted away, but offers that as a possible explanation, not an established cause of the incident.
Business applications do have controls, including Gmail scopes and Salesforce permission levels. Vaidya’s objection is that they are scattered, making coordinated control difficult and encouraging people to rely on prompts. A prompt-based boundary depends on the agent retaining and following an instruction. He argues for a boundary that still blocks an operation even when the agent has forgotten the rule exists.
Composio’s first proposed layer is deterministic access control outside the agent. A hiring agent might only read email; a support agent might create drafts but lack the ability to send them. Because the boundary does not live in the prompt, the agent cannot remove it by forgetting or arguing with it. Access restriction alone is insufficient for every task, though: an email agent may legitimately need access to email operations.
The second layer constrains behavior within granted access. Vaidya gives natural-language policy examples: require permission before deleting more than 10 emails, or prohibit emailing outside a particular domain. One layer limits what the agent can reach; the other limits what it may do with that reach. He presents these policies as enforced controls, but does not explain how the natural-language rules are evaluated or implemented. Only the access layer is explicitly described as deterministic.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Reversibility changes when trust must be established
The final primitive asks what happens after a mistake: can it be undone? In code, Vaidya points to reverting a commit or using git bisect to identify the commit that broke production and then reverting it. A production failure remains harmful, but a recorded change provides a pathway back. That recovery path makes experimentation with agents easier to tolerate.
Knowledge work includes actions for which he describes no dependable undo: sending an email, making a wire transfer or permanently deleting a record. His argument concerns operations whose effects cannot simply be walked back, rather than establishing that every email deletion or transfer is irrecoverable. Where there is no recovery path, the sequence of trust changes. Letting an agent act, checking afterward and undoing an error is insufficient; the consequential judgment must happen before execution.
Vaidya acknowledges that reversibility is the hardest primitive to reproduce and that true undo probably does not exist for every knowledge-work scenario. Where an inverse operation exists, it can be exposed: adding a label can be reversed by removing it. For irreversible actions such as hard deletion, he returns to sandbox rehearsal and review before production execution. This is prevention in place of recovery; it does not make the real action reversible once it occurs.
He makes the proposed experience concrete with a hypothetical notification that 1,200 emails are going to be deleted and asks whether the user wants that action. The deletion has not happened yet. Reversible actions would receive a reverse button; irreversible ones would first produce an inspectable sandbox result. Vaidya explicitly says the work is unfinished. He describes learning across billions of actions which operations can be walked back and preparing sandbox behavior accordingly, without presenting completed coverage or a guarantee of recovery.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
The closing claim: the bottleneck moves around the model
Vaidya closes by arguing that the bottleneck has moved. For two years, he says, better models were the focus; now models are capable enough that missing support systems increasingly limit their use elsewhere. He asserts that the same model used for coding can also perform hiring, sales and other knowledge work, but lacks history, context, verification, guardrails and undo in those settings. The talk supports an infrastructure agenda through examples and proposed mechanisms; it does not demonstrate universal model readiness or establish his claim of 100% autonomous software engineering.
He reports that Composio powers more than a billion tool calls in total and 300 million tool calls each month. These are speaker-reported usage quantities, not evidence that all six primitives are complete. He ends by inviting agent builders to use Composio and prospective colleagues to join the company, emphasizing that substantial work remains. His final prediction is that models will keep improving while the systems around them remain the limiting factor.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Read the complete timestamped transcript
- 0:01
[music]
- 0:13
>> Uh hey folks. Uh I'm Karan Vedya,
- 0:15
co-founder and CTO of Composio.
- 0:19
Most agentic tool calls today are still
- 0:21
happening in one field. No guesses, it's
- 0:24
software engineering.
- 0:26
Every other kind of work is trailing far
- 0:28
behind.
- 0:29
If models keep getting better, then why
- 0:32
are we still limited to just agentic
- 0:34
coding?
- 0:35
That's the trillion-dollar question I'm
- 0:37
here to answer.
- 0:43
Three years ago, coding agents were just
- 0:45
auto complete.
- 0:47
Today, software engineering is fully
- 0:49
autonomous. We went from pressing tab
- 0:52
tab tab
- 0:53
to
- 0:54
let just Claude cook. That's just magic.
- 1:00
And why did it happen so fast in coding?
- 1:04
Most people would think it's models.
- 1:07
Yeah, models got really better over time
- 1:09
over the last two to three years.
- 1:11
And so did the harnesses. Claude code,
- 1:15
Codex, Cursor.
- 1:16
But on their own, it wouldn't have been
- 1:19
enough.
- 1:20
It only worked because all the
- 1:22
infrastructure and systems around coding
- 1:24
were literally meant for agents.
- 1:28
Code came with the support that agents
- 1:30
needed.
- 1:32
You have got the repo,
- 1:33
the commit history, tests, CI/CD,
- 1:36
review, linters, revert if anything goes
- 1:39
wrong. The kind of stuff that makes you
- 1:42
trust the agents, the systems around
- 1:44
code.
- 1:46
Now, we're pointing these same amazing
- 1:49
agents at everything else.
- 1:51
Support, finance, sales.
- 1:54
But the agents that were doing
- 1:55
phenomenally well in coding, are just
- 1:57
working blind.
- 1:59
Because the infrastructure around coding
- 2:01
doesn't even exist in other fields.
- 2:05
>> [snorts]
- 2:05
>> So, how do we close the bridge between
- 2:08
coding agents and knowledge work agents?
- 2:11
We think it's core six primitives and
- 2:15
coding had all six of them
- 2:18
while knowledge work doesn't have any
- 2:20
and that's what we need to build.
- 2:23
First is centralization.
- 2:26
Coding agents work so pretty well partly
- 2:30
because they were very near the source
- 2:32
of truth.
- 2:34
They knew the what, the why and how.
- 2:37
You give them the repo, the
- 2:38
infrastructure as code and you close the
- 2:41
loop and let the model cook. The agent
- 2:44
starts at everything with everything
- 2:47
they need all in a single place, that is
- 2:49
the code base.
- 2:51
This is exactly what knowledge work miss
- 2:53
today.
- 2:55
For example, a single deal is scattered
- 2:57
across five different platforms.
- 2:59
The records are in Salesforce, the docs
- 3:02
in Notion, the emails in Gmail,
- 3:04
conversations in Slack and the support
- 3:06
history is in Zendesk.
- 3:09
There's no single source of truth,
- 3:10
single place to get all the information.
- 3:13
Everything is separate and every app has
- 3:16
its own login.
- 3:17
Before a knowledge work agent can even
- 3:20
start to do thing, it has to go and pull
- 3:22
all the threads
- 3:24
and kind of tie them together itself.
- 3:27
And that's still the base point where
- 3:29
coding agent had started. It already had
- 3:31
it all. So, how can you expect knowledge
- 3:33
work to do knowledge work agent to do
- 3:35
the same level of work as coding agent?
- 3:39
So, the first thing we build is the
- 3:41
missing center. One place where all your
- 3:43
apps, all your connections, all your
- 3:45
logins exist. So, the agent doesn't need
- 3:49
to do the hard work of stitching them
- 3:50
all together. They find it all in a
- 3:52
single place.
- 3:53
And they get the baseline with the
- 3:55
coding agent started with, which is the
- 3:57
repo, the information across all the
- 4:00
stacks in one single place.
- 4:02
That's the foundation
- 4:04
you start with and you can give right
- 4:06
accesses to your agent.
- 4:09
The next thing agent needs is a sense of
- 4:11
history.
- 4:12
The ability to look back in the past.
- 4:16
In code, you get it for free.
- 4:19
Git keeps a record of every single thing
- 4:21
that went in, every single change that
- 4:23
was made. So, the agent can always look
- 4:25
back and see how a certain change was
- 4:27
made, why something worked, why
- 4:30
something didn't work.
- 4:31
Think about the kind of thing you
- 4:33
actually ask your agent to do.
- 4:35
We had to revert a change in the past
- 4:37
because of some failure, but that was
- 4:39
pretty hard to pull off. Can you look at
- 4:41
it and get it back again?
- 4:43
It just reach to the history and get it
- 4:45
back and
- 4:46
cook it.
- 4:47
The [snorts] history isn't just for
- 4:48
agent.
- 4:49
It's also for you to keep a record what
- 4:52
the agent is doing.
- 4:53
You can see what the agent is doing,
- 4:55
where it is up, where it is
- 4:56
doing successful things, and like
- 4:59
instead of trusting what the agent is
- 5:01
saying you, you can just go to those
- 5:02
particular apps and look at what it has
- 5:05
done.
- 5:09
Now, ask those same questions about
- 5:11
knowledge work. What led to the CRM
- 5:13
being in a state where it is today?
- 5:16
How did the How did my colleague craft
- 5:18
that amazing mail that led to the
- 5:20
closing of the deal?
- 5:22
What's the actual process to escalate a
- 5:24
support issue or even close one?
- 5:27
The answers are smeared across hundreds
- 5:29
of apps and none of them keep the
- 5:30
history.
- 5:31
So, the agent has no memory. It starts
- 5:34
from blank state almost every time. No
- 5:36
idea what was tried before, what worked,
- 5:39
what didn't work.
- 5:40
And you you have nothing to look at all
- 5:43
as well. Once the agent runs, it tells
- 5:45
you it has done successfully, you don't
- 5:47
know if it has actually done
- 5:48
successfully. There's no way to
- 5:50
know if it is right or not.
- 5:52
And that's what's missing, a record of
- 5:54
work.
- 5:57
Now, because everything
- 5:59
finally runs through one single place,
- 6:01
that centralization, we can build a
- 6:03
layer on top of it, the record.
- 6:06
Every single like action that agent
- 6:09
takes can be logged across every other
- 6:11
app.
- 6:12
Whatever it touched, whatever it
- 6:14
skipped, what worked, what didn't.
- 6:17
Via this, firstly, the agent gets
- 6:19
memory.
- 6:20
It can look back at how similar tasks
- 6:22
were done before, what was successful,
- 6:25
and replicate it again.
- 6:28
It doesn't start with a blank state all
- 6:30
the time.
- 6:31
Second, you get trust. You can finally
- 6:33
see exactly what the agent is doing. So,
- 6:36
instead of hoping it will do the right
- 6:38
thing, you can just go back and check
- 6:40
and catch it if it does something bad.
- 6:44
And as you kind of see it more and more
- 6:46
doing the right things, you'll develop
- 6:47
the trust and offload more tasks to it.
- 6:51
The next thing an agent needs is
- 6:52
context.
- 6:54
And there are really two kinds of
- 6:55
context, if you think about it. The
- 6:57
first the shape of shape of the
- 6:59
platform, the architecture.
- 7:01
How things flow into each other, how
- 7:02
things are tied, the data flows.
- 7:05
Like kind of like a map which a senior
- 7:07
engineer carries in their head, and a
- 7:09
junior engineer takes probably 3 months
- 7:11
to develop.
- 7:12
The second is style. This isn't what's
- 7:14
objectively correct, but more like what
- 7:17
good looks like in your company. So,
- 7:20
how you do things, things like linter,
- 7:22
type checks, etc. And maybe you use a
- 7:25
TypeScript decorator which nobody else
- 7:28
would.
- 7:29
This is not exactly somewhere in a
- 7:32
playbook, it's more in your code base.
- 7:34
It's all available in your code base, so
- 7:36
the agent can just go and look and
- 7:37
figure out the specs,
- 7:39
what you like, the like linters, the
- 7:41
formatters, etc.
- 7:45
Now, coming to knowledge work,
- 7:47
the same thing. Say you're writing a doc
- 7:49
to a customer.
- 7:50
To even start, I would have to open the
- 7:52
database to pull their usage, check
- 7:55
PostHog of how they have been actually
- 7:57
using things.
- 7:58
And Salesforce to look at their deal
- 8:00
details. Only then I can even start
- 8:02
writing the first line of the doc.
- 8:05
The answer wasn't isolated in just one
- 8:08
of those tools. I'm able to write this
- 8:10
is doc because I'm pulling the threads
- 8:12
across all these tools into one single
- 8:14
context in my head.
- 8:15
So, putting history and context
- 8:17
together, that's how you map how the
- 8:19
organization works. And that part is not
- 8:22
available to agent handily.
- 8:26
So, as we did centralization and
- 8:29
logging,
- 8:30
the record we just built, the one that
- 8:32
gives the agent memory and lets you
- 8:34
check what it did, also does one more
- 8:36
interesting thing.
- 8:38
It If you log enough of what every agent
- 8:40
is doing, you start to see patterns. You
- 8:42
start to see how the organization works.
- 8:44
And you start to form skills, which is
- 8:47
some sort of distillation of how the
- 8:49
organization has been working.
- 8:51
Which approaches work, which don't,
- 8:53
which
- 8:54
what led to failures in the past, etc.
- 8:57
The The record isn't just history of
- 9:00
what happened anymore. It's a picture of
- 9:01
how your company operates.
- 9:03
And it actually works at three different
- 9:05
levels. How a tool works in general,
- 9:07
which is applicable to every person, how
- 9:10
a company does things, and how you
- 9:12
prefer to do things, what good like
- 9:13
looks like to you.
- 9:15
And that's the context that context that
- 9:17
was missing for a knowledge work agent.
- 9:19
How the work actually gets done, the
- 9:21
real playbook of sorts, and the
- 9:24
preference of a company of a personal
- 9:26
user.
- 9:27
And now the agent can query it and stop
- 9:30
guessing how the company operates.
- 9:34
The other reason coding agents work so
- 9:36
well,
- 9:37
they test themselves. The work checks
- 9:38
itself.
- 9:40
Verification.
- 9:41
The moment the agent writes a code, a
- 9:43
stack of checks follow. The unit tests
- 9:45
can catch small mistakes. The
- 9:47
integration tests catch the ones that
- 9:50
only affect components three blocks
- 9:51
away. The type system would not even
- 9:54
work and run if anything is going wrong.
- 9:57
The compiler will not even build. On top
- 10:00
of it sits the softer checks, linters,
- 10:03
formatters, bugboard.md review skills,
- 10:05
etc. And these ensure that the code
- 10:08
matches the way your time team likes to
- 10:10
follow the standards of your team. None
- 10:13
of it needs you. The agent completes the
- 10:15
loop on its own and makes sure that it
- 10:17
follows the standard and is able to make
- 10:19
the code run.
- 10:21
Now, think about like so, there's an a
- 10:24
while back I pointed my open claw at a
- 10:27
hiring outreach. Mass emails to
- 10:29
candidates. It ran. It sent tons of
- 10:33
emails.
- 10:34
Uh some of you might have also gotten it
- 10:36
from my open claw. It did exactly what I
- 10:38
told it to do.
- 10:40
It was also a disaster.
- 10:41
The kind that ends up on Twitter with my
- 10:44
name on top of it.
- 10:46
Uh yeah, I think you can see a you
- 10:49
Karan Vaidya. Uh
- 10:52
I was not the happiest when it happened.
- 10:54
And here's the thing, every check from
- 10:56
the past slide would have passed. The
- 10:58
emails were valid, their addresses were
- 11:00
real. It actually
- 11:02
got to real people who posted. Uh there
- 11:04
was no best tool in the world to
- 11:07
actually uh question what really
- 11:09
mattered. Should this have gone at all?
- 11:13
That's the gap in code. These tests tell
- 11:15
you what's wrong and right. Here, the
- 11:18
internet told me that I was wrong.
- 11:21
So, we build the checks that are
- 11:23
missing.
- 11:24
The problem in the above thread was
- 11:26
wasn't the outreach was wrong. It was
- 11:28
that it went out before even I getting
- 11:30
to know. So, the fix is simple. Catch
- 11:33
before it's even real.
- 11:35
So, we have two ways in which we do
- 11:36
that. One, before the agent senses
- 11:39
anything, it checks the draft
- 11:42
emails that I've sent before. If it
- 11:43
matches my style, if it matches the
- 11:45
goodness that I like.
- 11:47
The second, before doing anything
- 11:49
destructive in the real world scenario,
- 11:51
we provide the agents and boxes, which
- 11:53
mock the real tools, and they can send
- 11:56
they can do action on top of these
- 11:58
sandboxes. So, instead of the blast
- 12:01
radius hitting the real world, it will
- 12:03
hit a sandbox, and then I can review it
- 12:05
before the agent does the real thing.
- 12:07
Put those two together, and you've got
- 12:09
something knowledge work never had. A
- 12:11
way for agent to check its own work
- 12:14
before it's even real. It can finally
- 12:16
close its own loop instead of stopping
- 12:18
to wait for you.
- 12:20
And with all that, you can trust the
- 12:23
action it is taking without you getting
- 12:25
bombarded with the tweets that I shoot.
- 12:29
Next thing the agent needs is
- 12:31
governance. Building trust is
- 12:33
controlling what the agent can do.
- 12:34
Putting up the right walls around the
- 12:36
agents.
- 12:39
In code, this is mostly solved and like
- 12:42
has multiple layers. The agent can do
- 12:45
whatever it wants on its own branch, but
- 12:47
it can't merge to main. A human reviewer
- 12:49
sits in between it merging to main. The
- 12:52
critical files have code owners. So,
- 12:54
whenever it touches one of them, the
- 12:55
right people are getting involved.
- 12:57
Uh we use agents to ship to preview
- 12:59
deployments. Never let it touch the
- 13:01
production deployments, so we control it
- 13:02
there.
- 13:04
The governance is not a single gate, but
- 13:06
multiple of them, and each varying its
- 13:09
sizes depending on the blast radius it
- 13:11
exposes.
- 13:12
None of it slows the agent down in safe
- 13:15
paths. Just prevents it from up
- 13:18
production.
- 13:19
And the tighter those lines are, the
- 13:21
more you can trust the agent and let it
- 13:23
go berserk.
- 13:26
You probably saw this one. The director
- 13:28
of alignment at Meta Superintelligence
- 13:30
Lab hooked up an agent to its email and
- 13:32
it started destroying its email,
- 13:34
deleting a lot of them. She told it to
- 13:36
stop. It kept going. Finally, she had to
- 13:39
run to a physical machine to stop it.
- 13:41
But by then, 200 emails had actually
- 13:44
vanished.
- 13:45
She had told it beforehand in prompt to
- 13:48
confirm before acting on such cases. But
- 13:51
that was just a prompt which probably
- 13:52
would have compacted away.
- 13:54
And if someone whose sole job is AI
- 13:57
alignment can't prompt it the agent
- 14:00
correctly, then probably none of us can.
- 14:03
And that's the real reason
- 14:05
these agents are so hard to trust.
- 14:08
Not because they're worse than the
- 14:09
coding agents, but because there's no
- 14:11
wall around them.
- 14:12
In code, the wall was already built into
- 14:14
the system while we were developing
- 14:15
earlier.
- 14:17
Knowledge work also has some bits and
- 14:19
pieces here and there. For example,
- 14:20
Gmail has scopes, Salesforce has
- 14:22
permission levels. But it's so scattered
- 14:24
all over the place that it's very hard
- 14:27
to have real control and mostly people
- 14:29
end up doing it via prompting.
- 14:32
And prompting is fragile.
- 14:34
The agent will find those loopholes.
- 14:36
Things will get compacted away. And at
- 14:38
scale, uh
- 14:40
one of these fence will break and you'll
- 14:42
also be in the same condition where 200
- 14:44
of your important emails are vanishing.
- 14:47
So, what would actually stop it? Not
- 14:49
like a better instruction, but wall that
- 14:52
the agent can't cross even if it forgot
- 14:55
that wall existed.
- 15:00
So, we build these walls in two layers.
- 15:03
The first layer is deterministic,
- 15:05
control over what the agent can reach,
- 15:07
what it has access to. Um
- 15:09
a hiring agent can probably just read
- 15:12
the emails. A support agent can create a
- 15:14
draft email, but not actually send it.
- 15:17
The boundary lives outside these agents.
- 15:19
It can't be argued with by the agent or
- 15:22
forgotten or compacted. Use instruction
- 15:25
failed because it lived in agent's
- 15:27
memory in the prompt. This doesn't.
- 15:30
Uh but access alone wouldn't have saved
- 15:32
her because she was actually building an
- 15:35
email agent. So it definitely needed
- 15:37
access to that email.
- 15:39
Um the other thing that we do is provide
- 15:42
policies, which is you can define
- 15:44
natural language policies of what the
- 15:46
agent can do even with those accesses.
- 15:49
So things like never delete more than 10
- 15:51
emails without my permission.
- 15:53
Never email outside a particular domain.
- 15:56
Rules that with even those access
- 15:59
control the behavior.
- 16:00
So between those two things, one layer
- 16:03
controls the what the agent can reach
- 16:05
and the other layer can control the
- 16:06
behavior with what it can do with that
- 16:08
reach. Together, it's real governance
- 16:10
for the agent. Not asking the agent to
- 16:12
behave, but enforcing it what it can do.
- 16:18
The last pillar, reversibility. And this
- 16:21
is
- 16:22
the one of the
- 16:23
Uh this is where we reach when things go
- 16:25
wrong. Can I undo it?
- 16:27
In code, you almost always can.
- 16:30
Every change is recorded. Things can be
- 16:32
walked back. You can get revert the last
- 16:35
commit or you can get bisect to the
- 16:36
commit that broke your production and
- 16:38
revert it.
- 16:40
Um
- 16:41
now
- 16:42
Like I'm not saying it's good. I I won't
- 16:45
pretend like that. If things go in
- 16:46
production and break, it's always bad,
- 16:48
but it's still not permanent. You can
- 16:50
still walk back from it. And that's what
- 16:52
gives you confidence to let your agents
- 16:54
cook and let them do some magic because
- 16:58
even if they they break the things, you
- 16:59
can you have a pathway back.
- 17:03
For knowledge work, there is no undo
- 17:04
button. Things Like think about use
- 17:07
inbox. Those 200 emails are gone. They
- 17:09
have vanished. That's the normal case,
- 17:11
by the way. The disaster case is a sent
- 17:13
email, which you can't revert back. A
- 17:15
wire that has already been made. So you
- 17:17
can't get that money back. A deleted
- 17:19
record, gone forever. Most actions
- 17:21
actually in knowledge work don't have an
- 17:23
undo button.
- 17:25
And that changes the whole equation.
- 17:27
Uh that changes the blast radius. Uh
- 17:29
with code, you can trust the agent after
- 17:31
the fact. Let it run, check the result,
- 17:33
undo if it's wrong. Out here, there's no
- 17:35
coming back. The only place left for you
- 17:37
is to is to trust before the agent acts.
- 17:40
That's what makes these agents feel
- 17:42
dangerous in a way coding agents never
- 17:44
did. It's not that they fail often. It's
- 17:47
that out there failure is forever.
- 17:50
So, either you completely go up front or
- 17:52
never let it act.
- 17:55
Let me be honest, reversibility is the
- 17:57
hardest to replicate in knowledge work.
- 17:59
Real undo, the way it exists for code,
- 18:01
probably doesn't exist in all the
- 18:03
scenarios in knowledge work.
- 18:04
But
- 18:05
we have some scenarios where undo exists
- 18:07
and we
- 18:08
call them. So, let's say you add a
- 18:11
label. You can remove the label
- 18:12
afterwards.
- 18:14
But for actions
- 18:15
that you can't undo at all, like hard
- 18:17
deletes that disappear the emails from
- 18:20
your inbox, we again provide a sandbox
- 18:22
where the agent can do the thing first
- 18:24
in the sandbox and you can review it and
- 18:27
then actually goes into the production
- 18:28
environment. None of it touches the real
- 18:31
world. That's the whole flip.
- 18:33
In code, you can undo the mistake after
- 18:34
it happens. Here, you catch it before it
- 18:37
does. Different timing, same result, a
- 18:39
mistake that won't stick.
- 18:41
Think about you again. The actions we
- 18:42
could reverse, we would give it a
- 18:44
reverse button. The ones we couldn't,
- 18:46
the agent would hit the sandbox first
- 18:48
and she would be notified, your 1,200
- 18:50
emails are going to get deleted. Do you
- 18:53
want it?
- 18:55
It's not done yet.
- 18:57
Uh but across billions of actions that
- 18:59
we're going through, we are learning on
- 19:01
the way which ones can be walked back,
- 19:03
which ones can't, and preparing the
- 19:04
sandbox accordingly.
- 19:09
If you take one thing away today, take
- 19:11
this. For 2 years, the model was the
- 19:13
bottleneck. So, everybody was racing
- 19:15
towards better and better model. Now,
- 19:17
the models have gotten good enough where
- 19:19
software engineering is 100% autonomous.
- 19:23
But, now everything else is the
- 19:24
bottleneck.
- 19:26
This
- 19:28
the same model that writes your code
- 19:31
can also do your hiring, sales, and
- 19:34
other knowledge work.
- 19:36
Um but, it right now it's working blind.
- 19:39
No history, no context, no ways to
- 19:41
verify, no guardrails, no undo.
- 19:44
So, the bottleneck has moved.
- 19:48
Now, it's infrastructure that nobody has
- 19:50
yet built. And that's what we are
- 19:51
building at Composio.
- 19:55
Yeah.
- 19:56
We are powering billion plus tool calls
- 19:58
in total. Uh 300 million tool calls
- 20:00
happening every month.
- 20:02
And if you are building an agent, just
- 20:05
point it to Composio and see the magic
- 20:06
happen for knowledge work. And if you
- 20:08
want to build the future of substrate of
- 20:11
AI agents, then please come to me. We
- 20:13
are definitely hiring, and there's a lot
- 20:15
lot left to do.
- 20:17
The models will keep getting better. The
- 20:19
bottleneck won't be models. It will be
- 20:22
the things around it. Thank you.