[
  {
    "startMs": 1309,
    "text": "[music]"
  },
  {
    "startMs": 12400,
    "text": "Hey everyone, good morning. Uh"
  },
  {
    "startMs": 16080,
    "text": "thanks for being here. Uh I see people"
  },
  {
    "startMs": 18880,
    "text": "are still coming. Uh but yeah, my name"
  },
  {
    "startMs": 22240,
    "text": "is uh AJ and uh I am a software engineer"
  },
  {
    "startMs": 25439,
    "text": "at uh LinkedIn."
  },
  {
    "startMs": 28000,
    "text": "Today I'm going to be talking about how"
  },
  {
    "startMs": 31039,
    "text": "we are doing context engineering to"
  },
  {
    "startMs": 32800,
    "text": "improve the performance of coding agents"
  },
  {
    "startMs": 35520,
    "text": "at LinkedIn."
  },
  {
    "startMs": 40079,
    "text": "Okay. Uh imagine you are a software"
  },
  {
    "startMs": 42960,
    "text": "engineer in a big tech company and your"
  },
  {
    "startMs": 46239,
    "text": "products are being used by millions of"
  },
  {
    "startMs": 48320,
    "text": "users on a daily basis"
  },
  {
    "startMs": 51280,
    "text": "and you are happen to be on a team which"
  },
  {
    "startMs": 54399,
    "text": "owns set of very critical services and"
  },
  {
    "startMs": 57920,
    "text": "you are on call right and you get an"
  },
  {
    "startMs": 61039,
    "text": "alert saying that there is an error"
  },
  {
    "startMs": 63039,
    "text": "spike in one of your services"
  },
  {
    "startMs": 66000,
    "text": "and uh by the time you're trying to"
  },
  {
    "startMs": 68880,
    "text": "figure out how to deal with this issue,"
  },
  {
    "startMs": 72560,
    "text": "you take the link to the alert, give it"
  },
  {
    "startMs": 74799,
    "text": "to a coding agent like Cloud Code or"
  },
  {
    "startMs": 77520,
    "text": "GitHub Copilot."
  },
  {
    "startMs": 80640,
    "text": "While you're trying to figure out um how"
  },
  {
    "startMs": 82799,
    "text": "to deal with the issue, uh the coding"
  },
  {
    "startMs": 84720,
    "text": "agent is working in the background, it"
  },
  {
    "startMs": 87200,
    "text": "will fetch the instructions on how to"
  },
  {
    "startMs": 89040,
    "text": "debug such issues in your company and"
  },
  {
    "startMs": 92560,
    "text": "identifies that based on that"
  },
  {
    "startMs": 93920,
    "text": "instruction, it identifies that this"
  },
  {
    "startMs": 96159,
    "text": "alert is happening in uh specific"
  },
  {
    "startMs": 98320,
    "text": "service. Then it fetches instruction and"
  },
  {
    "startMs": 100880,
    "text": "context on how to debug that particular"
  },
  {
    "startMs": 103040,
    "text": "service and it will fetch the based on"
  },
  {
    "startMs": 106479,
    "text": "those instructions it will take actions"
  },
  {
    "startMs": 108479,
    "text": "like fetching logs metrics and then it"
  },
  {
    "startMs": 112240,
    "text": "uses those logs to identify the root"
  },
  {
    "startMs": 114479,
    "text": "cause of the issue right so it"
  },
  {
    "startMs": 116560,
    "text": "identifies based on the error logs where"
  },
  {
    "startMs": 119119,
    "text": "the issue is happening and it doesn't"
  },
  {
    "startMs": 122560,
    "text": "just find the root cause it also figures"
  },
  {
    "startMs": 125200,
    "text": "out the steps to mitigate the issue and"
  },
  {
    "startMs": 127439,
    "text": "once it finds all the det details. It"
  },
  {
    "startMs": 129360,
    "text": "summarizes and give it to you saying"
  },
  {
    "startMs": 131599,
    "text": "this is this is the error and this is"
  },
  {
    "startMs": 133680,
    "text": "the issue and this is the actions that"
  },
  {
    "startMs": 135840,
    "text": "you need to take to mitigate. And once"
  },
  {
    "startMs": 137680,
    "text": "you confirm, it also goes ahead and"
  },
  {
    "startMs": 140720,
    "text": "takes those actions on your behalf to"
  },
  {
    "startMs": 142640,
    "text": "mitigate the issue."
  },
  {
    "startMs": 145440,
    "text": "And it doesn't just stop there. Uh it"
  },
  {
    "startMs": 148239,
    "text": "updates your incident management system"
  },
  {
    "startMs": 150000,
    "text": "with all the details, error metrics and"
  },
  {
    "startMs": 152160,
    "text": "dashboards etc. and also it checks out"
  },
  {
    "startMs": 155200,
    "text": "the code and creates a PR for you uh to"
  },
  {
    "startMs": 158239,
    "text": "fix the root cause of the issue. All of"
  },
  {
    "startMs": 160720,
    "text": "this happens in matter of few minutes"
  },
  {
    "startMs": 163120,
    "text": "which would have easily taken few hours"
  },
  {
    "startMs": 165360,
    "text": "if you were to do it manually."
  },
  {
    "startMs": 168160,
    "text": "This is not fiction. So this is how"
  },
  {
    "startMs": 170319,
    "text": "teams at LinkedIn are using coding"
  },
  {
    "startMs": 172800,
    "text": "agents as effective co-workers with deep"
  },
  {
    "startMs": 176080,
    "text": "understanding of LinkedIn's internal"
  },
  {
    "startMs": 178239,
    "text": "systems and code to help the teams be"
  },
  {
    "startMs": 181440,
    "text": "really productive."
  },
  {
    "startMs": 185360,
    "text": "And this is possible because of a system"
  },
  {
    "startMs": 187920,
    "text": "that we built called as contextual agent"
  },
  {
    "startMs": 190879,
    "text": "playbooks and tools at LinkedIn. And"
  },
  {
    "startMs": 194000,
    "text": "today I'm going to talk about why we"
  },
  {
    "startMs": 195840,
    "text": "built the system, how we built it and"
  },
  {
    "startMs": 198560,
    "text": "what are our learnings from the success."
  },
  {
    "startMs": 203840,
    "text": "To understand why we built the this"
  },
  {
    "startMs": 206239,
    "text": "system, we have to go back to the early"
  },
  {
    "startMs": 209040,
    "text": "days of coding agents, right? So just"
  },
  {
    "startMs": 211680,
    "text": "like any other company even at LinkedIn"
  },
  {
    "startMs": 214480,
    "text": "we wanted to use the coding agents to be"
  },
  {
    "startMs": 217440,
    "text": "for our engineers and everyone to be"
  },
  {
    "startMs": 219360,
    "text": "really productive with the AI."
  },
  {
    "startMs": 222720,
    "text": "So we started using started giving this"
  },
  {
    "startMs": 224879,
    "text": "coding agents to all of the engineers"
  },
  {
    "startMs": 227440,
    "text": "and the problem was the coding agents"
  },
  {
    "startMs": 231120,
    "text": "doesn't really or the w coding doesn't"
  },
  {
    "startMs": 233280,
    "text": "really work in a large enterprise at"
  },
  {
    "startMs": 235920,
    "text": "link um like LinkedIn."
  },
  {
    "startMs": 239760,
    "text": "So the biggest problem is the coding"
  },
  {
    "startMs": 241840,
    "text": "agent or the LLMs are trained on"
  },
  {
    "startMs": 244400,
    "text": "open-source repos right. So they don't"
  },
  {
    "startMs": 247439,
    "text": "have the context of how we our uh mature"
  },
  {
    "startMs": 251760,
    "text": "code bases at LinkedIn or our internal"
  },
  {
    "startMs": 254480,
    "text": "frameworks or internal systems."
  },
  {
    "startMs": 258239,
    "text": "So what used to happen was the engineers"
  },
  {
    "startMs": 260560,
    "text": "used to do wipe code or try the agentic"
  },
  {
    "startMs": 263680,
    "text": "coding but because it the agents lacked"
  },
  {
    "startMs": 267040,
    "text": "context they used to hallucinate and"
  },
  {
    "startMs": 269759,
    "text": "like get stuck in between or uh even"
  },
  {
    "startMs": 273680,
    "text": "more dangerous they used to make up"
  },
  {
    "startMs": 275440,
    "text": "things which is not correct. So the"
  },
  {
    "startMs": 279120,
    "text": "engineers had to prompt these agents"
  },
  {
    "startMs": 282320,
    "text": "manually um to do the right thing which"
  },
  {
    "startMs": 285440,
    "text": "used to take more time than the manual"
  },
  {
    "startMs": 287280,
    "text": "coding itself. So a lot of people a lot"
  },
  {
    "startMs": 290000,
    "text": "of engineers went back to manual coding."
  },
  {
    "startMs": 292160,
    "text": "So coding agents was not effective"
  },
  {
    "startMs": 296479,
    "text": "to understand the problem uh to get more"
  },
  {
    "startMs": 299520,
    "text": "perspective. So if you look at the"
  },
  {
    "startMs": 302400,
    "text": "LinkedIn stack, we have over thousand"
  },
  {
    "startMs": 305040,
    "text": "repos which make up thousands of uh"
  },
  {
    "startMs": 307759,
    "text": "microservices and apps"
  },
  {
    "startMs": 310560,
    "text": "and we have a lot of all of these apps"
  },
  {
    "startMs": 313280,
    "text": "and services are built on lot of"
  },
  {
    "startMs": 315520,
    "text": "internal frameworks and libraries"
  },
  {
    "startMs": 318160,
    "text": "and we also have a lot of custombuilt"
  },
  {
    "startMs": 321039,
    "text": "infra. For example, we have our own"
  },
  {
    "startMs": 323360,
    "text": "databases. We have our own"
  },
  {
    "startMs": 325759,
    "text": "experimentation and tracking platform."
  },
  {
    "startMs": 327919,
    "text": "We have our own configuration management"
  },
  {
    "startMs": 329840,
    "text": "system which is purely internal to"
  },
  {
    "startMs": 332400,
    "text": "LinkedIn and coding agents doesn't have"
  },
  {
    "startMs": 334720,
    "text": "any idea about them"
  },
  {
    "startMs": 337680,
    "text": "and engineers go through a week-long"
  },
  {
    "startMs": 340160,
    "text": "boot camp whenever a new engineer joins."
  },
  {
    "startMs": 343120,
    "text": "So uh just to get familiar with these"
  },
  {
    "startMs": 345039,
    "text": "systems."
  },
  {
    "startMs": 349600,
    "text": "So"
  },
  {
    "startMs": 351680,
    "text": "we looked at this problem and we asked"
  },
  {
    "startMs": 354479,
    "text": "ourselves the question how can we make"
  },
  {
    "startMs": 357840,
    "text": "any coding agent like cursor or cloud"
  },
  {
    "startMs": 360639,
    "text": "code or uh GitHub copilot understand our"
  },
  {
    "startMs": 365039,
    "text": "LinkedIn's internal system so well that"
  },
  {
    "startMs": 368240,
    "text": "they can ship the code that our"
  },
  {
    "startMs": 370000,
    "text": "engineers can trust."
  },
  {
    "startMs": 372560,
    "text": "By trust I mean the code should be"
  },
  {
    "startMs": 374560,
    "text": "correct and also the quality of the code"
  },
  {
    "startMs": 377680,
    "text": "should be as good as uh it is written by"
  },
  {
    "startMs": 380639,
    "text": "an actual engineer. So that is the bar"
  },
  {
    "startMs": 383360,
    "text": "we set out and wanted to figure out how"
  },
  {
    "startMs": 386800,
    "text": "do we get there."
  },
  {
    "startMs": 390319,
    "text": "So in early 2025 uh last year so uh"
  },
  {
    "startMs": 394160,
    "text": "Anthropic released MCB and it it quickly"
  },
  {
    "startMs": 397520,
    "text": "became the standard for industry"
  },
  {
    "startMs": 400240,
    "text": "standard for building tools to the"
  },
  {
    "startMs": 402479,
    "text": "agents. We leveraged that and pretty"
  },
  {
    "startMs": 406000,
    "text": "early on we built our own internal MCP"
  },
  {
    "startMs": 410000,
    "text": "and the first tool that we built was uh"
  },
  {
    "startMs": 412560,
    "text": "code search."
  },
  {
    "startMs": 415120,
    "text": "So we have a pretty sophisticated code"
  },
  {
    "startMs": 417199,
    "text": "search system at LinkedIn where you um"
  },
  {
    "startMs": 420000,
    "text": "engineers can go and search for code. It"
  },
  {
    "startMs": 422639,
    "text": "will ingest all of uh search for any"
  },
  {
    "startMs": 424720,
    "text": "code across thousands of repos using"
  },
  {
    "startMs": 427120,
    "text": "keywords and custom filters and rejects"
  },
  {
    "startMs": 430160,
    "text": "etc. So we made that available to the"
  },
  {
    "startMs": 433120,
    "text": "coding agents via MCP. This was a really"
  },
  {
    "startMs": 436639,
    "text": "powerful unlock because now you don't"
  },
  {
    "startMs": 439280,
    "text": "have to manually figure out how to do"
  },
  {
    "startMs": 441360,
    "text": "better search the agent. You ask a"
  },
  {
    "startMs": 443759,
    "text": "question. Hey, how do I set up a"
  },
  {
    "startMs": 446880,
    "text": "particular thing? And the agent can use"
  },
  {
    "startMs": 449360,
    "text": "the code search tools to figure out the"
  },
  {
    "startMs": 451759,
    "text": "right examples of how we do things at"
  },
  {
    "startMs": 454160,
    "text": "LinkedIn and use that to give you answer"
  },
  {
    "startMs": 457199,
    "text": "and also uh implement it based on the"
  },
  {
    "startMs": 460160,
    "text": "its findings. This was really powerful."
  },
  {
    "startMs": 464000,
    "text": "So we added more tools. We added docs,"
  },
  {
    "startMs": 468479,
    "text": "uh, Jiraa, Slack, um, even connected to"
  },
  {
    "startMs": 472800,
    "text": "all of our data platforms and even"
  },
  {
    "startMs": 475919,
    "text": "feature flags. So every core tool that"
  },
  {
    "startMs": 478560,
    "text": "we added to our internal MCP it created"
  },
  {
    "startMs": 481840,
    "text": "more value by comp it it's almost like a"
  },
  {
    "startMs": 484879,
    "text": "compounding effect because now a"
  },
  {
    "startMs": 487440,
    "text": "engineer can bring in the PRDS product"
  },
  {
    "startMs": 491199,
    "text": "requirement documents and design docs"
  },
  {
    "startMs": 493680,
    "text": "and also their Jira tasks which has mult"
  },
  {
    "startMs": 496800,
    "text": "uh different context and use all this to"
  },
  {
    "startMs": 499520,
    "text": "give to the coding agent to automate"
  },
  {
    "startMs": 501919,
    "text": "their um or help with their coding."
  },
  {
    "startMs": 507360,
    "text": "But there was a problem. So you connect"
  },
  {
    "startMs": 510319,
    "text": "all these tools but it's not enough"
  },
  {
    "startMs": 513440,
    "text": "right? So even with a slightly complex"
  },
  {
    "startMs": 516959,
    "text": "workflow the agents used to not do"
  },
  {
    "startMs": 520959,
    "text": "really well. The problem for example if"
  },
  {
    "startMs": 524640,
    "text": "you give a context it is uh with the"
  },
  {
    "startMs": 527200,
    "text": "tools the agent was able to answer"
  },
  {
    "startMs": 529519,
    "text": "questions answer basic questions and"
  },
  {
    "startMs": 531680,
    "text": "find code examples but it cannot do a"
  },
  {
    "startMs": 535040,
    "text": "like a complete job reliably end to end."
  },
  {
    "startMs": 538640,
    "text": "The main problem was to do a specific"
  },
  {
    "startMs": 542000,
    "text": "job end to end it needs to have a lot of"
  },
  {
    "startMs": 546080,
    "text": "tribal knowledge right. So all of for"
  },
  {
    "startMs": 548640,
    "text": "example how to fix a particular error or"
  },
  {
    "startMs": 551760,
    "text": "how to uh configure how do you debug a"
  },
  {
    "startMs": 554800,
    "text": "particular um error log right so all of"
  },
  {
    "startMs": 557920,
    "text": "this knowledge even though you have"
  },
  {
    "startMs": 560080,
    "text": "access to the tools it is scattered"
  },
  {
    "startMs": 562160,
    "text": "across lot of different surfaces for"
  },
  {
    "startMs": 564560,
    "text": "example docs wikis and slack"
  },
  {
    "startMs": 567279,
    "text": "conversations"
  },
  {
    "startMs": 569440,
    "text": "um etc and most of the times you may"
  },
  {
    "startMs": 572399,
    "text": "have experienced the docs and wikis"
  },
  {
    "startMs": 574399,
    "text": "might be outdated written and there"
  },
  {
    "startMs": 576399,
    "text": "might be like duplicate get docs, right?"
  },
  {
    "startMs": 579279,
    "text": "So, the problem is the agents even"
  },
  {
    "startMs": 581440,
    "text": "though they have access to the tools,"
  },
  {
    "startMs": 582959,
    "text": "they used to get lost."
  },
  {
    "startMs": 585680,
    "text": "The second problem was context overload."
  },
  {
    "startMs": 589600,
    "text": "As agents use more and more tools,"
  },
  {
    "startMs": 593040,
    "text": "their context gets overloaded which"
  },
  {
    "startMs": 595760,
    "text": "means every tool uh tool output it takes"
  },
  {
    "startMs": 598880,
    "text": "up space in the context which will"
  },
  {
    "startMs": 600959,
    "text": "eventually cause the agent to compact"
  },
  {
    "startMs": 603519,
    "text": "its um while it is working compacts it"
  },
  {
    "startMs": 607040,
    "text": "its context which causes it to lose some"
  },
  {
    "startMs": 610000,
    "text": "of the information. Then it has to do"
  },
  {
    "startMs": 611920,
    "text": "all over again."
  },
  {
    "startMs": 614320,
    "text": "And the third problem was even though"
  },
  {
    "startMs": 618240,
    "text": "even if the agent was able to figure out"
  },
  {
    "startMs": 620240,
    "text": "all these uh details it can it doesn't"
  },
  {
    "startMs": 624160,
    "text": "have a way to retain this information it"
  },
  {
    "startMs": 626720,
    "text": "doesn't have a a durable memory. So"
  },
  {
    "startMs": 629120,
    "text": "every time a engineer asks the uh agent"
  },
  {
    "startMs": 632800,
    "text": "to do a certain task they have to start"
  },
  {
    "startMs": 634560,
    "text": "from scratch."
  },
  {
    "startMs": 638079,
    "text": "So how do we solve this problem? So we"
  },
  {
    "startMs": 640720,
    "text": "give this instructions right away right?"
  },
  {
    "startMs": 643120,
    "text": "So we built a system, we invented a"
  },
  {
    "startMs": 645519,
    "text": "system in early 2025 called as uh"
  },
  {
    "startMs": 648000,
    "text": "playbooks where we not only provide the"
  },
  {
    "startMs": 651920,
    "text": "tools to the agents via MCP, we also"
  },
  {
    "startMs": 655760,
    "text": "allow the agents to access these"
  },
  {
    "startMs": 658079,
    "text": "instructions and prompts via MCP. We"
  },
  {
    "startMs": 661519,
    "text": "call it playbooks. And playbook"
  },
  {
    "startMs": 665920,
    "text": "it just appears just like any other"
  },
  {
    "startMs": 668640,
    "text": "regular tool."
  },
  {
    "startMs": 670640,
    "text": "uh and they have uh names and"
  },
  {
    "startMs": 672320,
    "text": "description on what it does and the"
  },
  {
    "startMs": 674800,
    "text": "agent can decide to invoke that playbook"
  },
  {
    "startMs": 677600,
    "text": "just like any other regular tool and"
  },
  {
    "startMs": 680240,
    "text": "when the uh playbook is invoked the"
  },
  {
    "startMs": 684800,
    "text": "instructions and the context within that"
  },
  {
    "startMs": 686720,
    "text": "playbook are returned as the tool output"
  },
  {
    "startMs": 689040,
    "text": "to the coding agent."
  },
  {
    "startMs": 691200,
    "text": "So that way the agents have both tools"
  },
  {
    "startMs": 693839,
    "text": "as well as instructions on how to use"
  },
  {
    "startMs": 696079,
    "text": "tools to set up a or uh uh perform a"
  },
  {
    "startMs": 700320,
    "text": "task. Right? For example, uh if the uh"
  },
  {
    "startMs": 704079,
    "text": "engineer goes and ask like how do I set"
  },
  {
    "startMs": 705839,
    "text": "up a airflow DAG uh at LinkedIn? The"
  },
  {
    "startMs": 709120,
    "text": "agent will first decide okay so I have a"
  },
  {
    "startMs": 711519,
    "text": "playbook for creating um that specific"
  },
  {
    "startMs": 715200,
    "text": "task and it will use that first fet uh"
  },
  {
    "startMs": 719040,
    "text": "uses that playbook to get the"
  },
  {
    "startMs": 720480,
    "text": "information and then it calls the"
  },
  {
    "startMs": 723040,
    "text": "necessary uh follows that instructions"
  },
  {
    "startMs": 725040,
    "text": "and calls the relevant tools to get the"
  },
  {
    "startMs": 728560,
    "text": "job done. This was really powerful"
  },
  {
    "startMs": 733200,
    "text": "um mainly because now anyone at LinkedIn"
  },
  {
    "startMs": 736399,
    "text": "can go ahead and create a set up a"
  },
  {
    "startMs": 739200,
    "text": "playbook and check it into a repository"
  },
  {
    "startMs": 741760,
    "text": "and make it available for everyone else"
  },
  {
    "startMs": 743839,
    "text": "at LinkedIn."
  },
  {
    "startMs": 747440,
    "text": "So as people started creating more"
  },
  {
    "startMs": 750560,
    "text": "playbooks so we wanted so this is um one"
  },
  {
    "startMs": 755120,
    "text": "of two foundational principles we want"
  },
  {
    "startMs": 758160,
    "text": "everyone to follow when creating a"
  },
  {
    "startMs": 760399,
    "text": "playbook. The first one is a playbook"
  },
  {
    "startMs": 763600,
    "text": "should be self-contained which means it"
  },
  {
    "startMs": 766160,
    "text": "should do a very specific task only um"
  },
  {
    "startMs": 769440,
    "text": "for example um if it is for setting up a"
  },
  {
    "startMs": 772160,
    "text": "airflow DAG it should be about the"
  },
  {
    "startMs": 775600,
    "text": "instruction and the construct should be"
  },
  {
    "startMs": 777279,
    "text": "about uh one specific task. This helps"
  },
  {
    "startMs": 780240,
    "text": "the agents pick the right playbook for"
  },
  {
    "startMs": 782959,
    "text": "the right task. And the second uh most"
  },
  {
    "startMs": 786000,
    "text": "important one is to break a big playbook"
  },
  {
    "startMs": 789519,
    "text": "into multiple smaller playbooks."
  },
  {
    "startMs": 792720,
    "text": "So this has um and reference those"
  },
  {
    "startMs": 795200,
    "text": "smaller playbooks from a bigger"
  },
  {
    "startMs": 796560,
    "text": "playbook. This is a really powerful"
  },
  {
    "startMs": 800399,
    "text": "um principle because just like um so it"
  },
  {
    "startMs": 804079,
    "text": "has two main advantages, right? So the"
  },
  {
    "startMs": 806560,
    "text": "first one is uh reusability. So if you"
  },
  {
    "startMs": 809440,
    "text": "have a small self-contained playbooks,"
  },
  {
    "startMs": 811600,
    "text": "it can be used from multiple uh"
  },
  {
    "startMs": 813680,
    "text": "reference from multiple playbooks and if"
  },
  {
    "startMs": 816560,
    "text": "you um the another big advantage is"
  },
  {
    "startMs": 819200,
    "text": "progressive discovery of um context"
  },
  {
    "startMs": 822639,
    "text": "which means the agent only when it needs"
  },
  {
    "startMs": 824880,
    "text": "to read a smaller playbook instead of"
  },
  {
    "startMs": 827120,
    "text": "reading the entire all of the playbooks"
  },
  {
    "startMs": 829200,
    "text": "at once it can uh progressively go and"
  },
  {
    "startMs": 832240,
    "text": "read the playbooks as it wants. So this"
  },
  {
    "startMs": 834320,
    "text": "is the same concept as skills as well."
  },
  {
    "startMs": 837040,
    "text": "So playbooks are very similar to uh"
  },
  {
    "startMs": 839519,
    "text": "skills but we developed this entire"
  },
  {
    "startMs": 841920,
    "text": "system around playbooks even before"
  },
  {
    "startMs": 844320,
    "text": "skills was a thing. And uh playbooks are"
  },
  {
    "startMs": 847440,
    "text": "a little bit more nuanced because it"
  },
  {
    "startMs": 849920,
    "text": "helps us um it helps us seamlessly"
  },
  {
    "startMs": 853839,
    "text": "capture all of the organizational"
  },
  {
    "startMs": 855760,
    "text": "context and service via MCP without much"
  },
  {
    "startMs": 859360,
    "text": "of a setup."
  },
  {
    "startMs": 863199,
    "text": "And another cool thing about this"
  },
  {
    "startMs": 865440,
    "text": "playbooks is this self-improving loop."
  },
  {
    "startMs": 869440,
    "text": "So u you have uh engineers creating"
  },
  {
    "startMs": 872399,
    "text": "these playbooks and checking into the"
  },
  {
    "startMs": 874639,
    "text": "repository. And one of the main problem"
  },
  {
    "startMs": 877920,
    "text": "with any knowledge base is it gets"
  },
  {
    "startMs": 880000,
    "text": "outdated. How do you uh the biggest"
  },
  {
    "startMs": 882399,
    "text": "problem is how do you keep the context"
  },
  {
    "startMs": 884800,
    "text": "fresh right? So great thing about agents"
  },
  {
    "startMs": 887519,
    "text": "is they can improvise."
  },
  {
    "startMs": 889839,
    "text": "So we have we encourage the agents to"
  },
  {
    "startMs": 892880,
    "text": "whenever they use a particular playbook"
  },
  {
    "startMs": 895600,
    "text": "at the end of the session to identify"
  },
  {
    "startMs": 898079,
    "text": "the learnings. So any outdated"
  },
  {
    "startMs": 901519,
    "text": "information or any discrepancy or any"
  },
  {
    "startMs": 904160,
    "text": "missing information and we also"
  },
  {
    "startMs": 906560,
    "text": "encourage the agents to figure out how"
  },
  {
    "startMs": 908720,
    "text": "to improve the playbook and use that"
  },
  {
    "startMs": 911600,
    "text": "context to check it uh to update the"
  },
  {
    "startMs": 915519,
    "text": "playbooks check out the uh repository"
  },
  {
    "startMs": 918079,
    "text": "and update the playbooks and create a PR"
  },
  {
    "startMs": 921120,
    "text": "and that once it gets upload it gets uh"
  },
  {
    "startMs": 924079,
    "text": "the playbooks gets updated right this"
  },
  {
    "startMs": 926959,
    "text": "creates a really seamless flywheel of a"
  },
  {
    "startMs": 929839,
    "text": "self-arning loop."
  },
  {
    "startMs": 934000,
    "text": "So what does the architecture of a MCP"
  },
  {
    "startMs": 937120,
    "text": "server looks like?"
  },
  {
    "startMs": 939519,
    "text": "So this particular system we have one"
  },
  {
    "startMs": 942160,
    "text": "local MCP server and it is automatically"
  },
  {
    "startMs": 946240,
    "text": "installed on all of the LinkedIn laptops"
  },
  {
    "startMs": 948480,
    "text": "by default. So if you join LinkedIn and"
  },
  {
    "startMs": 950880,
    "text": "you get a laptop, it is pre-installed"
  },
  {
    "startMs": 953360,
    "text": "and any updates to the uh MCP server or"
  },
  {
    "startMs": 957360,
    "text": "the playbooks or the tools, it"
  },
  {
    "startMs": 958959,
    "text": "automatically gets updated every 1 hour"
  },
  {
    "startMs": 961360,
    "text": "on all the laptops."
  },
  {
    "startMs": 964240,
    "text": "And we have a concept of two local"
  },
  {
    "startMs": 967440,
    "text": "playbooks and central playbooks which"
  },
  {
    "startMs": 969360,
    "text": "means so central playbooks are the"
  },
  {
    "startMs": 971759,
    "text": "playbooks which are crosscutting um in"
  },
  {
    "startMs": 975120,
    "text": "nature, right? So you have um these"
  },
  {
    "startMs": 978160,
    "text": "playbooks apply for multiple uh"
  },
  {
    "startMs": 980160,
    "text": "repositories not just one uh code"
  },
  {
    "startMs": 982240,
    "text": "repository and then you have local"
  },
  {
    "startMs": 984399,
    "text": "playbooks where it these are the"
  },
  {
    "startMs": 987120,
    "text": "playbooks which are very specific to"
  },
  {
    "startMs": 989199,
    "text": "your code repository and you can just"
  },
  {
    "startMs": 991680,
    "text": "have them checked in with your repo um"
  },
  {
    "startMs": 995759,
    "text": "uh with your repo and when only when the"
  },
  {
    "startMs": 998560,
    "text": "coding agents are working in your repo"
  },
  {
    "startMs": 1001360,
    "text": "those playbooks will be automatically"
  },
  {
    "startMs": 1002959,
    "text": "picked up. So this helps us scale the"
  },
  {
    "startMs": 1005759,
    "text": "local playbooks which are very specific"
  },
  {
    "startMs": 1007839,
    "text": "to repo without having to worry about um"
  },
  {
    "startMs": 1011040,
    "text": "uh changing the uh central repository"
  },
  {
    "startMs": 1015040,
    "text": "and also this is one MCP server which is"
  },
  {
    "startMs": 1017920,
    "text": "serving all of the uh playbooks and"
  },
  {
    "startMs": 1020240,
    "text": "tools. So this man helps us do a lot of"
  },
  {
    "startMs": 1024000,
    "text": "uh central things like seamless"
  },
  {
    "startMs": 1026000,
    "text": "authentication, telemetry and u that we"
  },
  {
    "startMs": 1030079,
    "text": "can use for learning to make the whole"
  },
  {
    "startMs": 1033039,
    "text": "uh ecosystem better."
  },
  {
    "startMs": 1036400,
    "text": "You may be wondering like how many tools"
  },
  {
    "startMs": 1038640,
    "text": "and playbooks it can support, right? Uh"
  },
  {
    "startMs": 1040880,
    "text": "so this is a common problem with MCP. we"
  },
  {
    "startMs": 1043760,
    "text": "cannot scale it beyond 30 or 40 tools"
  },
  {
    "startMs": 1047760,
    "text": "without degrading the uh context or"
  },
  {
    "startMs": 1051520,
    "text": "degrading the performance of the system."
  },
  {
    "startMs": 1054720,
    "text": "So what we do is instead of uh surfacing"
  },
  {
    "startMs": 1058720,
    "text": "all of these playbooks and tools through"
  },
  {
    "startMs": 1060720,
    "text": "MCP we replace them with three meta"
  },
  {
    "startMs": 1063840,
    "text": "tools. So the first one is search. The"
  },
  {
    "startMs": 1067120,
    "text": "agent first uses this tool to search for"
  },
  {
    "startMs": 1070480,
    "text": "the relevant tools and playbooks using"
  },
  {
    "startMs": 1073600,
    "text": "keywords and tags. U so we also control"
  },
  {
    "startMs": 1076720,
    "text": "the system instructions. Um so every"
  },
  {
    "startMs": 1079280,
    "text": "coding agent is preconfigured with"
  },
  {
    "startMs": 1081600,
    "text": "system instruction on how to use these"
  },
  {
    "startMs": 1083520,
    "text": "tools and how to use the search really"
  },
  {
    "startMs": 1085600,
    "text": "efficiently. And once it finds the uh"
  },
  {
    "startMs": 1089120,
    "text": "right set of tool or playbook, it can"
  },
  {
    "startMs": 1091840,
    "text": "then get the more details about that"
  },
  {
    "startMs": 1094160,
    "text": "particular tool using get schema and"
  },
  {
    "startMs": 1096320,
    "text": "then execute that tool or uh playbook."
  },
  {
    "startMs": 1099760,
    "text": "So this has allowed us to scale uh to"
  },
  {
    "startMs": 1102640,
    "text": "thousands of tools in playbook."
  },
  {
    "startMs": 1107039,
    "text": "Um so this is u the growth chart. So now"
  },
  {
    "startMs": 1110720,
    "text": "we have over 8,000 users daily um using"
  },
  {
    "startMs": 1115360,
    "text": "the system daily. using uh tools and"
  },
  {
    "startMs": 1118240,
    "text": "playbooks. So we have over,300"
  },
  {
    "startMs": 1121919,
    "text": "uh tools and over 600 uh playbooks"
  },
  {
    "startMs": 1126240,
    "text": "and it's not not just engineering right."
  },
  {
    "startMs": 1128480,
    "text": "So it is uh not just engineers but also"
  },
  {
    "startMs": 1131039,
    "text": "product managers, designers, uh TPMS. So"
  },
  {
    "startMs": 1134960,
    "text": "across different functions they are"
  },
  {
    "startMs": 1136799,
    "text": "using the tools and bringing their"
  },
  {
    "startMs": 1138400,
    "text": "playbooks uh to automate their uh"
  },
  {
    "startMs": 1141200,
    "text": "workflows."
  },
  {
    "startMs": 1145280,
    "text": "uh so I'll leave you with this takeaway"
  },
  {
    "startMs": 1147919,
    "text": "uh key takeaways that can based on our"
  },
  {
    "startMs": 1150640,
    "text": "learning the first one is the system was"
  },
  {
    "startMs": 1153919,
    "text": "successful because we thought about"
  },
  {
    "startMs": 1155840,
    "text": "quality and reliability uh from day one"
  },
  {
    "startMs": 1158480,
    "text": "right so even uh before creating a MCP"
  },
  {
    "startMs": 1161360,
    "text": "server uh we thought okay the our"
  },
  {
    "startMs": 1163840,
    "text": "fundamental principle should be how do"
  },
  {
    "startMs": 1166000,
    "text": "we ensure not just productivity but how"
  },
  {
    "startMs": 1168640,
    "text": "do we ensure the quality and also"
  },
  {
    "startMs": 1171360,
    "text": "reliability of the system so that it"
  },
  {
    "startMs": 1173440,
    "text": "doesn't degrade um as we move fast."
  },
  {
    "startMs": 1177360,
    "text": "Uh and the second one was u the build"
  },
  {
    "startMs": 1180400,
    "text": "the right infrastructure for agents. Uh"
  },
  {
    "startMs": 1182400,
    "text": "in a large enterprise like LinkedIn,"
  },
  {
    "startMs": 1184480,
    "text": "it's not enough just enough to give all"
  },
  {
    "startMs": 1187200,
    "text": "of the engineers the all the latest and"
  },
  {
    "startMs": 1190080,
    "text": "greatest tools and models. Uh these are"
  },
  {
    "startMs": 1192720,
    "text": "they are not very effective if you don't"
  },
  {
    "startMs": 1195200,
    "text": "build the right infrastructure for the"
  },
  {
    "startMs": 1196799,
    "text": "agents to operate within your"
  },
  {
    "startMs": 1198799,
    "text": "enterprise."
  },
  {
    "startMs": 1201200,
    "text": "Um yeah that's my time. Thank you for"
  },
  {
    "startMs": 1204000,
    "text": "attending and feel free to connect with"
  },
  {
    "startMs": 1206160,
    "text": "me on [applause] LinkedIn."
  }
]
