Why Your Enterprise Tech Stack Isn’t Ready for AI Agents — Christopher Lovejoy & Saul Howard
AI Engineer · 19 min · 199 sentences · from YouTube's caption track
Each timecode opens YouTube at the start of that sentence. Line anchors (#s42) are the cue ids in the WebVTT, and every line carries its start and end seconds. All transcripts has every talk, and the whole corpus as one file.
- 00:01[music]
- 00:12Okay.
- 00:14Hello everybody.
- 00:16My name is Chris Lovejoy and I'm a member of technical staff at Anterior and I work as a forward deployed engineer.
- 00:21So I embed within enterprise organizations and help them get value from using AI agents.
- 00:27And I previously worked at Anterior with Saul.
- 00:31Hi everybody.
- 00:32I'm Saul.
- 00:33I'm VP of engineering at Anterior.
- 00:35We're a New York based company selling AI uh agentic AI to US health insurance companies.
- 00:43Um Chris and I have spent a lot of time building in enterprise and in health care enterprises particularly.
- 00:52And health care is a very challenging place to develop and deploy AI.
- 00:58Uh health [clears throat] care is so challenging because of the requirements around process and uh compliance, the regulatory requirements that that that are so important.
- 01:12Also because of the uh direct real impact that your work has on people's lives, which is of course also what makes it so rewarding.
- 01:21Um I think a lot of the learnings you can take from working in enterprise for health care, you can take to enterprise in other regulated industries.
- 01:30Like finance, defense, government work, anywhere where process is so important and has to be followed.
- 01:39In this talk we're going to talk about um some of the learnings that we've had and specifically we're going to talk about why enterprise tech stacks aren't ready for AI agents
- 01:46and some of the primitives that we've built in the past in order to unlock them.
- 01:51And to make this concrete, let's start by considering a scenario that might be familiar to many of you, which is the the enterprise proof of proof of concept, the enterprise POC.
- 02:00And let's say we have identified a customer that we want to serve, and we've identified a priority use case with them.
- 02:07So, obviously we're on the healthcare track here.
- 02:09Let's consider a um a large health system and a use case that is some sort of administrative healthcare workflow.
- 02:17So, you work with them, you scope out a POC, you define the metrics that you are going to care about, you're going to bench benchmark yourselves on.
- 02:23Um you allocate two engineers, you spend 4 weeks building it, and um the actual build-out might look a little bit something like this.
- 02:32An enterprise stack is very complicated.
- 02:35It's much, much more than we're showing here, but generally you can have an application layer, a control plane layer, the data plane.
- 02:44For your POC, you're going to need some access to the model provider as well.
- 02:48And your POC is going to need access to data across all of these different planes.
- 02:52It may be some in the data lake, some directly from the application layer, for example.
- 02:57And so, you're going to deploy it something like this.
- 03:00It's going to connect to all these different places.
- 03:03There's going to be some offline data pulling.
- 03:05There's going to be some maybe some online.
- 03:08Generally, you'll get access to the data and push towards the results.
- 03:14And so, things go well.
- 03:14You you get great results.
- 03:16The the AI performs you know, as you expected.
- 03:18You you hit the performance metrics.
- 03:20Um you know, it's fast.
- 03:21It's relatively cheap.
- 03:22And you hold a meeting, you present this to the relevant stakeholders, and everyone seems pretty happy.
- 03:27Um so, you know, your chief of finance um in the in the company is very excited and wants to understand what's going to be the impact on the budget for next year.
- 03:35Uh your chief medical officer is excited to tell his his colleagues, you know, how accurate his AI is.
- 03:40Um and the head of sales asks, "Okay, when can we put powered by AI?
- 03:44When can we put that on the websites?"
- 03:46Um but the problem is that everyone here is assuming that the the hard part is done, that the AI was was the challenging part.
- 03:51But actually, as we know, often getting things into production is really where the challenge lies.
- 03:56Um and to get a bit more specific on what that challenge looks like, um you hold a meeting the next day, you bring in the relevant stakeholders to discuss productionizing
- 04:04this proof of concept application.
- 04:07And somebody raises their hand and says, "Um can I see the the audit trail for this?
- 04:11Like for us, for compliance, it's critical that we can see every step, every action that the agent takes, every piece of data that it accesses.
- 04:17Can can you give that to me?"
- 04:19And you realize actually, you know, with the way things have been implemented in the initial POC, without these um kind of true integrations, that actually that's going to be quite challenging.
- 04:27And then somebody else um pops up with some other questions.
- 04:30So, somebody asks, "Okay, well actually, how is data sensitive data being handled here?
- 04:33Um how's that being passed to the agents?
- 04:34You know, we have a very strict boundary around where our data can go and where it can't go.
- 04:39Um is it is this respecting that?
- 04:40How does that look?"
- 04:41And then your chief medical officer says, again, "Who's approving the decisions here?
- 04:44Because we know in certain scenarios, we have to escalate to a clinician who will then uh you know, approve or or or not agree with what the agent is saying.
- 04:53Um so, how does that happen?
- 04:54Like what's the mechanism for that?"
- 04:56And over the course of the meetings, you know, you can imagine you get more and more questions.
- 04:59So, can untrusted data manipulate the model?
- 05:01How do we know that the agent continues to perform well?
- 05:03How do we deal with integrations?
- 05:05How do we connect to Epic, to Salesforce, to the other kind of applications that we care about?
- 05:09And for the purposes of this talk, we're going to focus on these four, the highlighted ones.
- 05:13For the other two, feel free to come and chat to me and talk about these later.
- 05:16We're very happy to talk, but um just in the interest of time, we'll stay focused.
- 05:20And let's start with uh this one about the audit trail.
- 05:23So, this is a question you're guaranteed to get from the security team.
- 05:28They're going to want to see an audit trail.
- 05:31And for programmers, an audit trail sounds very like a typical developer log you might have in DataDog.
- 05:36Surely it's it's it's a similar kind of thing.
- 05:39But for security frameworks that that exist in the real enterprise world, like SOC 2, HITRUST, HIPAA, an audit trail is is a bit more than that.
- 05:50It it has to contain a complete record of absolutely every action that the agent took.
- 05:56It has to contain all of the places where the agent accessed data, all of the authorization by which the agent did something.
- 06:04It's it's this complete record in in a much more fundamental way.
- 06:09And uh you one way of thinking about it is in a legal sense.
- 06:13It say our agent's decisions came up in a court of law.
- 06:18Could we show a justifiable chain of evidence for why the particular actions were taken by a decision?
- 06:24And that's something that could easily happen within the health care context, for example.
- 06:29When I think about architecting systems like this, I think often about what do I want to make easy?
- 06:38What are But when I'm choosing my constraints, I'm saying, "Okay, these are the things I want my system to be easy and let that drive the trade-offs that that I'm going to make."
- 06:47And a particular pattern that uh uh is used in lots of different industries, for example, in finance, is a transaction log.
- 06:56An immutable record of events that store all of the transactions that happen throughout the system.
- 07:05And this is append-only timestamp log.
- 07:09It's complete.
- 07:10So, this is your source of truth for all of the data of the system.
- 07:14And it's unified.
- 07:15So, there's only one source of truth across all of the different agents that you might have running in parallel, for example.
- 07:21And architecting this way, the making this trade-off, uh means that auditability becomes trivial.
- 07:28It falls out of your data storage paradigm that you've chosen.
- 07:32It sort of is impossible not to be able to roll back time and and see exactly the state of the system at a a particular point in time and be able to uh provide that as an audit trail for what happened
- 07:43uh uh each point in time.
- 07:46And of course, these are trade-offs.
- 07:48So, what's the trade-off you're making here?
- 07:51I think we could say that for this kind of event logging or sometimes called event sourcing pattern, writes become very easy.
- 07:58So, you just drop an event.
- 08:00Reads become more difficult because you have to read through all of the events in order to reconstruct a view of what happened.
- 08:07And there are patterns like caching and snapshots so you can bring to to to make that that simpler, but there always is more effort there.
- 08:14Although, I have seen in in the healthcare context that actually, you're going to want different interpretations of the raw data that your agents recorded after the fact.
- 08:26So, for example, it might be that more events happened and that changes the interpretation of the healthcare journey, and you want a different view of the the source of truth at that particular time.
- 08:38And this pattern makes that easy because all of your views of the data are ephemeral computed projections of the event log.
- 08:46Um okay.
- 08:48Next, the compliance officer comes and is asking, "How is the sensitive data passed around the system?
- 08:55What's the life cycle of data within our system?"
- 08:58And within a healthcare context, as we all know, data means a lot.
- 09:04It's PHI, protected or personal health information.
- 09:07It's has legal restrictions around it.
- 09:10Not just HIPAA, but other legal restrictions about the use of people's data.
- 09:14You cannot have your agent, just as you cannot have humans, accessing and reading and utilizing healthcare data that they don't absolutely have a necessity to use at that that point in time for that particular
- 09:27journey.
- 09:28And so, again, architecturally, when I think about how am I storing data within a particular system, I would like to think, "What is the shape of the data, what kind of characteristics
- 09:40does the data have?
- 09:42For health care data, that might be that it's very complicated.
- 09:46It doesn't follow strict hierarchical um relationships.
- 09:51It's uh sometimes unstructured and it's sometimes structured.
- 09:55It could be very large.
- 09:56For example, health care data but one piece of health care data can easily be over a megabyte in size or or much more than that.
- 10:03Uh it has strict access controls.
- 10:05As we've been saying, the R back comes into play like uh both for humans and and then for agents downstream of that.
- 10:12Uh it may even be we I've seen customers where they're not willing to have their health care data leave their own environment, leave their on prem VPC for example.
- 10:21So, we have tangential access to their to their data.
- 10:25And so, an architectural paradigm I might go to is object storage.
- 10:30Schema driven object storage, I think is a good fit for this.
- 10:33It's m- matches well with the choice of using event logging because you can separate the two.
- 10:40So, the events we talked about as the record of what the agent is doing at any particular time only contain references to the schema driven blobs that are the storage of the actual health care data itself.
- 10:53And uh it's important therefore that the health care data is stored immutably again so that you can always go back in time and reconstruct what data the agent had access to at that particular point in time.
- 11:04This separation of events for what happened and object storage for the data that was used at that particular point in time has actually some some very useful benefits.
- 11:17For example, with a system like this, it's possible for developers to go back and debug and have observability over what happened, what particular steps the agent took, why it did that, and and retrace the agent's steps
- 11:32without having access to the personal health information itself.
- 11:37Although because of the schema driven, they can see the shape of that data, they they can't and to be honest, often won't be able to be given access to that health care data.
- 11:46So, you can separate out observability and orchestration and instrumentation from the health care data itself.
- 11:52And this then has another benefit, which is zero trust.
- 11:57It it the object storage becomes a place where you can apply zero trust principles.
- 12:03Your agents can bear tokens and use those tokens to access the data at the point of use and not allow data to flow around the system as it likes.
- 12:15This then leads into a mitigation for prompt injection for the lethal trifecta.
- 12:22The way I think about the lethal trifecta is can I solve for the constraint if I have an agent at point A with access to this data?
- 12:31Is it possible within my architecture for the agent to be also accessing data over here?
- 12:36And zero trust principles, tokens are bad by the agents and object storage segregated from the event stream that has your orchestration logic gives you a place to be able to solve for that constraint.
- 12:48It won't be possible for the agent to access data within the same process that that you've given it the the previous data.
- 12:57Okay, so then it comes to how do you handle escalation?
- 13:01And in many scenarios, you will want to be able to escalate the decision that an agent makes or an action that an agent makes to a human.
- 13:10But one of the challenges here is that this is quite dynamic.
- 13:12So, you don't know in advance when exactly perhaps the agent's going to escalate.
- 13:16It could be that you're asking the AI to escalate when it's not sure.
- 13:19Um it could be that you define some sort of rules in your system, maybe in a medical context, the treatments going above a certain threshold means that it needs to be escalated
- 13:28uh for an approval.
- 13:30But
- 13:30[snorts]
- 13:30this makes it very challenging because of this this inability to predict.
- 13:34And a second challenge is also that humans and LLMs ultimately process context differently.
- 13:40You know, LLMs will have no problem if you give them massive massive amounts of text, but humans that's not the case.
- 13:45So, what we've seen is that one pattern that can work very well here is if in your platform you enforce you kind of a wider definition of agent which encompasses both LLMs
- 13:57and humans, then you can make it such that any action that can be taken by an LLM could also be taken by a human.
- 14:03And this is helpful because at any point in the kind of chain of actions that your agent is taking, it can escalate to a human, the human could perform that action,
- 14:10and then any step downstream doesn't care about whether it was a human or an LLM that did those actions upstream.
- 14:16Um and on the second point around the context, what this also makes much easier is that you can define methods that take the context, which has some kind of shared definition of context,
- 14:31which is irrespective of whether it's a human or an LLM that's going to be accessing it.
- 14:35And you can take those methods to then map into something that's agent friendly, like a prompt, or into something that's more human friendly, for example, a UI.
- 14:46And then on this fourth and final question that we're going to talk about, um evals.
- 14:53Obviously, you know, we hear a lot about evals.
- 14:55We know that evals can be very helpful, that often they drive decision-making about the types of model you want to use, the type of approach you might want to use
- 15:02within your product.
- 15:03But we also know that evals can be pretty hard, and there's various factors here.
- 15:07We
- 15:07[snorts]
- 15:07know that LLMs are not deterministic, so it can be quite tricky to pin down the precise change that led to some sort of change in outputs.
- 15:14Um we also know that the data that you might put in an offline data set might not necessarily represent production data, and it could be that um maybe you sampled from data, but actually that sample isn't truly representative.
- 15:28And then you also have drift of data over time, so maybe your offline data set is now out of date.
- 15:36And what we found is that these three primitives that we've described described so far in the talk actually give you effective privacy preserving evals almost as a byproduct without needing to kind of bolt something onto the side of your
- 15:50architecture.
- 15:52So to make that more concrete, so the immutable ledger, what this means is that you can replay your actions.
- 15:57So you can go back to any particular time, you know, in this kind of sequence of events, you can see the complete state of the system at that point in time.
- 16:04And if you wanted to, you could then make very specific tweaks.
- 16:07So you could tweak a prompt, you could tweak a model, you could tweak the code, and you can see the exact direct impact of that because you have all of that context.
- 16:16Secondly, you have this human agent equivalency, which means that for any task, you could get both the agent, the LLM agent, and the human to perform it, and your difference is your eval, that gives you the eval scores.
- 16:30And then finally, what the object storage enables you to do is to actually run these evals on production data including inside your customer's environment without actually ever exposing that data.
- 16:39You can get your eval results without the sensitive data ever needing to come to where your agent is performing the work.
- 16:48Right, so we've gone through four architectural principles that we found useful for building in healthcare and more generally in regulated environments for enterprise.
- 16:58The immutable ledger of actions, the orchestration adjacent object storage, the human agent equivalency, and the way that with these three principles evals can emerge as a first-class property of the system rather than as something you attach onto the side.
- 17:16I think one of the matters here is that I like to think about architecture as taking your constraints very seriously and thinking about what you want to be simple within the system and then choosing the trade-offs
- 17:30for that.
- 17:31And of course, alongside that, some things will become hard, but it's the things that are simple that are most important to you.
- 17:37And that there are patterns that already exist across enterprises that solve for a lot of these things.
- 17:42And sure, with AI, we need to combine them in new, sometimes radical ways and bring in other way other pieces, but there are patterns that have worked very well within finance, within defense, within big tech that that can be applied to this kind of system architecture.
- 17:56And I'd say the takeaway is that where I've seen it go wrong is taking that initial POC, that um that point solution that showed so much promise and that that showed the high accuracy, for example,
- 18:11and then trying to build up from it, strapping on the enterprise requirements as you come across them.
- 18:16Okay, we need eval, we need uh security, we need auditability, and bolting these on as additions to the the the foundations of the POC.
- 18:25You end up with something very brittle, something very hard to uh uh externalize and to generalize across different use cases.
- 18:32But where I've seen it go well is if you take the constraints of a production-ready, scaled enterprise uh system seriously from the beginning and treat those as the architectural principles that you're going to build everything upon and then build back up towards that POC accuracy
- 18:49using your new primitives.
- 18:53Thank you for your attention.
- 18:54Thank you.
- 18:55[applause]
- 19:11[music]