[
  {
    "startMs": 1309,
    "text": "[music]"
  },
  {
    "startMs": 12559,
    "text": "Hello everyone. Good good afternoon. Uh"
  },
  {
    "startMs": 15120,
    "text": "today uh I will be talking about AI"
  },
  {
    "startMs": 17359,
    "text": "agents are also distributed systems."
  },
  {
    "startMs": 20400,
    "text": "So as uh the models have started to"
  },
  {
    "startMs": 24320,
    "text": "become more complex. Initially the uh"
  },
  {
    "startMs": 27840,
    "text": "LLM models were just text in text out"
  },
  {
    "startMs": 30720,
    "text": "without performing any actions and uh"
  },
  {
    "startMs": 33680,
    "text": "the"
  },
  {
    "startMs": 35360,
    "text": "effect that they can produce was just a"
  },
  {
    "startMs": 38399,
    "text": "wrong model output. However, with"
  },
  {
    "startMs": 42079,
    "text": "now the capability of agent the agent"
  },
  {
    "startMs": 45120,
    "text": "the rise in agent capabilities where the"
  },
  {
    "startMs": 47760,
    "text": "systems can now talk to external systems"
  },
  {
    "startMs": 50879,
    "text": "uh it has turned into a distributed"
  },
  {
    "startMs": 54480,
    "text": "systems and it is important to"
  },
  {
    "startMs": 56640,
    "text": "incorporate distributed systems thinking"
  },
  {
    "startMs": 59359,
    "text": "and concepts when building AI agents. So"
  },
  {
    "startMs": 62399,
    "text": "I will be going over uh that uh in this"
  },
  {
    "startMs": 65920,
    "text": "talk."
  },
  {
    "startMs": 67680,
    "text": "So you guys might have uh heard about"
  },
  {
    "startMs": 71680,
    "text": "incidents being caused by a AI agents."
  },
  {
    "startMs": 74640,
    "text": "Uh for instance, the replicate AI agent"
  },
  {
    "startMs": 78479,
    "text": "deleting a production incident"
  },
  {
    "startMs": 80479,
    "text": "production database or Air Canada"
  },
  {
    "startMs": 83680,
    "text": "chatbot basically making an uh an"
  },
  {
    "startMs": 86880,
    "text": "incorrect refund. And both of these uh"
  },
  {
    "startMs": 90640,
    "text": "incidents or a lot of these incidents"
  },
  {
    "startMs": 92960,
    "text": "could have been prevented uh by good"
  },
  {
    "startMs": 96159,
    "text": "systems thinking when building these uh"
  },
  {
    "startMs": 100079,
    "text": "AI agents. So for instance for the"
  },
  {
    "startMs": 102720,
    "text": "replet a uh uh uh incident we could have"
  },
  {
    "startMs": 108159,
    "text": "good uh"
  },
  {
    "startMs": 110640,
    "text": "uh we could have robust backups. We"
  },
  {
    "startMs": 113200,
    "text": "could have scoped authority. we should"
  },
  {
    "startMs": 114960,
    "text": "we shouldn't ideally have uh allow AI"
  },
  {
    "startMs": 118399,
    "text": "agents to delete production databases."
  },
  {
    "startMs": 120719,
    "text": "Uh moreover for Air Canada chatbot"
  },
  {
    "startMs": 124159,
    "text": "it would have been uh a good idea to"
  },
  {
    "startMs": 126799,
    "text": "have uh authoritative source of truth"
  },
  {
    "startMs": 129520,
    "text": "retrieval so that it's not making uh uh"
  },
  {
    "startMs": 133599,
    "text": "decisions based on stale or incorrect"
  },
  {
    "startMs": 135920,
    "text": "policies."
  },
  {
    "startMs": 139120,
    "text": "So let's uh go over the transition from"
  },
  {
    "startMs": 141680,
    "text": "chatbot to production system. Uh so"
  },
  {
    "startMs": 146080,
    "text": "uh initially when we were in the uh in"
  },
  {
    "startMs": 150160,
    "text": "the uh age where LLMs were just chat"
  },
  {
    "startMs": 153440,
    "text": "bots uh we had prompt in and we were"
  },
  {
    "startMs": 157120,
    "text": "outputting text there were no side"
  },
  {
    "startMs": 159760,
    "text": "effects the agent was not interacting"
  },
  {
    "startMs": 161599,
    "text": "with any other system."
  },
  {
    "startMs": 164160,
    "text": "However, uh due to agentic uh in the"
  },
  {
    "startMs": 168480,
    "text": "agentic era in the agentic revolution,"
  },
  {
    "startMs": 171040,
    "text": "now those agents uh by ingesting prompt"
  },
  {
    "startMs": 174640,
    "text": "can uh run an agent loop, call external"
  },
  {
    "startMs": 178480,
    "text": "services, call tools and also perform"
  },
  {
    "startMs": 180560,
    "text": "state changes. The architectural"
  },
  {
    "startMs": 182879,
    "text": "boundary now has moved uh way beyond an"
  },
  {
    "startMs": 186879,
    "text": "LLM model. And the difference is that it"
  },
  {
    "startMs": 190400,
    "text": "can now cause side effects in the"
  },
  {
    "startMs": 191920,
    "text": "outside world. So when basic when"
  },
  {
    "startMs": 194800,
    "text": "building AI agents, it is important to"
  },
  {
    "startMs": 197120,
    "text": "recognize the external systems that it"
  },
  {
    "startMs": 199680,
    "text": "is talking to, [clears throat] the"
  },
  {
    "startMs": 201599,
    "text": "states that uh it is interacting with"
  },
  {
    "startMs": 205519,
    "text": "and what credentials does it have and"
  },
  {
    "startMs": 208080,
    "text": "the actions that it can perform."
  },
  {
    "startMs": 212799,
    "text": "uh I ideally like to think about it as"
  },
  {
    "startMs": 216400,
    "text": "uh uh AI agents as basically having a"
  },
  {
    "startMs": 220319,
    "text": "probabilistic coordinator."
  },
  {
    "startMs": 222560,
    "text": "In distributed systems as well, we used"
  },
  {
    "startMs": 224400,
    "text": "to have services which were coordinating"
  },
  {
    "startMs": 226959,
    "text": "uh multi-step workflows. However, they"
  },
  {
    "startMs": 229519,
    "text": "were deterministic in nature. But in the"
  },
  {
    "startMs": 232959,
    "text": "case of AI agent, the AI acts as a"
  },
  {
    "startMs": 235519,
    "text": "probabilistic coordinator. The amount of"
  },
  {
    "startMs": 237680,
    "text": "action, the kind of actions that it can"
  },
  {
    "startMs": 239920,
    "text": "take can vary quite a lot. It is not"
  },
  {
    "startMs": 242319,
    "text": "just a decision tree that uh we"
  },
  {
    "startMs": 245840,
    "text": "typically in traditional systems would"
  },
  {
    "startMs": 248080,
    "text": "have mapped out"
  },
  {
    "startMs": 250239,
    "text": "and those uh actions can have severe"
  },
  {
    "startMs": 253920,
    "text": "consequences uh ba uh if they are not"
  },
  {
    "startMs": 257919,
    "text": "confined by our determinist by having"
  },
  {
    "startMs": 261440,
    "text": "deterministic controls in place. So it"
  },
  {
    "startMs": 264800,
    "text": "is important to ensure uh that we have"
  },
  {
    "startMs": 268479,
    "text": "deterministic controls in place to"
  },
  {
    "startMs": 270320,
    "text": "ensure that agent or the AI agent is not"
  },
  {
    "startMs": 273520,
    "text": "performing any uh"
  },
  {
    "startMs": 276560,
    "text": "any actions that might be uh uh"
  },
  {
    "startMs": 280000,
    "text": "problematic."
  },
  {
    "startMs": 282720,
    "text": "So uh"
  },
  {
    "startMs": 285600,
    "text": "let's uh discuss the how a typical agent"
  },
  {
    "startMs": 289840,
    "text": "loop might look like. So at first it"
  },
  {
    "startMs": 293840,
    "text": "might uh do some planning. Then based on"
  },
  {
    "startMs": 297440,
    "text": "that plan it will it will perform an"
  },
  {
    "startMs": 299520,
    "text": "action and it will then observe the"
  },
  {
    "startMs": 302320,
    "text": "results of those actions and uh it might"
  },
  {
    "startMs": 305520,
    "text": "persist that into some d some data store"
  },
  {
    "startMs": 309199,
    "text": "and then decide what to do next."
  },
  {
    "startMs": 312639,
    "text": "Each step in this loop is basically"
  },
  {
    "startMs": 314960,
    "text": "crossing a a boundary. During planning,"
  },
  {
    "startMs": 317680,
    "text": "it can interact with data sources to"
  },
  {
    "startMs": 320720,
    "text": "retrieve some data. Uh during action, it"
  },
  {
    "startMs": 323759,
    "text": "can call external APIs, tools, uh"
  },
  {
    "startMs": 327280,
    "text": "databases and perform any actions."
  },
  {
    "startMs": 330639,
    "text": "During observation phase, it can perform"
  },
  {
    "startMs": 333840,
    "text": "it can get partial results and basically"
  },
  {
    "startMs": 337600,
    "text": "plan or make subsequent actions based on"
  },
  {
    "startMs": 341039,
    "text": "those partial results. It can persist"
  },
  {
    "startMs": 344320,
    "text": "incorrect data or uh and uh when"
  },
  {
    "startMs": 348880,
    "text": "deciding it might also"
  },
  {
    "startMs": 352160,
    "text": "decide to uh perform an incorrect action"
  },
  {
    "startMs": 355440,
    "text": "or uh worse it can also do a retry"
  },
  {
    "startMs": 359280,
    "text": "storm."
  },
  {
    "startMs": 361039,
    "text": "So it is very important when building an"
  },
  {
    "startMs": 363680,
    "text": "agent loop to persist every step of the"
  },
  {
    "startMs": 367120,
    "text": "process. Whatever actions the agent is"
  },
  {
    "startMs": 369360,
    "text": "doing, whatever context it is"
  },
  {
    "startMs": 371120,
    "text": "retrieving, it is important to uh"
  },
  {
    "startMs": 373600,
    "text": "persist that so that if anything fails,"
  },
  {
    "startMs": 376400,
    "text": "the agent is able to recognize where it"
  },
  {
    "startMs": 378720,
    "text": "failed and it can perform uh a"
  },
  {
    "startMs": 381520,
    "text": "reversible action. Uh it can perform"
  },
  {
    "startMs": 384000,
    "text": "undo operations. Similarly, there should"
  },
  {
    "startMs": 386639,
    "text": "be explicit transactions uh identified"
  },
  {
    "startMs": 390240,
    "text": "for each step. So for instance, if an"
  },
  {
    "startMs": 392880,
    "text": "agent is making a call, if it fails,"
  },
  {
    "startMs": 395360,
    "text": "what it should do? What should be the"
  },
  {
    "startMs": 397120,
    "text": "transaction to compensate for a uh for a"
  },
  {
    "startMs": 400960,
    "text": "irreversible or unsafe operation? For"
  },
  {
    "startMs": 403520,
    "text": "instance, if an agent makes sends an"
  },
  {
    "startMs": 405680,
    "text": "email to a a wrong email to a customer,"
  },
  {
    "startMs": 408720,
    "text": "what should it do to compensate for"
  },
  {
    "startMs": 410479,
    "text": "that?"
  },
  {
    "startMs": 413600,
    "text": "So, uh tool calls are just wrappers"
  },
  {
    "startMs": 418720,
    "text": "around uh external external APIs,"
  },
  {
    "startMs": 422240,
    "text": "databases, cues, uh and so on."
  },
  {
    "startMs": 426560,
    "text": "And uh with uh when calling the when"
  },
  {
    "startMs": 430560,
    "text": "making these remote calls, there are"
  },
  {
    "startMs": 433039,
    "text": "some failures that you incorporate uh"
  },
  {
    "startMs": 436560,
    "text": "such as network delays, timeouts, uh you"
  },
  {
    "startMs": 439840,
    "text": "can make duplicate requests or worse the"
  },
  {
    "startMs": 442880,
    "text": "server side request uh might succeed."
  },
  {
    "startMs": 446080,
    "text": "However, the client however the client"
  },
  {
    "startMs": 448080,
    "text": "might be reported an error."
  },
  {
    "startMs": 450960,
    "text": "We have we have seen uh instances where"
  },
  {
    "startMs": 455360,
    "text": "uh a data by base might have written the"
  },
  {
    "startMs": 457759,
    "text": "data. However, due to some other errors,"
  },
  {
    "startMs": 460400,
    "text": "the server might have reported uh uh to"
  },
  {
    "startMs": 464240,
    "text": "us the error and"
  },
  {
    "startMs": 467199,
    "text": "uh with humans in the loop we can make"
  },
  {
    "startMs": 470479,
    "text": "we can basically perform correct"
  },
  {
    "startMs": 473120,
    "text": "corrective actions based on uh by seeing"
  },
  {
    "startMs": 476080,
    "text": "uh the database and actual source of"
  },
  {
    "startMs": 477840,
    "text": "truth. But in agent's case, we need to"
  },
  {
    "startMs": 480639,
    "text": "ensure that we have uh we have proper"
  },
  {
    "startMs": 483039,
    "text": "guardrails in place. So for instance,"
  },
  {
    "startMs": 486240,
    "text": "an agent calls refund customer uh tool"
  },
  {
    "startMs": 489440,
    "text": "call which basically performs a refund"
  },
  {
    "startMs": 491520,
    "text": "to the customer. The request times out"
  },
  {
    "startMs": 494800,
    "text": "uh that did the refund happen or not?"
  },
  {
    "startMs": 498400,
    "text": "What will the agent uh infer from that?"
  },
  {
    "startMs": 502319,
    "text": "Would it retry uh refunding to the"
  },
  {
    "startMs": 504400,
    "text": "customer? you basically the the timeout"
  },
  {
    "startMs": 507599,
    "text": "does not actually mean that there a"
  },
  {
    "startMs": 509360,
    "text": "failure had occurred. It means unknown."
  },
  {
    "startMs": 512000,
    "text": "And it is important to have uh when"
  },
  {
    "startMs": 516640,
    "text": "designing these tools, it is important"
  },
  {
    "startMs": 518880,
    "text": "to have request ids, item potency keys"
  },
  {
    "startMs": 522080,
    "text": "so that when making duplicate requests,"
  },
  {
    "startMs": 524320,
    "text": "they are not causing duplicate side"
  },
  {
    "startMs": 526880,
    "text": "effects. uh and the system can always do"
  },
  {
    "startMs": 529760,
    "text": "a status lookup like what the previous"
  },
  {
    "startMs": 532480,
    "text": "request was and what was the status of"
  },
  {
    "startMs": 535680,
    "text": "that so that it is not making side"
  },
  {
    "startMs": 537839,
    "text": "effect it is not making side effects"
  },
  {
    "startMs": 540320,
    "text": "with duplicate a with duplicate"
  },
  {
    "startMs": 542399,
    "text": "requests."
  },
  {
    "startMs": 545839,
    "text": "So [clears throat] AI agents when they"
  },
  {
    "startMs": 549040,
    "text": "whenever they uh uh whenever they uh"
  },
  {
    "startMs": 554000,
    "text": "they face failures they retry the their"
  },
  {
    "startMs": 557600,
    "text": "first uh action is to perform retries."
  },
  {
    "startMs": 560720,
    "text": "So it is really important to have item"
  },
  {
    "startMs": 563600,
    "text": "potency baked in. uh it if a same"
  },
  {
    "startMs": 567680,
    "text": "request is coming in to an external API"
  },
  {
    "startMs": 570080,
    "text": "or the tool it should recognize that"
  },
  {
    "startMs": 572480,
    "text": "this is a duplicate request and ensure"
  },
  {
    "startMs": 574880,
    "text": "that no side effects are being take are"
  },
  {
    "startMs": 576959,
    "text": "taking place. Moreover, uh we should"
  },
  {
    "startMs": 580640,
    "text": "also prevent uh AI agents to perform"
  },
  {
    "startMs": 583360,
    "text": "retry storms to external APIs because"
  },
  {
    "startMs": 585680,
    "text": "this can cause cascading failures. uh we"
  },
  {
    "startMs": 589279,
    "text": "we should have max turns budget spend"
  },
  {
    "startMs": 592560,
    "text": "and max parallel calls to prevent uh to"
  },
  {
    "startMs": 596800,
    "text": "uh to ensure that the fan out is not"
  },
  {
    "startMs": 599040,
    "text": "that large. Moreover, we should have"
  },
  {
    "startMs": 602080,
    "text": "exponential back back off in place to"
  },
  {
    "startMs": 604640,
    "text": "ensure that uh the downstream"
  },
  {
    "startMs": 607839,
    "text": "dependencies are not being uh burdened"
  },
  {
    "startMs": 611760,
    "text": "and we should also have compensation uh"
  },
  {
    "startMs": 614800,
    "text": "operations in place for uh operations"
  },
  {
    "startMs": 618000,
    "text": "that uh that that can have side effects."
  },
  {
    "startMs": 625279,
    "text": "Uh"
  },
  {
    "startMs": 627200,
    "text": "so uh"
  },
  {
    "startMs": 629920,
    "text": "a lot of uh"
  },
  {
    "startMs": 632880,
    "text": "teams when building AI agents think of"
  },
  {
    "startMs": 635600,
    "text": "AI agent context as just a AI cont the"
  },
  {
    "startMs": 639839,
    "text": "context that uh the AI agent has as uh"
  },
  {
    "startMs": 643760,
    "text": "as just a context. However, when that"
  },
  {
    "startMs": 646880,
    "text": "context can influence an action, it's a"
  },
  {
    "startMs": 649279,
    "text": "state and that state can become stale"
  },
  {
    "startMs": 653040,
    "text": "that can conflict with the authoritative"
  },
  {
    "startMs": 654959,
    "text": "data or corrupt future actions that the"
  },
  {
    "startMs": 657760,
    "text": "agent might perform."
  },
  {
    "startMs": 659920,
    "text": "I like to classify it into two different"
  },
  {
    "startMs": 662240,
    "text": "types of uh memory that the agent has."
  },
  {
    "startMs": 665360,
    "text": "First is the short-term memory which is"
  },
  {
    "startMs": 667360,
    "text": "the jet thread uh that the agent has uh"
  },
  {
    "startMs": 671200,
    "text": "the which is tied to a single execution"
  },
  {
    "startMs": 673680,
    "text": "thread and the second is the long-term"
  },
  {
    "startMs": 675760,
    "text": "memory. It can be project files uh"
  },
  {
    "startMs": 678959,
    "text": "system prompts uh databases that it"
  },
  {
    "startMs": 681440,
    "text": "interacts with the cache layer and so"
  },
  {
    "startMs": 683839,
    "text": "on."
  },
  {
    "startMs": 685279,
    "text": "It is important to uh to to decide what"
  },
  {
    "startMs": 689360,
    "text": "will be the source of truth when these"
  },
  {
    "startMs": 692240,
    "text": "uh different data sources have"
  },
  {
    "startMs": 695120,
    "text": "conflicting information and we should"
  },
  {
    "startMs": 698720,
    "text": "ideally treat memory as a cache which uh"
  },
  {
    "startMs": 703680,
    "text": "can be invalidated which can have"
  },
  {
    "startMs": 706800,
    "text": "provenence attached to it. So for"
  },
  {
    "startMs": 709040,
    "text": "instance whenever a data store or a"
  },
  {
    "startMs": 711120,
    "text": "database is updated or the source of"
  },
  {
    "startMs": 713440,
    "text": "truth is updated we in we invalidate the"
  },
  {
    "startMs": 716959,
    "text": "context or the memory that the agent has"
  },
  {
    "startMs": 719360,
    "text": "to ensure that it is not making actions"
  },
  {
    "startMs": 721680,
    "text": "based on the uh incorrect or stale data."
  },
  {
    "startMs": 728160,
    "text": "So"
  },
  {
    "startMs": 730079,
    "text": "usually these agents perform multi-step"
  },
  {
    "startMs": 732160,
    "text": "actions and uh the agent can succeed on"
  },
  {
    "startMs": 737519,
    "text": "uh on uh on the first couple of steps"
  },
  {
    "startMs": 740399,
    "text": "and then it fail. Uh it is important to"
  },
  {
    "startMs": 743839,
    "text": "reverse the entire transaction that was"
  },
  {
    "startMs": 746320,
    "text": "performed and these can uh then can"
  },
  {
    "startMs": 749920,
    "text": "cross system boundaries. So for"
  },
  {
    "startMs": 751680,
    "text": "instance, an agent can update an"
  },
  {
    "startMs": 754399,
    "text": "internal ticket uh send an email to a"
  },
  {
    "startMs": 757680,
    "text": "customer and fail to update the CRM. We"
  },
  {
    "startMs": 761839,
    "text": "need to figure out what is the uh"
  },
  {
    "startMs": 765519,
    "text": "correct compensation operation when it"
  },
  {
    "startMs": 768320,
    "text": "when it hits that failure."
  },
  {
    "startMs": 771279,
    "text": "So for instance uh as I mentioned"
  },
  {
    "startMs": 773839,
    "text": "earlier that uh it improperly uh it"
  },
  {
    "startMs": 779120,
    "text": "improperly sends an incorrect email to"
  },
  {
    "startMs": 781200,
    "text": "the customer. It is important that the"
  },
  {
    "startMs": 783519,
    "text": "compensation operation is defined for"
  },
  {
    "startMs": 785360,
    "text": "the AI agent to ensure that it is"
  },
  {
    "startMs": 787600,
    "text": "sending an uh uh an apology email to the"
  },
  {
    "startMs": 791120,
    "text": "customer or any or or any email or an"
  },
  {
    "startMs": 794320,
    "text": "email that is correcting that mistake."
  },
  {
    "startMs": 799040,
    "text": "So uh"
  },
  {
    "startMs": 802800,
    "text": "a the AI agent basically runs in a loop"
  },
  {
    "startMs": 805279,
    "text": "and uh whenever uh like it can it can do"
  },
  {
    "startMs": 810240,
    "text": "multiple calls. It can it can have a"
  },
  {
    "startMs": 813440,
    "text": "retry uh retry loop that it can run"
  },
  {
    "startMs": 817040,
    "text": "based uh whenever it fails. So it is"
  },
  {
    "startMs": 820639,
    "text": "important to have uh circuit breakers"
  },
  {
    "startMs": 823200,
    "text": "whenever it is making making external"
  },
  {
    "startMs": 825120,
    "text": "calls uh to ensure that the uh that the"
  },
  {
    "startMs": 829040,
    "text": "that it is not uh burdening the"
  },
  {
    "startMs": 832240,
    "text": "downstream system. Uh for instance if a"
  },
  {
    "startMs": 836000,
    "text": "downstream is unhealthy there should be"
  },
  {
    "startMs": 837839,
    "text": "system break uh circuit breakers in"
  },
  {
    "startMs": 839519,
    "text": "place that prevents AI agents to call"
  },
  {
    "startMs": 841839,
    "text": "call that dependency. Moreover, it also"
  },
  {
    "startMs": 844800,
    "text": "prevents cascading failures when for"
  },
  {
    "startMs": 846959,
    "text": "instance the downstream dependency is uh"
  },
  {
    "startMs": 850000,
    "text": "unhealthy or uh is saturated."
  },
  {
    "startMs": 854000,
    "text": "It is also important to assign rate"
  },
  {
    "startMs": 856000,
    "text": "limits and budgets. Uh an agent can uh"
  },
  {
    "startMs": 861120,
    "text": "go over uh can run your cost uh if it's"
  },
  {
    "startMs": 864560,
    "text": "not assigned proper budgets and rate"
  },
  {
    "startMs": 866880,
    "text": "limits. it will uh keep retrying and try"
  },
  {
    "startMs": 870480,
    "text": "try to uh try to solve the problem that"
  },
  {
    "startMs": 873279,
    "text": "if it if it's facing. So it is important"
  },
  {
    "startMs": 876320,
    "text": "that it is uh that we have uh set up max"
  },
  {
    "startMs": 879519,
    "text": "turns, max parallelism, max spend uh to"
  },
  {
    "startMs": 882639,
    "text": "ensure that the model is not uh uh not"
  },
  {
    "startMs": 886720,
    "text": "uh crossing the uh the budget boundary"
  },
  {
    "startMs": 889279,
    "text": "that we have set."
  },
  {
    "startMs": 892240,
    "text": "Moreover, uh ideally uh usually whenever"
  },
  {
    "startMs": 898160,
    "text": "we are building AI agents, uh we usually"
  },
  {
    "startMs": 902079,
    "text": "try to give all the permissions that it"
  },
  {
    "startMs": 903839,
    "text": "can have to ensure that it has all that"
  },
  {
    "startMs": 906399,
    "text": "it can perform perform the task that we"
  },
  {
    "startMs": 908639,
    "text": "have. That's the that's the uh first uh"
  },
  {
    "startMs": 914000,
    "text": "uh thing that we have that that's the"
  },
  {
    "startMs": 916079,
    "text": "first step that we take usually that to"
  },
  {
    "startMs": 919120,
    "text": "give the AI agents all the uh cred all"
  },
  {
    "startMs": 921920,
    "text": "the uh privileges to perform any actions"
  },
  {
    "startMs": 925760,
    "text": "like for instance if it's interacting"
  },
  {
    "startMs": 927519,
    "text": "with the database we just give it all uh"
  },
  {
    "startMs": 930399,
    "text": "the readr access to the entire table."
  },
  {
    "startMs": 932720,
    "text": "However,"
  },
  {
    "startMs": 934480,
    "text": "uh it is important to give scoped"
  },
  {
    "startMs": 937199,
    "text": "credentials to it. There should be"
  },
  {
    "startMs": 939279,
    "text": "separate read and write permissions and"
  },
  {
    "startMs": 941839,
    "text": "there should be allow list for the tools"
  },
  {
    "startMs": 943519,
    "text": "that it can call. A harmless model can"
  },
  {
    "startMs": 947120,
    "text": "become dangerous when it can perform"
  },
  {
    "startMs": 949440,
    "text": "unsafe operations. Moreover, uh a human"
  },
  {
    "startMs": 953680,
    "text": "approval shouldn't be tied uh to a"
  },
  {
    "startMs": 956399,
    "text": "blanket approval. It should be tied to"
  },
  {
    "startMs": 959839,
    "text": "uh action, timestamp, actor and"
  },
  {
    "startMs": 963600,
    "text": "expiration. So for instance, if a user"
  },
  {
    "startMs": 966320,
    "text": "has given uh an approval to approve a"
  },
  {
    "startMs": 970639,
    "text": "$30 refund, it shouldn't turn into a"
  },
  {
    "startMs": 973839,
    "text": "subsequent approval for $300 refund."
  },
  {
    "startMs": 977600,
    "text": "It is important that whenever an"
  },
  {
    "startMs": 980800,
    "text": "approval is given, it should be tied to"
  },
  {
    "startMs": 984160,
    "text": "the particular parameters that it was uh"
  },
  {
    "startMs": 988160,
    "text": "asked for."
  },
  {
    "startMs": 991759,
    "text": "So, uh observability is an important"
  },
  {
    "startMs": 996000,
    "text": "requirement when building AI agents"
  },
  {
    "startMs": 998800,
    "text": "because uh"
  },
  {
    "startMs": 1001279,
    "text": "and logs are not enough. Teams need to"
  },
  {
    "startMs": 1003680,
    "text": "reconstruct when an agent failed, what"
  },
  {
    "startMs": 1005920,
    "text": "happened, what information was was it"
  },
  {
    "startMs": 1008079,
    "text": "reacting to and why it failed. And logs"
  },
  {
    "startMs": 1011920,
    "text": "alone are not enough to uh for an agent"
  },
  {
    "startMs": 1015920,
    "text": "to uh for teams to determine that."
  },
  {
    "startMs": 1019519,
    "text": "It is important to trace the model that"
  },
  {
    "startMs": 1021759,
    "text": "was called, the prompt that was uh that"
  },
  {
    "startMs": 1024559,
    "text": "was uh given to it and uh also the tool"
  },
  {
    "startMs": 1028319,
    "text": "calls that were made uh the request uh"
  },
  {
    "startMs": 1031679,
    "text": "that was made, the response from the"
  },
  {
    "startMs": 1034079,
    "text": "tool, the errors that it got, the"
  },
  {
    "startMs": 1036480,
    "text": "retrieved context, what the agent was uh"
  },
  {
    "startMs": 1039760,
    "text": "was the the retrieved information that"
  },
  {
    "startMs": 1042480,
    "text": "the agent was reacting to, the rights"
  },
  {
    "startMs": 1044640,
    "text": "that it made, and the approvals that it"
  },
  {
    "startMs": 1046799,
    "text": "got and so on."
  },
  {
    "startMs": 1051360,
    "text": "So uh I would like to uh end with uh the"
  },
  {
    "startMs": 1057280,
    "text": "idea that yes model capability matters."
  },
  {
    "startMs": 1060160,
    "text": "Having good models uh improves the uh"
  },
  {
    "startMs": 1064320,
    "text": "likelihood of it making uh correct"
  },
  {
    "startMs": 1067360,
    "text": "operations. Smarter models reduce"
  },
  {
    "startMs": 1069760,
    "text": "mistakes. It uh it uh improves the"
  },
  {
    "startMs": 1074000,
    "text": "capability that the model has. However,"
  },
  {
    "startMs": 1076559,
    "text": "it cannot eliminate network failures,"
  },
  {
    "startMs": 1079600,
    "text": "stale data or adversarial input. It is"
  },
  {
    "startMs": 1083200,
    "text": "important when building this"
  },
  {
    "startMs": 1084320,
    "text": "architecture,"
  },
  {
    "startMs": 1086080,
    "text": "we also reason about can we bound,"
  },
  {
    "startMs": 1089520,
    "text": "observe and recover from actions"
  },
  {
    "startMs": 1092240,
    "text": "performed by the AI agent. It is"
  },
  {
    "startMs": 1094960,
    "text": "important to have tool contracts in"
  },
  {
    "startMs": 1096720,
    "text": "place to ensure that uh it is only"
  },
  {
    "startMs": 1101039,
    "text": "allowed to make uh operations that it is"
  },
  {
    "startMs": 1103679,
    "text": "uh given that it is provided the"
  },
  {
    "startMs": 1105440,
    "text": "contract and the contracts are clearly"
  },
  {
    "startMs": 1107520,
    "text": "establishing the request and response uh"
  },
  {
    "startMs": 1110480,
    "text": "response uh response types uh the schema"
  },
  {
    "startMs": 1115600,
    "text": "and all these tools have item potency"
  },
  {
    "startMs": 1117919,
    "text": "baked into it. so that uh when repeated"
  },
  {
    "startMs": 1121120,
    "text": "requests are sent in uh it is not"
  },
  {
    "startMs": 1123600,
    "text": "causing unsafe operations to be retried."
  },
  {
    "startMs": 1126400,
    "text": "Moreover, there should be source of"
  },
  {
    "startMs": 1128240,
    "text": "truth decisions made uh when there are"
  },
  {
    "startMs": 1130559,
    "text": "conflict conflicting uh memory states."
  },
  {
    "startMs": 1133600,
    "text": "It is important uh for the agent to"
  },
  {
    "startMs": 1136480,
    "text": "realize this is the source of data that"
  },
  {
    "startMs": 1138720,
    "text": "it should rely on and we should have re"
  },
  {
    "startMs": 1141840,
    "text": "retry policies uh like rate limits set"
  },
  {
    "startMs": 1145120,
    "text": "in to ensure that the agent is not uh"
  },
  {
    "startMs": 1147840,
    "text": "retrying uh ext uh aggressively."
  },
  {
    "startMs": 1151200,
    "text": "Moreover, uh permissions should be set"
  },
  {
    "startMs": 1155039,
    "text": "up. There should be traces and recovery"
  },
  {
    "startMs": 1157600,
    "text": "paths. So"
  },
  {
    "startMs": 1160880,
    "text": "when building AI agents, we should also"
  },
  {
    "startMs": 1163440,
    "text": "ask what the system lets it do when it"
  },
  {
    "startMs": 1166640,
    "text": "is wrong."
  },
  {
    "startMs": 1168400,
    "text": "Thank you."
  },
  {
    "startMs": 1186218,
    "text": ">> [music]"
  }
]
