Narrator: Welcome to the Practical AI Podcast, where we break down the real world applications of artificial intelligence and how it's shaping the way we live, work, and create. Our goal is to help make AI technology practical, productive, and accessible to everyone. Whether you're a developer, business leader, or just curious about the tech behind the buzz, you're in the right place. Be sure to connect with us on LinkedIn, X, or Blue Sky to stay up to date with episode drops, behind the scenes content, and AI insights. You can learn more at practicalai.fm.
Now onto the show.
Daniel: Welcome to another episode of the Practical AI Podcast. This is Daniel Whitenack. I am CEO at Prediction Guard and really excited for today's episode because it fits right in the theme of our show, which is practical AI focusing on some things that are actually useful and practical. Have with us today Hamza Tahir, who is cofounder at Zen ZenML. And they they have a new, product, a new project, out, Keturu, who, which is focused on agents and making agents durable, which is is super interesting.
And Hamza is joining us, today. I I think you are out at the AI Engineers World's Fair. Right?
Hamza: Yeah. I am. It's, 7,000 people, all of our crowd gathered in one small like, big hallway, so it's it's just fantastic to be in San Francisco when the energy is so high.
Daniel: Yeah. That's that's awesome. Always always inspiring and and really cool to see also growth in that from Swix and and others who who've really built up an amazing community over time. Friends of the friends of the show. So if you haven't checked it out, go ahead and and check out what they're doing over there.
But, yeah, excited to dig in today, Hamza. May maybe just, to to set the stage, I know, you're a cofounder of ZenML. There's kind of some background with that project and product around ML Ops. Now you're getting into agent agentic things. I I'd love your perspective on maybe first off kind of the the world that you have been inhabiting around ML and ML pipelines.
As now we're all thinking about agents and generative AI and all of these things, like what from your perspective, before we get into agents specifically, like what role does the more traditional ML, models, training pipelines, etcetera, play in in our world moving moving forward from your perspective?
Hamza: Awesome. That's, I think, a great one to start with. And thank you for for, like, inviting me on the show. Yeah. Appreciate the opportunity.
I so I cofounded ZenML about five years ago, so this was really almost at a point where MLOps was really reaching fever pitch on, you know, there was all sorts of chatter about how to productionalize AI and machine learning workloads. And I had done four or five years of that in my previous job where I was cofounding another company trying to deploy ML models in disparate, you know, compute back ends and all over especially out of Germany where I'm based. So the like, that led me to, you know, like, having a framework internally that we used that you could write workflows into X, and you could deploy them on these different back ends. And that turned out to be ZenML. We open sourced it.
We got a bit of traction at the beginning and a few projects and and revenue, and we raised and and that's been the story so far. And and smack dab in the middle of this from from then from then to today, we have we had the agent renaissance, and it felt like it felt a bit bit funny because in MLOps, it was like DevOps reinventing itself. Yeah. And with agents, it's like MLOps reinventing itself. And at the end of the day, it comes down to these very basic principles of how to write good software engineering code that runs nondeterministic code, in a way that's safe and reliable and retryable.
So I think if anything, even if you throw away every other tool that we ever used in MLOps, the principles and the learnings that we took from productionalizing these applications at scale still translate and are being rediscovered. Even at the AI eWorldsFair, I sometimes hear talks. I'm like, I I seem to remember I've heard this talk before in the MLOps conferences. So, yeah, I happy to chat deeper if you're if you're interested in a particular
Daniel: It's interesting. Like, you're talking about the workflows, DAG DAG pipelines. There was very much this phase, at least this is how how it occurred to me. I don't know if everyone had this perspective, but there was this phase with, generative AI around like workflow automation, and there was this very much workflow focus for some time with things like N8N or or whatever. And those tools still very useful, course.
But there is like this this DAG focus, and now it seems like people have thought, well and I remember, having Jeffrey from News Research on this show, and he's like, well, with, like, their Hermes agent or or whatever, it's like, well, I I don't want to impose my workflow into this, there's still a there's still a workflow under the hood. Like, there's decisions made. There's a workflow executed. It's just like you're not not defining it. And so from the human perspective, you actually don't see that that workflow in like a visualized DAG, but it it sort of exists under there.
Is that partially why you think, like, some of these principles carry carry over or reinvented in a new way? Because, like, at the end of the day, there is some flow of things being executed. Right?
Hamza: Yeah. Mean, a graph, like, all software is essentially a graph. Right? When you write code, you have if this, else that, execute this, execute that. That's like a sequence of steps you're doing in a graph.
I think the way we thought about workflows before were more deterministic, obviously. For example, I come from the world of machine learning pipelines, it's like, load your data, preprocess your data, train your model, evaluate your model. So, you know, we we sorta knew the steps ahead of time, and that lended itself to a graph structure. And, you know, graphs introduced order to the chaos of just willy nilly scripting things. Mhmm.
And then, obviously, DAGs are directed acyclic graphs, but they are graphs, so they're directed in one direction. They're acyclic. They don't have cycles. They don't loop back. So, in the world of agents, the acyclic part gets very tricky because it cycles all the way down.
Right? It's loops. So it's so it's it's it's it's where we had to reinvent ourselves as well. So back in, like, 02/1934, users started hack hacking our pipeline engine to run agents like dynamic steps, conditional branching, state through artifact store workarounds. And then, you know, we were like, okay, they're starting to fight our abstraction.
So we introduced a new dynamic mode, I think the main, the key difference here is really, as you said, everything is a workflow. Everything is a an agent, in in my opinion, is just an unrolled graph. So it's like LLM call, tool call, LLM call, tool call. Sometimes you do the two calls together. So you're just it's like a tree structure.
So the trace, I guess, is a graph. Mhmm. And we just needed to make our system more capable of having graphs that are defined in real time versus statically compiled at the beginning. Yeah. And and we did that quite early.
And and since then, the same abstractions have worked except yeah. And we can get into this. There's this whole new workload that we need to think about different things about, like durability, estate management, retries, how how those things work and replays. And those are the things I've been working on in the last two years.
Daniel: Yeah. I I would be curious to know maybe as we get into to those things, maybe just some of the, I guess some of the stories or types of failures that you, that you see there's like one, one piece, which is like how, how we handle those, how we instrument things, how we, to your point, make our agents more durable, but that's assuming like they need to be made more durable. They are currently not not durable. They're they're fragile. Right?
So so what are the I I guess, help the audience understand some of those main categories of why agents in in our world today are are not durable or reliable or or however you define that.
Hamza: Yeah. So I think in order to in order to to follow that thread, we need to see where the world is going. Right? So if if you look at how agents most people, when they think of agents, honestly still, outside of our little bubble of these 7,000 people in the Moscone Center, they they think that agents are these local cloud code instances or Mhmm. You know, the you know, or like Hermes or something.
Daniel: Yeah.
Hamza: And I think that because we come from this revolution of local local processes that run on your computer and your token maxing your, you know, at in your local machine, I think that it's very hard to then understand durability because that durability, I guess, and recovering from failure in your local machine is is turns out it's a simpler problem than when these things migrate out of your little machine and go into a sandbox or or somewhere in your computer, in computers running in the cloud, defined by Yeah. Controlled by your company that are executing arbitrary code and doing all sorts of things, like MCP calls and and and, you know, like, loading skills.
Daniel: And would this be like, to to kind of go off of your point, this would be certainly people are running Cloud Code or whatever on their local machine, like like you're talking about. But ultimately, at at least the way I've heard companies express this is to really lean into this element of how the future is gonna play out. There there will be this, digital workforce, however you wanna think about it, agents that are operating and actually taking taking action within your enterprise infrastructure, right, that aren't tied to someone's laptop. Yep. And they maybe then eventually are not just acting, you know, in in a single agent type of way, but eventually there is there are many of these agents that are operating, which I'm sure adds another level of complexity.
Hamza: Yeah. These fleets or swarms or, you know, the multi agent architectures that that that keep coming up. I I think they're getting very real now. I I mean, the companies certainly that we work with are deploying these things, and what ends up happening once you do that is there is no limit to the scale that you can reach technically. Right?
Disregarding token spend. And you you I mean, why would you not arbitrarily scale that to a 100,000 agent executions per, I don't know, hour if you could afford it? Once that you loosen the yoke of the laptop. Right? Mhmm.
So I I have the I have the feeling that, you know, as things as infrastructure gets more and more mature and architectural practices get more mature, we we I we can't really predict how much volume of agents would be running once they're not running locally. And that migration is is well and truly underway right this year. And people who get there tend to just it's like this sort of slow adoption, and then suddenly, boom, there's like a Mhmm. Crazy increase. And then at that scale, of course, you have different sorts of problems with agents, like, and I guess that's what we we can spend a bit of time, talking about.
Daniel: And and these agents that would run-in your in your cloud environment, you know, disconnected from your local environment, you know, people might have some ideas of some of the local ones, like a Cloud Code or Open Code or Open Claw or what whatever we're talking about. What could you give us some examples of kind of the the the other type types of type of agent? Like, what what are they built on top of? Like, what what, are are these do you envision these as mostly kind of software vendors that are building vertical focused agents and they're deploying, you know
Hamza: Yeah.
Daniel: Into companies or companies building them themselves? I I'm just trying to get, like, a a bit of a vid a vision for people of like what these things might be.
Hamza: So I think this is a big battle in the industry right now who who owns that part of the stack. So, know, you you let's start with the most easiest part of the stack. It's the the harness. Right? So the the harness and the model providers have been, for the last year, tightly coupled.
And I like, maybe we should spend a little bit of time talking about what the harness is.
Daniel: Yeah. Yeah. Go ahead,
Hamza: please. If if
Daniel: if that's just a on the show, but I think always it's like, this is Yeah. One of those concepts that it has popped up, and it is often very subtle for people, like what we're Yeah. What we're talking about. Right?
Hamza: It's very ephemeral anyway, because what used to be an agent is now a harness. Yeah. So, the definition I cling onto in, July 2026 is is basically, you know, we we we had this notion of an LLM model. Right? The LLM model is simply a token generator.
So in itself, it doesn't do anything. It doesn't do action. So the way we did action was we started three years ago with structured outputs and tool calling. And suddenly, what is structured outputs and tool calling? That's simply imposing policies on what type of tokens can the model generate to predict the next action inside the environment in which it's playing.
So it you can ahead of time, you give it like five tools and you say, hey. You have GetWeather or you have, like, Ping Hamza or, like, Ping Dan, and, like, you have all these bunch of tools to send emails or do different things. Here's the definition of the parameters of these tools. And then whenever you want you think that you need more information, given that description, you can return me a bunch of tokens, which I can parse and actually map that to my code and execute it. And that while loop, like, that's the agent.
Right? And suddenly we started having a program that runs on your machine at the beginning, which mapped those tokens back to the tool calls. And turns out that's harder than it looks. So it's I mean, I I still remember when I did it the first time, like, three years ago, it was like Mhmm. You literally have the literally do a exec, like an eval in Python, which converts the string into code and and runs I guess that's still what's happening under the hood, but basically, three years of software development later, we had things like Cloud Code, which started doing more things while having that while loop.
So, you know, things like compaction when the context window gets too big, or things like ensuring that the tool goals have the right parameters.
Daniel: Indexing memory.
Hamza: Yeah. Indexing and memory. So that software program is called the harness. So it's basically the thing that gives your brain a hands, like a body. So your brain is just spewing out tokens and you're converting those tokens into actions, and the the outcome that comes out of combining the harness and the model is the agent.
Right? So so that's how I think about it. I will obviously be very embarrassed in a year when I'm listening back to this and the definitions.
Daniel: For what it's worth, I I mentioned Jeffrey and and Nuss. Like, he gave the same us a very similar metaphor of, like, brain and body. At least we're in yeah. We're we're in safe safe territory.
Hamza: Safe territory for now, I mean, until the industry decides to flip this. Yeah. So so so, obviously, the most famous harnesses being like, some some interesting phenomena started to happen because what we ended up figuring out is that the model started to asymptote in performance. And what the model providers quickly found out, given their evaluations, is that if you just make this program better and you manage context better and you manage memory and all those things, general purpose tasks get easier to solve. And therefore, you could just make a better program.
Right? The better program will win given given the model stays static. And and then they're they started a weird RL loop. So what they what they did was they, like, ClotCode, for instance, has a very you know, ClotCode is the harness, and underlying it is OPUS 4.8. Mhmm.
And OPUS 4.8 by now, unlike OPUS 3.5, understands what ClotCode itself is. So it's self aware in the way it's that it's running inside ClotCode. So when it calls a tool like edit file, it actually uses certain parameters and the tool calling is very accurate. If you if you drop GPT 5.5 into Claude, a code, the harness, that would not be as accurate. It wouldn't perform as good because Yeah.
Yeah. Simply the two things have have coupled together. So the harness with with the reinforcement learning loop that has gone on for the last year and a half has coupled deeply with the with the models. Now on the same time, there has been this re re re renaissance of open harnesses. Right?
So we had PIE. We have frameworks like Lingraph or PyDantic AI. And those harnesses are of the opposite opinion that we should have an open standard, but that shouldn't be tied to the model because we don't wanna be tied to the model. I mean, if the US government decides to ban and unban models Mhmm. That shouldn't affect our business outcomes.
And that has been an underlying tension in the industry for the last year and hasn't resolved yet. So we I don't I wouldn't know whether my intuition says that an open harness will win, which standardizes those things. But on the other side, I mean, you know better than most people that, I mean, clot code works. Right? So why would I use anything else?
So that's another thing.
Daniel: Yeah. I I I would guess that there's there's gonna be a mix for for some time. You see this also with the, you know, existing software vendors who are trying to figure out how they show up within within agents like a NetSuite or a Salesforce or whatever. You see on on the one side them officially supporting MCP interaction with their platform because they they see maybe, well, the value of our platform is how we manage this data, how we create functions on top of it, the ability to do actions within this environment, and the interface through which people do that like an agent really, like, we're or or the value is in the the platform and that data, not so much the web interface through which people interact with the product. But then on the other side, you see the same individuals, you you know, the same companies creating proprietary agentic things in their web, you know, web app, which you you can't swap out, to your point, you can't swap out the, know, in many cases, you can't swap out the underlying endpoint to change out the brain to to to your point.
Hamza: Yeah. Yeah. Because the brain ultimately is commoditized. It's like electricity. So what what else are you gonna make the next whatever, like trillion dollars on?
And and that's the whole stack. Right? And we we haven't even gotten to the point where so this is all local. Right? This this revolution is happening December 2025.
We we come into this era of suddenly this works. Right? Excuse me for the language. Mhmm. And then it's like, okay.
So what what has started working? So we have PIE and we have OpenClaw, and the innovation is that it's running all the time. And it has a heartbeat and it's like, it's managing memory somehow better. And, okay, what what did we actually change? Or we changed the RNS.
We so the the somehow, like, Peter Steinberger and, Mario and Armin, like, guys, they had better ideas how to manage that program, which just caught fire. And, yeah. And, you know, we haven't even gotten to the point where let's get these things out of the computer and into a Kubernetes cluster or something.
Daniel: Yeah. Yeah. Super, super interesting.
Sponsor: Sometimes the gap between AI generated ideas and production ready work can be really frustrating. Agents can produce things that aren't editable and don't live in your core workflows.
That's why I really love what our partner Framer is doing with the way they're integrating agents into their website platform. Agents work in the same place where the real site is designed, managed, reviewed, and published. It lands on a canvas, stays editable, and can be published when the team is ready. Framer is a complete website platform, not just a builder, so teams can launch and keep improving their sites in one place. Learn how you can get more out of your website from a Framer specialist or get started building for free today at framer.com/practicalai for 30% off a Framer Pro annual plan. That's framer.com/practicalaifor 30% off. Framer.com/practicalai. Rules and restrictions may apply.
Daniel: Well, Hamza, it was really good intro to, I I guess, just how to think about or categorize some of these things and the shifts that we're seeing in our mind. Let's go under the assumption that maybe there's even people listening to this podcast that have envisioned products that have agents in them, they're they're maybe building agents that they intend to sell into, sell into the enterprise or maybe it's part of, people in a larger company that are building their own agents for operational efficiencies or internal tools and they are picturing that that future that you described which is, hey, I actually want these things to run off my laptop.
I wanna be able to take my laptop, go into a meeting and not, you know, have to Yeah. Keep it up all the time for for my agent. So in that sense then, assume we have some of those agents running in in that type of environment, what are some of these, I guess, fragilities or or points about agents in in terms of how people are architecting them now, how they're building the agent harness piece that make them that make them fragile, not not durable.
Hamza: Yep. So so I think, first, we have to understand the different types of, like, agent workloads that can run-in the background. So if you're talking about a chatbot interface, which is or a voice agent, that's largely different from a personal assistant that's running and or or a deep research or an auto research that's just doing a single loop Mhmm. And and, you know, always on and and, you know, achieving achieving some outcome. So I think that for all of those different types of use cases, there's different infrastructural pieces and different ways to think about it.
So I would say that if it's a simple agent that's running, you know, online somewhere, I I think that I would personally default to something which is, very easy, whether that's using the model providers like Anthropic has Anthropic managed agents. They have inbuilt like routines and all those things inside the harness now so that you can that you can deploy and they take care of all of that infrastructure for you. Now when it starts getting more complex, where your workflows start looking a little bit more business process y, meaning you have a workflow, which is doing things like, okay, fetch an order here and, do some processing, with an LLM, which is an agentic loop here, and then do some post processing there. So then it starts looking a bit more complicated. And if you do that at scale, then you might wanna own that infrastructure.
So the first thing you do is sort of have an agent platform internally as an enterprise. And this, I highly encourage people who are scaling beyond single teams, to really invest in. Like, similar to MLOps where the people who build the best MLOps platforms like Uber, they won them their their markets. I'm not saying the manual platform was the reason Uber won the taxi game, but it was a big reason that they made, you know, things like search pricing and and, know, they were the best product out there in the market for a while. And I think the best companies will be the ones that invest internally to build platforms that can run these things at scale because simply the act of doing that informs you so much internally of what works and doesn't work for your particular business context.
Daniel: Yeah. And in that, I I guess the the set of things that you need to have in place to support that's let's say, I did wanna go down that path, I wanna own it. Yep. Like, what are some of the main sets of things that, like, need I I need to be thinking about, I guess?
Hamza: Yeah. Yeah. So so the first thing is you need to pick your harness or you need to give your teams the ability to create, you know, using an agentic framework, whatever. Let's say you're using Lang Graph or Pedantic AI or something like that. Then you need to deploy it onto some compute target.
Let's say you picked something, probably you have other applications running, so probably you use the same thing, whether that's ECS on AWS or whether that's a Kubernetes cluster running somewhere. And now you have an API, so you have a REST API. I'm more of a Python guy, so I'm gonna give Python analogies. So let's say you have a fast API application, you have a post REST call that kicks off an agent, and obviously, first failure mode that will happen is that, you know, you can these these things are not quick requests, restful, that just, you know, execute in milliseconds. These are very stateful processes that run for a long time.
So they can't run-in process. Right? This is this is where you start to farm farm out things architecturally to things like workers and task queues. And when you when you start thinking infrastructurally like that, then you need to think about, okay, what is a task queue? How do I is it a pull based system?
Is it a push based system? So this is just we're in the realm of how do we how do we actually execute this so that at a certain scale, it keeps working. Mhmm. Then, obviously, you have this, you know, a very simple task queue would be so so imagine you have you have an API, and you just, directly from the API, you spin up a worker. Like a salary worker.
Well, you don't wanna be doing that because what if the worker goes down? Because at scale, the workers can go down for a number of reasons, like network failures, or maybe the pod didn't exist at that point because somebody was using your underlying compute for something else. So a very normal one on one architecture is just putting a message queue, a message broker in the middle of that. So you have a bus and the fast API server, which is the entry point, puts events on a bus, and then these events are durably persisted. And then you have you have workers that can spin up and down.
And you know, you can do an intensive task like an agentic loop inside that worker. From there, you have this problem that, oh, this system is very hard to update. It's, it's, you know, you have to ensure things like idempotency and, you know, you you may need to make that system more observable. So for for example, if you're processing a file upload and suddenly you have a multi workflow system, like your task consists of two steps rather than just one thing. Like maybe you're calling something at the beginning and then you're doing something else.
So suddenly you have dependencies between the workers. So suddenly this complexity starts to explode from a very simple, oh, I just need to slap a queue in front of my fast API to, okay, I need a DAG, like a workflow execution thing. Right? And then and then you're like looking at it like, okay, how do I make this DAG orchestration thing work with my harness? And how do I, how do I make things like in flight updates?
Like what if I, my agent up, like, what if there's a long running task for thirty days, right? And you know, that's running for thirty days. I mean, most tasks are not running for thirty days, but they can very soon, right? And what if then the the next person kicks off another thirty day task, but that's a different you've updated the code. So what happened in the thirty first day?
Should I use the latest code or should I use the old code that's version to that agent system? And, you know, what happens is within the thirty days, the LLM model gets banned by the US government. I'm gonna keep saying that because I'm with The US now, so it's Yeah. So, yeah, I mean, there's a whole plethora of problems that start happening from the infrastructure perspective to make things really reliable, and that you don't just write defensive code all the time. Like, you don't you don't want your developers to be writing defensive code.
You want them on the offense, writing use cases.
Daniel: Yeah. And what about, I guess, the and I really liked how you framed this when I was looking through the Kitteroo pages and and docs, is like, there there's a lot of questions that you could could be asking, like what if the tool calls time out? What if I don't use a a re ranker? Can I use a cheaper model for there there's a lot of, I guess, developer side questions that that come up? Certainly related to some of those things like the supply chain thing you mentioned about, you know, a model being all of a sudden identified as a supply chain risk, which I think is a very is a very real one.
But there's all these other things. There's so many possibilities of how you could update your agent harness. It's very much, I I mean, I remember just when I would teach workshops and just talking about ML models or single LLM calls, I would get pushed back saying like, well, how do we test these things like rigorously, right? They're nondeterministic and they like, I they could return anything and you know, I having a background in physics, I I was like, it it's hey. We wouldn't know a lot about the universe if we weren't able to test things that were were nondeterministic.
Right?
Hamza: So I look look. This is I mean, you're so right because I was lingering too much on the infrastructure side probably. Like, the developer side, the things that you're talking about, is post factum that once those things are running Yeah. So you have some notion of stage Yeah. Then you have
Daniel: some a multi layered problem. Yeah. Yeah. There there is the infrastructure, and there is, like, both interact in interesting ways. Yeah.
Like in in the way how long something takes or how it times out or whatever certainly related to network and infrastructure, but then there's all of these choices that you can make within the agent, right?
Hamza: Yeah. Yeah. I'll give you a good example. I mean, imagine you have a coding factory. Like, this is the buzzword for AIE right now, right?
Coding factories. So we're gonna automate software engineering, and imagine that an agent is running in such a system that I described in Workers, and suddenly it obviously has to execute code. Right? So it needs a sandbox, and this is why the sandbox providers like E2B, Daytona, Model are so popular nowadays because you need a sandbox to execute arbitrary codes. So that's another problem suddenly that appeared on the infrastructure side.
And now what, what if the file system that you're editing the code, you fail before you can commit the code? Like, how do you, how do you get back to that state? When, you know, 20,000 tool calls in, cloud code is almost about to finish the feature and it just suddenly fails. And are you mounting the file system into the pod? Because this is not your machine anymore.
Right?
Daniel: This Yeah.
Hamza: Yeah. Yeah. Typically, pods die and and then how do I like, even if you get to the end and it finishes, like, what if somebody looks at that and says, this is a feature. Like, this is not what I wanted. So how can I go back and evaluate, to your point, like, how can I go back and evaluate, hey, could I have done this faster, cheaper, better if I had done an experiment of using GLM maybe instead of GPD, or maybe I I wanted a different tool call?
Maybe I should've given it so many tool calls, it got confused. Maybe just let's give it two calls and start again. So Yeah.
Daniel: Yeah. It's, and I think that would be especially true if you are moving from this, like, this is my personal agent, which I can look at the output and then maybe provide, you know, I I can actually commit to memory or skills or that sort of thing. Like, this is how I want it to go. This is how you should do things. This is Yep.
But it's another thing if these are more autonomous, they're operating in the enterprise environment or like I'm a software vendor and I'm creating my own, you know, my own agent, which is my product, my IP, and this shouldn't just be like a general purpose agent. Right? Like, there should be an opinionated take on on how to these these things in this vertical that operate better because I'm infusing actual opinions into the harness.
Hamza: Yeah. Actually, is the biggest unsolved problem, right, Dan? Like, I I mean, you've probably been building agents for years now, so I still am terrified updating my agent in production. I'm terrified because I have no idea. Have literally no idea given the entropy in that system
Daniel: Yeah.
Hamza: How I can even adding a word to the system prompt what would happen. And that terrifies me in a world where you have hundreds and hundreds of millions of these things running in enterprise in flight. Right? And suddenly, have to you have to task the poor agent developer to grok all of these context states. It's a very stateful application.
And try to make an educated guess as to how to update the system in a way that wouldn't break for all your customers. It's almost impossible, right, without given the right observability, given the right ability to go back in time and introspect and, you know, try to run some of these experiments. I it's like you you need to have some sort of a simulated, I keep saying the physics words, entropy is just simulations. So yeah.
Daniel: And and and that's some of what you're doing with the KITTEROO, right, which is this could you explain kind of maybe just introduce a little bit of the the idea behind that? And I I know there's some really interesting things around replay for for example. Yeah. But, yeah, would love to hear more about that.
Hamza: So, yeah, Kidaru comes from this concept of, you know, so it still uses XenML. So XenML is our open source product that's been running in production for enterprises for five years now. So we've really, we sort of know how to do workflow orchestration now. So we, our task this year was how do we convert that into using that engine in a way that's ergonomic to agent builders and sort of try to answer or try to take opinions on some of the things that we just spoke about. So Kiteru is, is built on top of ZenML.
It's a new SDK and a new, UI that works almost from the harness backwards. Because I think very important is the harness layer because that's what most people are, is the entry point to agent building. And a lot of the opinions taken in that harness layer, actually, as we just talked about in this episode, it do matter a lot at the infrastructure layer. So our goal is to build an open runtime that allows you to take any harness, any and deploy it in a way that you don't have to think about some of these problems. And then on top, it gives you all these goodies of replay.
And how we end up doing that is turns out if you hook into the harnesses, there's certain checkpoints in state that you can snapshot and store while you're running it on, let's say, a Kubernetes cluster that will make life a lot easier once those inevitable failure modes do kick in. So the first first order of business was how do we get the best world class adapters for all the popular harnesses, like Anthropic Agents SDK, OpenAI Agents SDK, that you can just drop Kitaru as a runtime in, and it gets it from your laptop out to the production. And then when it's once it's running, it makes it resilient to tool calls failing in the middle of an agentic loop by storing that state in an external database or or a blob storage. And once we have that state, then we have all sorts of interesting questions like, you know, like like we already talked about. What if you wanna mock a tool call or if you wanna change the replay, like replay a different model and drop that in the middle of your trace?
And this is a very interesting problem anyway, like from a scientific perspective, because if you change the model midway in a multi turn conversation or a multi turn situation, then what ends up happening is that you never really know that the model that the agent would have ever gotten to that point if you had started with a different model anyway. It's it's anyway a broken experiment. And also the problem is that when you replay from the middle, you have certain like, if you swap out GLM with cloud code, like, the the harness differences also make it just hard to just start again from that point anyway. So so there's a lot of code that we have to write in order to make that experiment somewhat, you know, feasible. And again, it's not perfect and we're still working with our customers to to make it good.
But given that you're grounded in your production traces, production executions, and you have a big enough sample size, you could then, like, have seen early signs of where you could just say, oh, I should have just used an open source model or a smaller model, or I should have just swapped out some of the tool calls and made it a bit easier. And I would have gotten a better and cheaper result in place of that.
Daniel: Yeah. Do you view this as, what's the way to put this? So, like, I think of, you know, taking it out of the AI agent world into, like, manufacturing, you have like a pipeline, in your manufacturing or a line in your manufacturing plant, there's always gonna be a bottleneck in there, right? And so often what people recommend, right, is you find the bottleneck, you ignore the other things, you address that bottleneck, and then you have a new bottleneck, right? So one way to approach this would be that way.
You could also approach this and look at, well, there's all these things happening, right? And it's really, yeah, there's of course all sorts of optimization theory on like how to optimize things, but like there's all sorts of things that are actually coupled together, right? If I optimize this, then that gets faster, but creates a different, you know, a different problem. So, like, what have you noticed after actually having, which I think a big piece of this to your point is like actually getting visibility into into what's happening, but then comes the next question of, well, now what, right? What are the best, and maybe it's a part of, like, we don't know the best practices around addressing some of these things yet, but.
Hamza: Yeah, yeah, I mean, exactly, like, exactly how I imagine it as well. It's like playing a game of whack a mole and trying to sort things out. So when when you fix one thing, another thing breaks. I I think the first order of business, as I said, checkpoint everything. So that's the durability aspect.
Right? So, I mean, obviously there are latency concerns. You need to be efficient about it, but checkpoint everything so you can look back. And then I think it's almost humanly impossible to do all the experiments. So you've got to get agents doing that.
Right? So I think our goal really in the future is how can we close the loop from like once, because you sort of know the outcome, right? You want a cheaper, better, faster model agent at the end of the day. So we have the production executions, the traces. And the first thing I ask people to do when they're using Gitaroo, I'm like, run it for a week.
And then after a week, just filter for the most expensive traces, which were successful, voted by your customers. Go through the checkpoints and see the bottlenecks, just like you said. And figure out the common failure modes and then, you know, go from there. But obviously, my goal is not that humans do this. Our, you know, we we shipped an MCP CLI day one of Kiteru because we know that eventually that problem needs to be solved by other agents that sort of are embedded in that loop.
So my ultimate goal is you have every time you launch an agent, you have a companion, like a a companion, a nurse agent.
Daniel: Trainer. Yeah, it's a loaded term, but.
Hamza: Yeah, exactly. I mean, something like a trainer that's constantly looking at, okay, what is this guy doing wrong? And then running experiments in the back, replaying things, and constantly editing that thing. I mean, we're very far I mean, to be clear, this is a this is a this is a dream because then, you know, your agent builders can start from a really state and get to a very efficient state very quickly. But I think we need more tooling and infrastructure to make that possible because that is eventually the future.
Daniel: Yeah. And and I guess that does get to, you know, a really good place for us to kind of start wrapping up the conversation, which is as you see the current state and you look to the future, maybe on both sides of this, like what's one area where you're really encouraged and you know, it excites you of like, hey, things are going in this direction and I'm really happy about that, and this is maybe what we could expect. And then maybe something, like you said, oh, if if we could solve this, if we could move this big rock, like, that would open up a lot of a lot of opportunities. Any any thoughts?
Hamza: So I'll I'll start with the the thing I'm, less optimistic about for now as an industry because and, you know, I'm you catch me at a very opportune time right after this. I'm gonna go to the AI e conference. Right? So I'm gonna be at the world's fair and walking around the expo. It strikes me how many people have different takes on solving the same four or five problems.
So I think we're at this fever pitch of like we have, we're in MLOps in 2021 when Chip Huynh, like maybe we can drop that article in the, in the show notes.
Daniel: It's a
Hamza: very good, it's, it's, it's a very good, yeah. Yeah. Like when we had an explosion of tools, when we had these MLOps problems and investor money came in and then, you know, it was just extremely confusing to figure out the modern MLOps stack or on top of the modern data stack. And I think that this is why, I mean, we're sort of contributing to that noise, right, by being by taking opinions. But I feel like we are very early in deciding the canonical ways of separating things like the harness and the infrastructure and the deployment paradigms.
And I'm less encouraged by that, by the model providers taking such aggressive stances on how to deploy things how aggressively they make things hard for other vendors to be interoperable. Although there are some good signs sometimes, but you know, it's just they're pushed into the harness, and when you're pushed into the harness, you want everything running on your infra, and I I think that this is this is this is a slight negative economical impact. But on the other side, okay, here here are things where I'm where I'm very optimistic. We have amazing open efforts with open source models. Take min like, mini max or or, like, take the Kini models or or or or or take something like GLM coming out of, like, China right now, but hopefully also The US and and Europe with Mistral that that have made it very economically viable to start, like, start ex like, the the enterprises have started to really take it seriously to replace that the the bigger model providers with their own systems.
And I think that's going to be eventually where when they start thinking, okay. We need to have system engineers that think of that problem and and start playing around with and fiddling with the other pieces like the harness and the durable runtime. And I'm very encouraged by by the fact that we have now performing models that are just this is like two weeks old. Right? The GLM is as basically 95% of OPUS 4.8, which is just phenomenal.
Like, we we are we were at a trajectory that that was very far away. But in a world where you can have sort of the same performance with open models, then I think you see more investment in creating internal platforms that can deploy those agents. Then open harnesses will be a huge thing in my opinion, because a thing like PIE or a thing like, OpenCode or something like that, or even specific harnesses for law or for science or something will probably explode in growth. And suddenly you have this thing where people will start realizing that actually investing in internal infrastructure at the enterprise level is probably going to be the competitive differentiator in a world where the tokens regress down to the cost of electricity and the models become commoditized. And and and this is I'm extremely, extremely encouraged by by the recent progresses around that.
Daniel: Yeah. That's that's, I think, a great perspective, and I think it encourages people also that are listening to the show. Please check out these these open, projects around, open harnesses. A lot of them are even linked in, the ZenML website and and integrations that they have. I encourage you to check out the ZenML website, site, you know, try some things in your own environment.
It's never been easier to spin up some of your own tools and infrastructure and try things, and would encourage that. You'll find some links in the show notes. Thank you so much for joining us, Hamza. It's been great.
Hamza: Thank you for having me.
Narrator: Alright. That's our show for this week. If you haven't checked out our website, head to practicalai.fm, and be sure to connect with us on LinkedIn, X, or Blue Sky. You'll see us posting insights related to the latest AI developments, and we would love for you to join the conversation. Thanks to our partner, Prediction Guard, for providing operational support for the show.
Check them out at predictionguard.com. Also, to Breakmaster Cylinder for the beats and to you for listening. That's all for now, but you'll hear from us again next week.