500 Skills, Zero Fine-Tuning: LinkedIn's Playbook for AI Agents — Ajay Prakash, LinkedIn
Read the talk
500 Skills, Zero Fine-Tuning: LinkedIn's Playbook for AI Agents
Ajay Prakash explains how LinkedIn gives coding agents internal knowledge through searchable tools and reusable playbooks, loads instructions only when needed, and turns discoveries from individual sessions into reviewed improvements.
From a talk by Ajay Prakash
At a glance
Ideas worth remembering
Internal tools supplied access and examples; playbooks supplied the procedures needed to complete jobs across those tools.
Keep playbooks specific, and split large procedures into reusable referenced pieces so instructions enter context only when needed.
Agent discoveries became shared procedural improvements through playbook PRs that required approval.
Search, Get Schema, and Execute let agents discover a large capability catalog without carrying every capability's details from the start.
Correctness, code quality, and reliability shaped the infrastructure from the beginning; enterprise knowledge had to accompany the coding agents.
From an error alert to mitigation and a repair PR
An error spike arrives while an engineer is on call. The engineer gives the alert link to Claude Code or GitHub Copilot, and the agent starts investigating in the background. Ajay Prakash, a software engineer at LinkedIn, opens with this workflow to explain what his team's Contextual Agent Playbooks and Tools system makes possible: an agent can follow the company's debugging procedures rather than ask the engineer to reconstruct them in a prompt.
The investigation narrows in stages. Company-level instructions help identify the affected service. Service-specific instructions then tell the agent how to investigate that service, including fetching logs and metrics. Those observations support a diagnosis and a proposed mitigation. The alert has become something the engineer can act on: a summary of the error, its cause, and the steps needed to reduce its immediate impact.
Human confirmation separates the proposed mitigation from execution. Once the engineer confirms, the agent takes the mitigation actions, updates the incident management system with details, metrics, and dashboards, and checks out the code to create a PR addressing the underlying cause. Mitigation handles the immediate incident; the repair PR handles the defect that produced it. Prakash describes teams using this workflow in a few minutes instead of the hours manual work could take, an operational account rather than a measured speedup across incidents.
Where does the agent acquire enough knowledge to move from an alert to a useful proposal? The flow below makes the narrowing visible: general procedures lead to service procedures, which lead to observations and a diagnosis. Confirmation comes before mitigation, while incident documentation and a repair PR extend the work beyond the immediate response.
The engineer supplies the error-spike alert.
The agent gathers increasingly specific context before proposing action; the engineer confirms mitigation before execution.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Public coding knowledge did not explain LinkedIn's stack
The early rollout of coding agents produced a less encouraging result. Agents lacked context about LinkedIn's mature codebases, internal frameworks, and internal systems. They hallucinated, stalled, or invented incorrect details. Engineers then had to prompt them toward the right implementation, sometimes spending longer on corrections than manual coding would have taken. Some returned to writing the code themselves.
The missing context was substantial. LinkedIn had over a thousand repositories supporting thousands of microservices and apps, built on internal frameworks and libraries. Its custom infrastructure included databases, experimentation and tracking, and configuration management. New engineers spent a week-long boot camp becoming familiar with these systems. General coding ability offered no reason to expect an agent to know those local practices.
The target became specific: make coding agents understand the internal system well enough to ship code engineers could trust. Trust meant both correctness and code quality comparable to an engineer's work. That requirement shaped the infrastructure that followed; generating code quickly would be of little use if people still had to repair its assumptions.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Code search supplied real internal examples
The first internal MCP tool exposed LinkedIn's existing code search to agents. Engineers could already search across thousands of repositories with keywords, custom filters, and regular expressions. Connecting that capability through MCP let an agent investigate how LinkedIn actually implemented something before answering a setup question or writing an implementation.
This changed where implementation guidance came from. A request to set up a particular component could trigger a search for internal examples, and the agent could use those findings in its answer and code. The engineer no longer had to locate every useful example and paste it into the conversation.
More connections followed: documents, Jira, Slack, data platforms, and feature flags. Their value compounded because a task could draw on several kinds of context at once. Product requirements and design documents explained the intended change, Jira supplied task context, and internal code supplied implementation examples.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Access to information still left three workflow problems
Tools helped agents answer basic questions and find examples, but slightly more complex jobs still failed to finish reliably. Knowing where information could be found did not supply the procedure for using it. Debugging a particular error, for example, required practical knowledge scattered across documents, wikis, and old conversations.
- Scattered and stale procedures: Duplicate or outdated documents made it difficult to choose the right instructions, even when the agent could reach every source.
- Context overload: Each tool output consumed context space. As the session grew, compaction could lose information the agent needed, forcing it to repeat earlier investigation.
- Repeated discovery: A successful session had no way to retain its procedural findings for the next request. Another engineer asking for the same task could send the agent back to the beginning.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Playbooks returned instructions through the tool interface
Playbooks made instructions available through MCP alongside operational tools. A playbook had a name and description, and the agent could select and invoke it like another tool. Its output was the instructions and context for performing a task. This reused the agent's tool-selection mechanism to fetch procedural knowledge.
Consider the request to set up an Airflow DAG at LinkedIn. The agent first selected the playbook for that task and fetched its instructions. It then followed those instructions and called the relevant tools. Internal setup knowledge entered the session before the agent attempted the work, instead of being rediscovered across unrelated sources. Anyone at LinkedIn could author a playbook, check it into a repository, and make it available to others.
Two authoring rules kept that growing library usable:
- Give each playbook one specific task. An Airflow DAG setup playbook should contain the instructions for that task. A narrow purpose makes it easier for the agent to match a request to the right procedure.
- Split large procedures into referenced pieces. A larger playbook can refer to smaller, self-contained playbooks. Those pieces can be reused by several procedures, and the agent can read them only when needed.
The second rule directly addressed context overload. A reference preserved access to a procedure without immediately loading all of its contents. The agent could progressively discover context as the task developed. Prakash connects this to Skills: both approaches make task expertise available on demand. LinkedIn's implementation served that expertise through its internal MCP system.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
A session's discoveries became proposed playbook edits
A repository of instructions could become as stale as the wikis it replaced. The maintenance loop therefore used the agents doing the work. At the end of a session, agents were encouraged to identify outdated information, discrepancies, or missing steps in the playbooks they had used.
The agent could check out the playbook repository, propose an improvement, and open a PR. Approval then updated the shared playbook. The learning persisted in an editable procedure that future sessions could retrieve. This is the concrete mechanism behind the self-improving loop: experience produces a proposed text change, and review determines whether that change becomes shared guidance.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
One local server combined central and repository-specific knowledge
The system ran through a local MCP server preinstalled on LinkedIn laptops. Updates to the server, tools, and playbooks arrived automatically every hour. That distribution mechanism made the shared infrastructure available without requiring each engineer to assemble a separate setup.
- Central playbooks: Cross-cutting procedures applied to multiple repositories and lived in the shared collection.
- Local playbooks: Repository-specific procedures were checked in with their code. They were automatically picked up only when the coding agent worked in that repository, allowing teams to maintain local knowledge without changing the central repository.
One MCP server served both the tools and playbooks. This provided a common place to handle authentication and collect telemetry that could inform improvements to the ecosystem. The knowledge could be authored locally while access and observation used shared infrastructure.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Search, Get Schema, and Execute kept the visible interface small
A growing library created another scaling problem: exposing every tool and playbook directly to the agent. Prakash reports degradation beyond roughly 30 or 40 tools in the team's experience; that is an observation about agent context and performance, not a hard limit imposed by MCP. LinkedIn replaced the directly exposed catalog with three meta tools.
- Search: Find relevant tools and playbooks using keywords and tags.
- Get Schema: Retrieve the details of a selected tool or playbook after discovery.
- Execute: Invoke the selected capability once its details are available.
How can thousands of capabilities remain accessible through three tools? The diagram shows the two outcomes of execution. An operational tool performs work; a playbook returns instructions that guide subsequent tool calls. Discovery and detailed loading happen before either outcome, so the agent does not need the complete catalog in context at the start. Preconfigured system instructions teach each coding agent how to use this search sequence efficiently.
This extended progressive discovery to the catalog itself. Small referenced playbooks controlled how much procedural text entered context; the meta tools controlled which capability details entered it. At the time of the talk, Prakash reported over 1,300 tools, over 600 playbooks, and over 8,000 daily users. Use extended beyond engineers to product managers, designers, and TPMs bringing playbooks for their own workflows.
Find relevant capabilities by keywords and tags.
The same discovery sequence reaches operational tools and instruction-returning playbooks. Playbook instructions then guide further tool use.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Quality and reliability set the direction from day one
The closing lesson returns to the original definition of trust. Quality and reliability were design goals before the MCP server existed. The system needed to remain useful as the team moved quickly and added capabilities. Productivity depended on agents producing work engineers could rely on, rather than shifting the effort into correction.
Giving an enterprise the latest tools and models did not by itself give agents a way to operate inside it. LinkedIn's response was to build that environment: access to internal examples and systems, retrievable task procedures, selective loading, automatic distribution, and reviewed improvements. The on-call workflow at the beginning depended on this accumulated infrastructure. Its useful unit of knowledge was a procedure another session could find and follow.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
Related talks
- Don't Build Agents, Build Skills Instead
Develops the complementary idea of reusable procedural expertise and progressive disclosure, which Prakash explicitly connects to playbooks.
- Combine Skills and MCP to Close the Context Gap
A related discussion of pairing tool connectivity with task-specific instructions.
- The 100-Tool Agent Is a Trap: Scaling with Semantic Routers and JIT Context
Continues the question of how to expose many capabilities while controlling the context loaded for a task.
Read the complete timestamped transcript
- 0:01
[music]
- 0:12
Hey everyone, good morning. Uh
- 0:16
thanks for being here. Uh I see people
- 0:18
are still coming. Uh but yeah, my name
- 0:22
is uh AJ and uh I am a software engineer
- 0:25
at uh LinkedIn.
- 0:28
Today I'm going to be talking about how
- 0:31
we are doing context engineering to
- 0:32
improve the performance of coding agents
- 0:35
at LinkedIn.
- 0:40
Okay. Uh imagine you are a software
- 0:42
engineer in a big tech company and your
- 0:46
products are being used by millions of
- 0:48
users on a daily basis
- 0:51
and you are happen to be on a team which
- 0:54
owns set of very critical services and
- 0:57
you are on call right and you get an
- 1:01
alert saying that there is an error
- 1:03
spike in one of your services
- 1:06
and uh by the time you're trying to
- 1:08
figure out how to deal with this issue,
- 1:12
you take the link to the alert, give it
- 1:14
to a coding agent like Cloud Code or
- 1:17
GitHub Copilot.
- 1:20
While you're trying to figure out um how
- 1:22
to deal with the issue, uh the coding
- 1:24
agent is working in the background, it
- 1:27
will fetch the instructions on how to
- 1:29
debug such issues in your company and
- 1:32
identifies that based on that
- 1:33
instruction, it identifies that this
- 1:36
alert is happening in uh specific
- 1:38
service. Then it fetches instruction and
- 1:40
context on how to debug that particular
- 1:43
service and it will fetch the based on
- 1:46
those instructions it will take actions
- 1:48
like fetching logs metrics and then it
- 1:52
uses those logs to identify the root
- 1:54
cause of the issue right so it
- 1:56
identifies based on the error logs where
- 1:59
the issue is happening and it doesn't
- 2:02
just find the root cause it also figures
- 2:05
out the steps to mitigate the issue and
- 2:07
once it finds all the det details. It
- 2:09
summarizes and give it to you saying
- 2:11
this is this is the error and this is
- 2:13
the issue and this is the actions that
- 2:15
you need to take to mitigate. And once
- 2:17
you confirm, it also goes ahead and
- 2:20
takes those actions on your behalf to
- 2:22
mitigate the issue.
- 2:25
And it doesn't just stop there. Uh it
- 2:28
updates your incident management system
- 2:30
with all the details, error metrics and
- 2:32
dashboards etc. and also it checks out
- 2:35
the code and creates a PR for you uh to
- 2:38
fix the root cause of the issue. All of
- 2:40
this happens in matter of few minutes
- 2:43
which would have easily taken few hours
- 2:45
if you were to do it manually.
- 2:48
This is not fiction. So this is how
- 2:50
teams at LinkedIn are using coding
- 2:52
agents as effective co-workers with deep
- 2:56
understanding of LinkedIn's internal
- 2:58
systems and code to help the teams be
- 3:01
really productive.
- 3:05
And this is possible because of a system
- 3:07
that we built called as contextual agent
- 3:10
playbooks and tools at LinkedIn. And
- 3:14
today I'm going to talk about why we
- 3:15
built the system, how we built it and
- 3:18
what are our learnings from the success.
- 3:23
To understand why we built the this
- 3:26
system, we have to go back to the early
- 3:29
days of coding agents, right? So just
- 3:31
like any other company even at LinkedIn
- 3:34
we wanted to use the coding agents to be
- 3:37
for our engineers and everyone to be
- 3:39
really productive with the AI.
- 3:42
So we started using started giving this
- 3:44
coding agents to all of the engineers
- 3:47
and the problem was the coding agents
- 3:51
doesn't really or the w coding doesn't
- 3:53
really work in a large enterprise at
- 3:55
link um like LinkedIn.
- 3:59
So the biggest problem is the coding
- 4:01
agent or the LLMs are trained on
- 4:04
open-source repos right. So they don't
- 4:07
have the context of how we our uh mature
- 4:11
code bases at LinkedIn or our internal
- 4:14
frameworks or internal systems.
- 4:18
So what used to happen was the engineers
- 4:20
used to do wipe code or try the agentic
- 4:23
coding but because it the agents lacked
- 4:27
context they used to hallucinate and
- 4:29
like get stuck in between or uh even
- 4:33
more dangerous they used to make up
- 4:35
things which is not correct. So the
- 4:39
engineers had to prompt these agents
- 4:42
manually um to do the right thing which
- 4:45
used to take more time than the manual
- 4:47
coding itself. So a lot of people a lot
- 4:50
of engineers went back to manual coding.
- 4:52
So coding agents was not effective
- 4:56
to understand the problem uh to get more
- 4:59
perspective. So if you look at the
- 5:02
LinkedIn stack, we have over thousand
- 5:05
repos which make up thousands of uh
- 5:07
microservices and apps
- 5:10
and we have a lot of all of these apps
- 5:13
and services are built on lot of
- 5:15
internal frameworks and libraries
- 5:18
and we also have a lot of custombuilt
- 5:21
infra. For example, we have our own
- 5:23
databases. We have our own
- 5:25
experimentation and tracking platform.
- 5:27
We have our own configuration management
- 5:29
system which is purely internal to
- 5:32
LinkedIn and coding agents doesn't have
- 5:34
any idea about them
- 5:37
and engineers go through a week-long
- 5:40
boot camp whenever a new engineer joins.
- 5:43
So uh just to get familiar with these
- 5:45
systems.
- 5:49
So
- 5:51
we looked at this problem and we asked
- 5:54
ourselves the question how can we make
- 5:57
any coding agent like cursor or cloud
- 6:00
code or uh GitHub copilot understand our
- 6:05
LinkedIn's internal system so well that
- 6:08
they can ship the code that our
- 6:10
engineers can trust.
- 6:12
By trust I mean the code should be
- 6:14
correct and also the quality of the code
- 6:17
should be as good as uh it is written by
- 6:20
an actual engineer. So that is the bar
- 6:23
we set out and wanted to figure out how
- 6:26
do we get there.
- 6:30
So in early 2025 uh last year so uh
- 6:34
Anthropic released MCB and it it quickly
- 6:37
became the standard for industry
- 6:40
standard for building tools to the
- 6:42
agents. We leveraged that and pretty
- 6:46
early on we built our own internal MCP
- 6:50
and the first tool that we built was uh
- 6:52
code search.
- 6:55
So we have a pretty sophisticated code
- 6:57
search system at LinkedIn where you um
- 7:00
engineers can go and search for code. It
- 7:02
will ingest all of uh search for any
- 7:04
code across thousands of repos using
- 7:07
keywords and custom filters and rejects
- 7:10
etc. So we made that available to the
- 7:13
coding agents via MCP. This was a really
- 7:16
powerful unlock because now you don't
- 7:19
have to manually figure out how to do
- 7:21
better search the agent. You ask a
- 7:23
question. Hey, how do I set up a
- 7:26
particular thing? And the agent can use
- 7:29
the code search tools to figure out the
- 7:31
right examples of how we do things at
- 7:34
LinkedIn and use that to give you answer
- 7:37
and also uh implement it based on the
- 7:40
its findings. This was really powerful.
- 7:44
So we added more tools. We added docs,
- 7:48
uh, Jiraa, Slack, um, even connected to
- 7:52
all of our data platforms and even
- 7:55
feature flags. So every core tool that
- 7:58
we added to our internal MCP it created
- 8:01
more value by comp it it's almost like a
- 8:04
compounding effect because now a
- 8:07
engineer can bring in the PRDS product
- 8:11
requirement documents and design docs
- 8:13
and also their Jira tasks which has mult
- 8:16
uh different context and use all this to
- 8:19
give to the coding agent to automate
- 8:21
their um or help with their coding.
- 8:27
But there was a problem. So you connect
- 8:30
all these tools but it's not enough
- 8:33
right? So even with a slightly complex
- 8:36
workflow the agents used to not do
- 8:40
really well. The problem for example if
- 8:44
you give a context it is uh with the
- 8:47
tools the agent was able to answer
- 8:49
questions answer basic questions and
- 8:51
find code examples but it cannot do a
- 8:55
like a complete job reliably end to end.
- 8:58
The main problem was to do a specific
- 9:02
job end to end it needs to have a lot of
- 9:06
tribal knowledge right. So all of for
- 9:08
example how to fix a particular error or
- 9:11
how to uh configure how do you debug a
- 9:14
particular um error log right so all of
- 9:17
this knowledge even though you have
- 9:20
access to the tools it is scattered
- 9:22
across lot of different surfaces for
- 9:24
example docs wikis and slack
- 9:27
conversations
- 9:29
um etc and most of the times you may
- 9:32
have experienced the docs and wikis
- 9:34
might be outdated written and there
- 9:36
might be like duplicate get docs, right?
- 9:39
So, the problem is the agents even
- 9:41
though they have access to the tools,
- 9:42
they used to get lost.
- 9:45
The second problem was context overload.
- 9:49
As agents use more and more tools,
- 9:53
their context gets overloaded which
- 9:55
means every tool uh tool output it takes
- 9:58
up space in the context which will
- 10:00
eventually cause the agent to compact
- 10:03
its um while it is working compacts it
- 10:07
its context which causes it to lose some
- 10:10
of the information. Then it has to do
- 10:11
all over again.
- 10:14
And the third problem was even though
- 10:18
even if the agent was able to figure out
- 10:20
all these uh details it can it doesn't
- 10:24
have a way to retain this information it
- 10:26
doesn't have a a durable memory. So
- 10:29
every time a engineer asks the uh agent
- 10:32
to do a certain task they have to start
- 10:34
from scratch.
- 10:38
So how do we solve this problem? So we
- 10:40
give this instructions right away right?
- 10:43
So we built a system, we invented a
- 10:45
system in early 2025 called as uh
- 10:48
playbooks where we not only provide the
- 10:51
tools to the agents via MCP, we also
- 10:55
allow the agents to access these
- 10:58
instructions and prompts via MCP. We
- 11:01
call it playbooks. And playbook
- 11:05
it just appears just like any other
- 11:08
regular tool.
- 11:10
uh and they have uh names and
- 11:12
description on what it does and the
- 11:14
agent can decide to invoke that playbook
- 11:17
just like any other regular tool and
- 11:20
when the uh playbook is invoked the
- 11:24
instructions and the context within that
- 11:26
playbook are returned as the tool output
- 11:29
to the coding agent.
- 11:31
So that way the agents have both tools
- 11:33
as well as instructions on how to use
- 11:36
tools to set up a or uh uh perform a
- 11:40
task. Right? For example, uh if the uh
- 11:44
engineer goes and ask like how do I set
- 11:45
up a airflow DAG uh at LinkedIn? The
- 11:49
agent will first decide okay so I have a
- 11:51
playbook for creating um that specific
- 11:55
task and it will use that first fet uh
- 11:59
uses that playbook to get the
- 12:00
information and then it calls the
- 12:03
necessary uh follows that instructions
- 12:05
and calls the relevant tools to get the
- 12:08
job done. This was really powerful
- 12:13
um mainly because now anyone at LinkedIn
- 12:16
can go ahead and create a set up a
- 12:19
playbook and check it into a repository
- 12:21
and make it available for everyone else
- 12:23
at LinkedIn.
- 12:27
So as people started creating more
- 12:30
playbooks so we wanted so this is um one
- 12:35
of two foundational principles we want
- 12:38
everyone to follow when creating a
- 12:40
playbook. The first one is a playbook
- 12:43
should be self-contained which means it
- 12:46
should do a very specific task only um
- 12:49
for example um if it is for setting up a
- 12:52
airflow DAG it should be about the
- 12:55
instruction and the construct should be
- 12:57
about uh one specific task. This helps
- 13:00
the agents pick the right playbook for
- 13:02
the right task. And the second uh most
- 13:06
important one is to break a big playbook
- 13:09
into multiple smaller playbooks.
- 13:12
So this has um and reference those
- 13:15
smaller playbooks from a bigger
- 13:16
playbook. This is a really powerful
- 13:20
um principle because just like um so it
- 13:24
has two main advantages, right? So the
- 13:26
first one is uh reusability. So if you
- 13:29
have a small self-contained playbooks,
- 13:31
it can be used from multiple uh
- 13:33
reference from multiple playbooks and if
- 13:36
you um the another big advantage is
- 13:39
progressive discovery of um context
- 13:42
which means the agent only when it needs
- 13:44
to read a smaller playbook instead of
- 13:47
reading the entire all of the playbooks
- 13:49
at once it can uh progressively go and
- 13:52
read the playbooks as it wants. So this
- 13:54
is the same concept as skills as well.
- 13:57
So playbooks are very similar to uh
- 13:59
skills but we developed this entire
- 14:01
system around playbooks even before
- 14:04
skills was a thing. And uh playbooks are
- 14:07
a little bit more nuanced because it
- 14:09
helps us um it helps us seamlessly
- 14:13
capture all of the organizational
- 14:15
context and service via MCP without much
- 14:19
of a setup.
- 14:23
And another cool thing about this
- 14:25
playbooks is this self-improving loop.
- 14:29
So u you have uh engineers creating
- 14:32
these playbooks and checking into the
- 14:34
repository. And one of the main problem
- 14:37
with any knowledge base is it gets
- 14:40
outdated. How do you uh the biggest
- 14:42
problem is how do you keep the context
- 14:44
fresh right? So great thing about agents
- 14:47
is they can improvise.
- 14:49
So we have we encourage the agents to
- 14:52
whenever they use a particular playbook
- 14:55
at the end of the session to identify
- 14:58
the learnings. So any outdated
- 15:01
information or any discrepancy or any
- 15:04
missing information and we also
- 15:06
encourage the agents to figure out how
- 15:08
to improve the playbook and use that
- 15:11
context to check it uh to update the
- 15:15
playbooks check out the uh repository
- 15:18
and update the playbooks and create a PR
- 15:21
and that once it gets upload it gets uh
- 15:24
the playbooks gets updated right this
- 15:26
creates a really seamless flywheel of a
- 15:29
self-arning loop.
- 15:34
So what does the architecture of a MCP
- 15:37
server looks like?
- 15:39
So this particular system we have one
- 15:42
local MCP server and it is automatically
- 15:46
installed on all of the LinkedIn laptops
- 15:48
by default. So if you join LinkedIn and
- 15:50
you get a laptop, it is pre-installed
- 15:53
and any updates to the uh MCP server or
- 15:57
the playbooks or the tools, it
- 15:58
automatically gets updated every 1 hour
- 16:01
on all the laptops.
- 16:04
And we have a concept of two local
- 16:07
playbooks and central playbooks which
- 16:09
means so central playbooks are the
- 16:11
playbooks which are crosscutting um in
- 16:15
nature, right? So you have um these
- 16:18
playbooks apply for multiple uh
- 16:20
repositories not just one uh code
- 16:22
repository and then you have local
- 16:24
playbooks where it these are the
- 16:27
playbooks which are very specific to
- 16:29
your code repository and you can just
- 16:31
have them checked in with your repo um
- 16:35
uh with your repo and when only when the
- 16:38
coding agents are working in your repo
- 16:41
those playbooks will be automatically
- 16:42
picked up. So this helps us scale the
- 16:45
local playbooks which are very specific
- 16:47
to repo without having to worry about um
- 16:51
uh changing the uh central repository
- 16:55
and also this is one MCP server which is
- 16:57
serving all of the uh playbooks and
- 17:00
tools. So this man helps us do a lot of
- 17:04
uh central things like seamless
- 17:06
authentication, telemetry and u that we
- 17:10
can use for learning to make the whole
- 17:13
uh ecosystem better.
- 17:16
You may be wondering like how many tools
- 17:18
and playbooks it can support, right? Uh
- 17:20
so this is a common problem with MCP. we
- 17:23
cannot scale it beyond 30 or 40 tools
- 17:27
without degrading the uh context or
- 17:31
degrading the performance of the system.
- 17:34
So what we do is instead of uh surfacing
- 17:38
all of these playbooks and tools through
- 17:40
MCP we replace them with three meta
- 17:43
tools. So the first one is search. The
- 17:47
agent first uses this tool to search for
- 17:50
the relevant tools and playbooks using
- 17:53
keywords and tags. U so we also control
- 17:56
the system instructions. Um so every
- 17:59
coding agent is preconfigured with
- 18:01
system instruction on how to use these
- 18:03
tools and how to use the search really
- 18:05
efficiently. And once it finds the uh
- 18:09
right set of tool or playbook, it can
- 18:11
then get the more details about that
- 18:14
particular tool using get schema and
- 18:16
then execute that tool or uh playbook.
- 18:19
So this has allowed us to scale uh to
- 18:22
thousands of tools in playbook.
- 18:27
Um so this is u the growth chart. So now
- 18:30
we have over 8,000 users daily um using
- 18:35
the system daily. using uh tools and
- 18:38
playbooks. So we have over,300
- 18:41
uh tools and over 600 uh playbooks
- 18:46
and it's not not just engineering right.
- 18:48
So it is uh not just engineers but also
- 18:51
product managers, designers, uh TPMS. So
- 18:54
across different functions they are
- 18:56
using the tools and bringing their
- 18:58
playbooks uh to automate their uh
- 19:01
workflows.
- 19:05
uh so I'll leave you with this takeaway
- 19:07
uh key takeaways that can based on our
- 19:10
learning the first one is the system was
- 19:13
successful because we thought about
- 19:15
quality and reliability uh from day one
- 19:18
right so even uh before creating a MCP
- 19:21
server uh we thought okay the our
- 19:23
fundamental principle should be how do
- 19:26
we ensure not just productivity but how
- 19:28
do we ensure the quality and also
- 19:31
reliability of the system so that it
- 19:33
doesn't degrade um as we move fast.
- 19:37
Uh and the second one was u the build
- 19:40
the right infrastructure for agents. Uh
- 19:42
in a large enterprise like LinkedIn,
- 19:44
it's not enough just enough to give all
- 19:47
of the engineers the all the latest and
- 19:50
greatest tools and models. Uh these are
- 19:52
they are not very effective if you don't
- 19:55
build the right infrastructure for the
- 19:56
agents to operate within your
- 19:58
enterprise.
- 20:01
Um yeah that's my time. Thank you for
- 20:04
attending and feel free to connect with
- 20:06
me on [applause] LinkedIn.