From coding to Knowledge work agents — Karan Vaidya, Composio
Read the talk
From Coding to Knowledge Work Agents
Karan Vaidya explains the six kinds of infrastructure that help coding agents work reliably—and how cross-app records, contextual checks, enforced permissions, and simulated actions could bring similar confidence to hiring, sales, and support.
From a talk by Karan Vaidya
At a glance
Ideas worth remembering
Coding agents benefit from six surrounding primitives: centralization, history, context, verification, governance, and reversibility. Knowledge-work agents need comparable support across their apps.
A cross-app action record can serve as agent memory, a way for humans to inspect work, and material for skills that capture tool procedures, company practices, and personal preferences.
Successful tool execution does not settle whether an action should happen. The outreach example needs checks on the draft and proposed effects before real delivery.
Governance separates access from permitted behavior: permissions control what an agent can reach, while policies constrain what it can do with that access. Enforcement must live outside the agent’s memory.
Use inverse actions where they exist, such as removing an added label. For irreversible effects, sandbox review moves the decision before execution; it cannot supply a universal undo.
Coding agents inherited the systems that make delegation possible
Why have agents advanced so quickly in coding while support, finance, and sales trail behind? Karan Vaidya, co-founder and CTO of Composio, opens with the change from pressing “Tab, Tab, Tab” for autocomplete to letting Claude work through an assignment. His description of software engineering as fully autonomous is a broad characterization, rather than a demonstrated result across all engineering work. The useful question is what makes longer stretches of independent execution possible.
Better models and harnesses such as Claude Code, Codex, and Cursor explain part of that progress. But a coding agent also enters an environment with a repository, commit history, tests, CI/CD, review, linters, and ways to revert changes. These systems give it somewhere to find information, feedback on its work, limits on deployment, and a route back when it makes a mistake.
Moving the same agent into a business workflow removes much of that surrounding support. Composio’s proposed bridge has six primitives: centralization, history, context, verification, governance, and reversibility. The talk develops them in that order because several depend on the earlier layers: connected tools make a shared record possible, and that record can help reveal how an organization works.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Centralization: one deal, five apps, five logins
A repository gives a coding agent a starting center: code and infrastructure definitions sit together, ready to inspect. A single sales deal has a different topology. Its records live in Salesforce, documents in Notion, emails in Gmail, conversations in Slack, and support history in Zendesk. Each app has its own login. Before useful work begins, the agent must find and connect those threads.
Composio’s missing center is a shared place for apps, connections, and logins, with appropriate access assigned to the agent. This gives the agent a common way to reach the information distributed across the stack. It removes the repeated work of assembling access before every assignment; understanding the relationships among the retrieved facts still requires the later context layer.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
History: remember the work and inspect what actually happened
Git lets an agent look backward. Suppose a useful change was reverted after a failure, and someone now wants to recover it. The agent can inspect the earlier change and its surrounding history instead of reconstructing everything from the current files. That same record helps a human examine the agent’s work independently of its account of what it did.
Knowledge work needs comparable answers: what led to the CRM’s current state, how a colleague wrote an email that helped close a deal, or which steps escalated a support issue successfully. Vaidya’s concern is the lack of a coherent, agent-readable record across apps. Without it, each run starts with little knowledge of previous attempts, and a completion message gives the user little help checking the result.
Once actions run through a common connection layer, a record can sit above it. It logs what the agent touched, what it skipped, and what worked or failed. The record serves two parallel purposes:
- Agent memory: Retrieve similar past tasks and reuse successful approaches instead of starting blank.
- Human inspection: Examine the actions and check the affected apps rather than accepting the agent’s success message on faith.
Repeatedly observing good work can then justify delegating more tasks.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Context: learn the map and what good looks like
Access and history still leave two different questions unanswered:
- The map: How do the parts of the system connect, and how does data flow between them? This resembles the architectural map a senior engineer carries in their head.
- The style: What counts as good work here? A codebase’s conventions, formatters, linters, and unusual implementation choices reveal preferences that may never appear in a written playbook.
An agent needs both to produce work that fits its surroundings.
Writing a customer document makes the missing map concrete. Before the first line, a person may pull usage from a database, examine how the customer uses the product, and read deal details in Salesforce. The document becomes possible when those separate facts meet in one working context. Connecting the apps supplies the ingredients; knowing which ingredients belong together supplies the workflow.
Composio’s proposed learning mechanism begins with the action record. Enough recorded work exposes recurring approaches, successful paths, and past failures. Those patterns can be distilled into skills that an agent queries on later assignments. The context operates at three levels: how a tool works generally, how a company uses it, and how an individual prefers the work to be done.
How does a record of past actions become guidance for future work? The flow below shows the intended relationship: centralized access makes cross-app logging possible; accumulated logs reveal patterns; skills make those patterns available to another run. The valuable change is from merely remembering an event to recovering a procedure that helps the agent stop guessing.
Apps, logins, and appropriate access are available in one place.
The record supports both inspection of past work and the distillation of procedures for future work.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Verification: valid emails can still be a disaster
Coding has several feedback mechanisms that check different properties. Unit tests catch local mistakes; integration tests expose failures involving other components; type checks and compilation reject certain invalid programs. Linters, formatters, and review guidance check team conventions. Together, they let an agent inspect feedback, revise its work, and continue the loop without asking a human about every small error.
Vaidya’s hiring outreach shows why that loop needs different checks outside code. He pointed OpenClaw at mass emails to candidates. It sent them as instructed, and the resulting complaints put his name on Twitter. The messages were valid, the addresses were real, and delivery reached actual people. Those checks could all pass while missing the consequential question: “Should this have gone at all?”
The failure sequence matters. An instruction became a batch of outgoing messages; real delivery made the effects public; only then did feedback reveal that something was wrong. Vaidya identifies the practical failure as outreach going out before he knew about it. The proposed correction moves evaluation earlier, while the message is still a draft and the action is still preventable.
Composio describes two complementary checks:
- Compare against previous emails: Assess the draft against messages the user has sent before, including their style and expectations of quality.
- Exercise mocked tools: Let the agent perform consequential actions in a sandbox that imitates the real tools. The user can review what would happen before the action reaches the real world.
The first supplies a contextual quality standard. The second changes where the consequences occur. In the sandbox-review path, a human still participates before execution, even though the agent can perform the preparatory checks itself.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Governance: put the limits outside the agent’s memory
Verification asks whether the work is good. Governance controls which actions the agent can take. The coding workflow Vaidya describes has several gates: an agent works on a branch, a human reviews before merging to main, code owners get involved for critical files, and preview deployments keep experimentation away from production. The gates vary with the damage an action could cause, leaving room for fast work inside safer areas.
Vaidya recounts an incident involving an alignment director at Meta whose email agent continued deleting messages after being told to stop. In his account, she reached a physical machine to stop it after 200 emails had disappeared, despite having prompted it to confirm beforehand. He suggests that the instruction may have been lost during context compaction; that causal explanation remains conjectural. The design problem survives either way: a remembered instruction does not itself prevent a tool from executing.
Business apps already provide pieces of access control, including Gmail scopes and Salesforce permission levels. The difficulty is coordinating those scattered controls rather than relying on prompting to fill the gaps. Composio’s answer separates two kinds of restriction:
- What the agent can reach: Deterministic permissions can make a hiring agent read-only or allow a support agent to create drafts without sending them. These limits live outside the agent’s prompt.
- What it can do with that access: Policies constrain permitted behavior, such as requiring permission to delete more than ten emails or prohibiting messages outside a particular domain.
An email agent may legitimately need email access, so access control alone cannot settle every action.
The distinction is reach versus behavior within that reach. A read-only permission removes the ability to send; a deletion policy can govern an agent that does have deletion access. Natural language supplies the policy definition in Vaidya’s description, but the talk does not explain how those definitions become enforced decisions. Its architectural requirement is clear: the tool path must enforce the rule even when the agent forgets it.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Reversibility: move review ahead of effects that cannot be undone
When code breaks, history provides a path back. git revert can reverse a recorded change, while git bisect helps locate the commit that introduced a failure. A production failure is still bad, but the ability to restore the code changes how much independent work a team can tolerate.
Many business actions offer no comparable reversal. Vaidya’s examples include a sent email, a completed wire, and a permanently deleted record. For those effects, checking after execution is too late. The hiring example makes the timing tangible: reviewing the outgoing text after candidates receive it cannot turn it back into an unsent draft.
Reversibility therefore needs an action-by-action decision. Adding a label has a straightforward inverse: remove the label. An irreversible hard delete needs a different route: simulate it with mocked tools, review the proposed result, and only then execute it in production. This prevents a reviewed mistake from happening; it does not make the eventual real-world action reversible.
Where should review sit for the proposed deletion of 200 emails? The comparison below contrasts the incident as recounted with the proposed sandbox path. In the first, the real inbox changes before the user can stop the run. In the second, the simulated deletion makes the proposed effect inspectable while the real inbox remains unchanged. Approval comes before the irreversible step.
Vaidya concedes that this is the hardest primitive to reproduce and that the work is unfinished. Composio is learning which actions can be walked back and preparing sandbox behavior for those that cannot. In his proposed sandbox path, a notification would tell the user that 1,200 emails are about to be deleted and ask whether to proceed; the earlier incident involved a reported 200 deletions. The useful capability is a preview of the consequence, not a universal undo button.
The email agent acts on the real inbox.
The proposed sandbox changes the timing of human review. It leaves the real inbox unchanged until the user approves execution.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
The remaining bottleneck is the work around the model
The ending returns to the opening question. Vaidya’s thesis is that improving models has made the surrounding infrastructure the limiting factor for knowledge-work agents. A model that can write code may also be useful in hiring or sales, but it needs information, history, organizational context, checks, permissions, and a plan for irreversible effects before it can act with comparable confidence.
Vaidya reports that Composio has powered more than a billion tool calls in total and is handling 300 million tool calls per month. Those are tool-execution volumes, rather than counts of successfully completed jobs. They give context to the company’s effort to learn from action patterns and distinguish reversible operations from irreversible ones.
The closing invitation is both practical and unfinished: connect an agent to Composio, or help build the infrastructure—the company is hiring, and there is still substantial work to do. Better models will continue to arrive. For an agent about to send an email or delete a record, the immediate engineering question is whether the systems around it can make the proposed effect visible and control when it becomes real.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
Further reading
A longer, sponsored conversation with Karan Vaidya about Composio’s tool discovery, authentication, execution sandboxes, and learning from agent trajectories. Useful for exploring the implementation ideas behind the talk’s infrastructure layers.
Related talks
- Don't Build Agents, Build Skills Instead
Develops the reusable procedural-knowledge layer that this talk proposes distilling from recorded work.
- One Login to Rule Them All: Cross-App Access for MCP
A companion topic for the centralization problem: giving agents access across separately authenticated apps.
- Architecting and Testing Controllable Agents
Continues the questions of controlling agent behavior and testing actions before consequential execution.
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.