Jacob Luetzow: What's up? I'm Jacob Litzo, your Elixir Mentor, and welcome to another exciting episode of the Elixir Mentor Podcast. This is where we discuss everything related to Elixir from interviews with enthusiasts and pioneers in the community to innovative projects and libraries shaping Elixir's future. All right. ⁓ I don't see myself again. I always do this. ⁓ anyways, today's guest is back for round three. ⁓ since we last talked, you've been busy. ⁓ you've shipped Jito 2.0. We're gonna be talking about version three today, I believe. And ⁓ yeah, let's see. We got Mike Hostettler back, ⁓ the chief agent officer. Welcome, man. Mike Hostetler: Yeah, thanks. Glad to be back. It's fun to see you again. We got to meet in real life recently, too, at ElixirConf. Jacob Luetzow: Yeah. I was just gonna say that was exciting. Mike Hostetler: It's really good time. Jacob Luetzow: Got to meet all these nerds in real life. All right, let's see. I'm still learning how to use Riverside, but you know the quality afterwards, even if the live stream sucks, is so much better. So I'm pretty happy. It like auto edits for me. It it moves like if it's just me talking, it'll be like, you know, full frame me. And then it, you know, shoots back and forth. Yeah. So yeah. I don't even know where we really start. Mike Hostetler: Nice. Got some automations in there. When did we talk last? 'Cause it's been several months, probably Jacob Luetzow: ⁓ like August? No. Mike Hostetler: Okay. It's gotta be vlogged out like I'm thinking March, April, right after G0 two w went live. Jacob Luetzow: I think it was right before Gido Two went live. Mike Hostetler: Okay. Yeah. So that's a lot's happened. It's been a busy year. Jacob Luetzow: I know. Definitely has. ⁓ I don't even all right. I have a bunch of notes here. And so let's see. Okay. So Jito 2.0. That went live. How did that go? What was different from 1.0 to 2.0? And how painful was it for people to ⁓ change over or to update? Mike Hostetler: Yes. Yeah. So one point ⁓ I I think was this thing that I had some people have known this known the story, rewind a couple of years and I had a ⁓ I I won't even call it a framework. I had a bunch of Elixir bots that I was building for a blockchain company that I was working for. And I took those when the AI kind of wave hit, rapidly threw them together and shipped Jito one point ⁓ And so a lot of the initial ideas ⁓ kind of came out in 1.0. And JIDO 2.0 was ⁓ the first refinement that formalized a lot of the framework into pieces that could be kind of built and scaled upon, answered a lot of the extra questions. How do you fit into the rest of the Elixir ecosystem? How do we do official kind of React agents and have a React loop involved. How do you bring in other tools and finish that? And the launch just happened to be the same week that the OpenAI Symphony project was launched and mentioned as a software factory that a couple of developers from OpenAI built. They hooked up the linear project management tool. To an Elixir control plane, and then we're orchestrating Codex agents to get work done. And that was all in Elixir. And that project went viral. And I had already been planning and prepping to launch Jito that week. So the the launch attracted a lot of attention because you mentioned agents in Elixir, and again, there were a lot of eyeballs. ⁓ so much so rose to I think number two on Hacker News and took down the server. That I had the the documentation site on. So yeah, it was embarrassing that you know I've been doing infrastructure a long time. I should have been prepared for it. I fixed it in a few minutes, but sure enough. ⁓ so now we run two servers and that scaled and ⁓ should it hasn't happened since. So I've been prepared for nothing at this point. But I I think the we were Jacob Luetzow: Wow, look at this guy. I didn't I didn't realize I had such a famous guest on. Mike Hostetler: re just starting this kind of blossoming moment in AI coding. And so ⁓ a lot of really cool things were built on top of those four core packages JIDO Action, Jito Signal, JITO and Jito AI. And a lot of again, kind of really cool things were were built off that. Companies started to adopt it. Open source projects started to adopt it. And ⁓ that was kind of the a a moment where Jito came into its own. Of course, you learn a lot of things along the way and we'll talk about Jito three and some of the things I've changed my mind on since then. ⁓ but it was a cool moment to see it being picked up and used by so many different people. Jacob Luetzow: So I feel like I can't keep up with you. And we talk a lot, right? It's hard to keep up with everything you're doing. But I feel like you do a lot of like stress testing and a lot of new approaches to how you're leveraging AI and you know, spinning up your agents. And you went through like this the Ralph Wiggham loop stuff, right? Do you want to explain like what you learned through that process and like what doesn't work doing that? Mike Hostetler: Yeah. Yep. Yep. Yeah. Yeah, yeah. So man, that's a where to start? I would I would say it's probably most useful to start with an example. And Elixir so I in my in my coding life, I work on both Elixir and TypeScript. And so I have this unique perspective of doing both regularly and being able to compare and contrast both. while using all of the state-of-the-art models. So ⁓ when I'm using coding harnesses, I've used and have gone back and forth as I've kind of swapped around my own tool set. ⁓ but I'm regularly using kind of the latest models that are coming out and then being exposed to some of those latest techniques, like you said, the Ralph Wigan loop and getting the my reps in. So my kind of takeaway number one that I would maybe share with the audience is that there's no Other alternative to just putting in the time. I've never seen something in software engineering that requires this, you know, just logging the hours of working with coding agents and look working with coding harnesses to feel out the differences. Each harness is different. Each model is different. You know, codex soul 5.6 to soul six to soul 6.1. to Astra, to ⁓ Fable, to Opus. And you know, the if you've seen the memes of the crayon designs of the Opus drawings and how effective they are, you'll know this, but you'll know it because you've put in the time. And that's sort of lesson number one. You can't really do a drive-by anymore with these tools. And ⁓ in my position and and the what I tell my team now is you just have to put in the time. Jacob Luetzow: Mm-hmm. Mike Hostetler: The second thing I've learned is the value of really reading the code. And there is this push between, you know, anti-slop, how do we continue the craft of software engineering while having these tools now that write a lot of code. And so the engineering, in my view, has shifted from simply asking it to write a lot of code into how you shape and guide. the orchestration of these agents and the prompts to write better code and come out with higher quality code right out of the gate. So we're go back to that Elixir versus TypeScript. In my experience, all the models in general are better at writing Elixir. I don't know if it's because of the functional nature of this. This has been referenced a couple of times. There's a couple of research papers to back this up. But the output when you one shot ⁓ prompt between Elixir and TypeScript, I find that I'm generally more satisfied with the Elixir output. Jacob Luetzow: I'm curious what is your take? I agree. Like it's better at writing Elixir than like JavaScript or TypeScript. but then when you add the Ash framework in to Elixir, I feel like that's even a superpower, like it steps it up to even be better. Mike Hostetler: Yeah. Yeah. So this gets into where I've come to believe is the difference between declarative coding and imperative coding. And ⁓ I was tweeting about and reading Joe Armstrong's blog last night, because we're in a group chat talking about this. And and the one of the first lines in one of his blog posts was that imperative coding is really hard. And I'm coming to agree, but it it's important to explain why. So as agents are trying to Go through the process of reading a block of code that's written in an imperative style versus a declarative block of code, whether that's in Elixir, so think a you know Phoenix context versus an ash resource, declarative versus imperative. Why is the agent more effective at outputting declarative code than imperative? And I again I don't have the perfect answer. I'm not a machine s ⁓ like data scientist, machine learning researcher. My knowledge on that kind of goes down to a certain level. ⁓ but for me, I've just seen the results and it kind of makes a little bit of intuitive sense that if you're have a piece of code that when it validates itself at compile time, it can you know check whether check its work. Jacob Luetzow: Mm. Mike Hostetler: And so this is kind of that next principle that I've learned is that you have to really introduce agentic back pressure into whatever loop you're engineering. So Jacob Luetzow: And what do what do you mean by that? What does that look like? Mike Hostetler: So it it takes it's project specific is the hard definition. And I'll explain both how I've done that in the past and how I've I'm I'm building that into my kind of core thinking and how I've built Gito V3. But it's again problem specific. So in my Rec LLM package, I built in this check. And as I was I've told the story before, but I I got stressed out writing that package because it's like how. How can I ship a piece of code that says it's going to work with this model out there on an anthropic API when I know that that API is shifting like sand underneath? And they sh they shift. If you see the repo, they shift. So I ended up engineering an elaborate fixture system that could run both JSON fixtures of the HTTP request response with a little bit of. Jacob Luetzow: Mm-hmm. Mike Hostetler: adjustments, but we'll get to that. That's another rabbit hole of a topic. But I wanted to be able to take the raw API response from Anthropic and make sure that the Rec LLM library parsed it and returned what I expected. And so that process is really what saved that library and I get some compliments on it now because of its quality and the quality is really due to that fixture system. And that fixture system calls Live APIs, every time I run it against 15 providers now, I burn 20 to 30 bucks every single time. So I run it maybe once a month just because it's not something you run in CI. And it turns out to be really effective and catch bugs. That okay, this API shifted. And then when I report, you know, RecLM supports 1200 models available on the internet, that's where I get that number. So I'm able to sort of stand up and say, yes, I've tested this against live API calls. The response is what I've expected. And it doesn't catch every nuance and corner. But that principle applied to that project, because the nature of the project is API LLM API requests and coming back in the right way, that's agentic back pressure. Fast forward into something like JITO, what is agentic back pressure look like? Jacob Luetzow: Okay. Mike Hostetler: I have a elaborate suite of examples. I have an entire property and fuzz testing suite. So I see and I've directed a lot of my tokens to building out what I call acceptance code. And so acceptance code can take the form of your basic unit tests, but it can also take the form of ex ⁓ property tests, fuzz tests. I've done a lot of DSL authoring tests. So one of the Jumping around a little bit. Gito V3 is using the same Spark library that the Ash framework uses to write its own DSL. Because I've come to believe in this declarative approach to coding and some of these base objects. And again, it's the right tool for the right job, right places to put it. But for defining an agent, Gito V3 has really adopted the same approach as the Ash framework. By saying, here's a DSL that defines what an agent should look like. And then everything is derived off of that. Agents are very good at writing it now. So I don't have to wait till Gito V3 makes it into the model training. It now has it all of the tools at its disposal to go write a bunch of Gito agents in the same declarative style. and take advantage of that property of that agentic back pressure that's built into how the models and harnesses work. Jacob Luetzow: Do you think it's like the opinionated, like it's this way, this is how you have to do it, and it's that repeated pattern that agents or LLMs like? Mike Hostetler: There's some ⁓ they they like feedback. So these stochastic models, if you think, and this is where I get a little bit out of my depth with how neural nets work. I've read on it some, but if they're guiding through this kind of latent space of training data, open weight training data, it's navigating and trying to decide how to predict the next character that comes out. And I know there's more to it, reducing. Jacob Luetzow: Mm. Mike Hostetler: An LLM down to a next character prediction model is again overly reductive at this point. I'm not suggesting that entirely, but that's that's part of the tool you're working with. And I think it's important to understand how that works. And so as the next the tokens are being predicted for what comes out, it's navigating through that space. I think that it's easier to write declarative code. And then it can write something. And get immediate feedback on how it should work because it's all validated at compile time. And one of the things that the Splode library, or excuse me, not Splode, Splode's the other one. That's the error package. Spark, ⁓ one of the things that the Spark library gives you is these really rich ⁓ kind of feedback mechanisms when you're trying to compile this DSL. And so being able to utilize that and provide. Jacob Luetzow: Mm-hmm. Mike Hostetler: ⁓ this layer to define the DSL underneath the covers it's still the same JIDO action or excuse me jeto agent map ⁓ and data object but it just is a different authoring form. And so once again agentic backpressures come into it. I have every agent definition in my test suite I implement in both the map based form, in the DSL form, And then I test that as I author those, as I compile them, they all work the same. So that's a gentic back pressure for Jito, one of the forms. Jacob Luetzow: I I feel like I the way I leverage AI and everything is like very basic. I keep my I keep things simple and when things work, I go with it. So like I'm really bad at exploring like when new models come out, like from codex to anthropic, whatever it may be, I still like stay in my lane. I'm like, well, it works. Like I'm getting my features written. I'm happy with the code. So I'm like really bad at, you know, getting excited. Mike Hostetler: That's fine, yeah. Yeah. Jacob Luetzow: about all the new stuff coming out. And so I'm kind of curious, like someone like me, I I have my planning modes and I send my agent off to work on features and everything. I still manually review. I I I started using CodeRabbit too to help do some PRs. And I'm actually really impressed with it because review has been a pain point. I think like if you just have clawed code review or like Copilot, they kind of suck. Mike Hostetler: Nice. You like Code Rabbit? Yeah. Yeah. Jacob Luetzow: Because they like lack context and digging through the code. And I actually learned this at ElixirConf ⁓ from the PDQ team. CodeRabbit will actually like follow functions and new code through old code. So they get a little more context to what's happening. And the reviews I would say are like 90% solid. Like 10% is kind of noise, but it's better than what you get out of like a clawed review. Mike Hostetler: Nice. Yeah. We're in the process of implementing at work. I've not pulled any code review ⁓ tools into any of the JITO repos. I've I do a lot of like a local code review and I have ⁓ some project specific code review that I've done. Like I have one for Rec L LM because that has a volume of PRs that come in. And so I you know I'm able to process through those pretty quickly. But Code review is it definitely seems like the squeeze point now. ⁓ but dialing it in and being able to give it that context is a big part of I think what's needed to, you know, push back on this stuff. Yeah. Jacob Luetzow: Mm-hmm. And I feel like that's always been the pain point with LLMs is context, right? Like how much can you hold? How much of the project do you actually grasp and understand? ⁓ okay, so back to what I was trying to get at. I use it like very like, okay, go and do this. And I'm the orchestrator, go and do this, go and do this. What would I ever want to do to change how I do that to implement. Mike Hostetler: Yeah, yeah. Yep. Yeah. Jacob Luetzow: like Jito agents. Like why would I ever need a hundred agents, a thousand agents, whatever it may be? I know you're always talking about ten thousand agents. When do you start leveraging systems like that or harnessing the power of Mike Hostetler: Yeah. Yeah, so Two different use cases, and I will kind of give you my kind of mental framework on this. There really is in all of the agents I've seen, all of the agent deployments I've seen and applications, two big buckets. The first is engineering, software factories, ⁓ and building, writing, validating, and deploying software. And then I would say everything else. I think that in the software engineering use case. you are in a good spot. So based on what you're saying. Because despite you know the wild predictions and marketing from Anthropic and AI ⁓ OpenAI and some of the other companies that are heavily incentivized to declare that software engineering is dead, I think software engineering is really kind of headed into a renaissance where the coding part of our jobs is getting Less expensive is what is the term I would use. So if our time was spent planning, thinking, problem solving, and then 50% of our time had to code up and verify the solution, now that amount of verifying the solution can drop. So you're spending 10 to 20% of your time coding. And the balance of that goes into engineering the system. Jacob Luetzow: Mm. Mike Hostetler: And I your software engineering skills translate really, really well to the problem you just described: of how do I take these actors? And I'm gonna get on my actor soapbox here in just a second. How do you take these actors and have them assemble into an orchestra together to make music? And that skill, despite what you may see on social media or in some of these group chats. is very very early and I see a lot of the s craft of software engineering moving into engineering the orchestration of these coding agents. And we see a little bit of that now. You see tools like Herder get funded as a orchestration control plane where it's just two ease. It's like a new TMUX. Or some of these other ⁓ like T3 chat by Theo doing really, really well because it Jacob Luetzow: Mm-hmm. Mm-hmm. Mike Hostetler: solves and gets into that pain point, day-to-day pain point of how do you coordinate multiple coding agents to get work done and get it done more efficiently. Well, even you know the majority of software engineers simply using these tools to help make their life a little bit better every day is resulting in huge gains across the industry because software engineers need to validate the output. And the cases where validating the let's say you're gonna automate a bug, automate a bug fix. ⁓ to be able to really automate that end-to-end, let's say it solves 50% of your bugs because of the way you've orchestrated the pipeline, like that's a huge benefit. And you're gonna need to stay close to your coding agents for the other 50% because there's still some nuance that the models don't get. And I that's why I think software engineering isn't going to scale much beyond these orchestrating what I call maybe up to 10 to 20 agents, sub agents, and typical orchestration patterns, because the human still needs to stay close to the work output. Because there's still so much of a design element that happens. I you're you're the conductor. Yes. Yes, you're the conductor. And I think in that Jacob Luetzow: Right. We're the bottleneck. Well, or like maybe the control the traffic controller, you know? Yeah. Mike Hostetler: Case, bottleneck is has a kind of a negative. That's the back pressure. It's the human back pressure. Absolutely. That's a much better way to put it. So then you go to the non-coding case, and this is where I think 10,000 agents is really going to apply because economically the benefit and the type of work that agents can take over outside of software engineering has a much higher ceiling. Jacob Luetzow: Is good. That's the back pressure? Is that your back pressure? No. Mike Hostetler: And there's a whole bunch of things in our economy, if you know where to look, that I think are gonna be automated by agents in the next decade. Same case where humanoid robots are gonna come in and automate work. You're gonna see a tension between this whole Jevins paradox thing of if I bring five robots and do I replace people or does it make my people more productive? I think the world's gotta figure that out. And I think that's a bigger topic than we wanna opine on today. But I think that agents in that case of moving information around, of agents being on social media, of agents handling basic day-to-day life chores to make our lives better has a lot of potential. And I would say that that's ⁓ where I'm increasingly focusing Jito. I am building a harness. ⁓ we can talk about that too, but That's I think JITO a and the actors and agents that are gonna live and the ten thousand agents per human vision is gonna be far more outside of software engineering than inside of. Jacob Luetzow: Mm. Dogbone too has a question. Does anyone even I like Dogbone Two? ⁓ does anyone envision cross organization actors, public actors, a public actor mesh? Mike Hostetler: There you go. Jacob Luetzow: That's the question. A couple of questions in there. Mike Hostetler: ⁓ the question has been posed. I've seen cases where agents have been given identities using some of the federated social media protocols like Activity Pub and then they talk back and forth. ⁓ yeah, it's questionable whether it's useful and how helpful it is. ⁓ but I think that people are sniffing around in that area for sure. I watched a the ⁓ tweeted about a Talk that Joe Armstrong gave in 2018 about TiddlyWiki and agents and how he was thinking about marrying these two concepts up. ⁓ you can find it on my ex profile. But I think I think there's a you know, we those of us who are in it, it both simultaneously feels very fast and very slow. Yes, the models have gotten better, but have agents been able to do more than We originally envisioned eighteen months ago? Nah, not really. I I would say there's some cool tricks, but Jacob Luetzow: I was just gonna say I think we're like just as engineers are leveraging what we have to do cooler tricks with them versus it I don't know. Mike Hostetler: Yeah. Correct. Yes. Yeah, we're right now we're still in the phase of making faster horses. Jacob Luetzow: Yeah. Yeah. ⁓ do you wanna let's dive into actors. What does that mean? What is it? What 'cause that's like the premise behind Jito, right? Mike Hostetler: Yeah. Okay, so yes. So and I've I've begun to ⁓ lean into this language a little bit more. And that is describing JIDO as both an actor and an agent framework. I would say that this is in response to the last this year, really recognizing that the word agent really does mean having a computer program where the behavior of that program is driven by an LLM call. And JITO has always rested upon this idea that JITO agents can be driven both by classical AI and LLM-based AI. And LLMs, as we've seen in some of the public filings this week, I think are going to be a lot more expensive. And so I've made a lot of effort to have GIDO be able to be driven by local LLMs and make sure that we are, again, kind of keeping up with the local LLM community. But also separating out that JETO agents can be driven by state machines or fine ⁓ behavior trees or some other logic that doesn't require an LLM call. This is what I'm labeling actors. Actors is an old idea. the Carl Hewitt paper is sort of the seminal paper on this that was I think it was the 80s. ⁓ and so Actors and the the mental model of writing software and thinking about software as actors on the internet rather than a server or i it's kind of a get a paradigm change, but I think that agents are really bringing back this concept and that again, not everything needs an LLM call. And for us to scale and a lot of the use cases I'm seeing in the business world, they don't need LLMs at all. They only need LLMs in the what I call the error case. So I've seen several cases lately where an actor is powered by rule-based logic, like classical old think video game NPCs is the best way to for your audience to think about it. And then you used to, when you had to design a video game, Halo 2, for instance, was a classic. Jacob Luetzow: Mm-hmm. Mike Hostetler: That logic for that NPC and the bad guys in Halo 2 had to be airtight, and that took a lot of work, which is why it wasn't used that often because it only really made sense in a blockbuster video game. Now you can put in 80% of the work and rely on an LLM to solve the last 20%, but yeah, it's a cheat code. Exactly. And Jacob Luetzow: It's kinda like your cheat code. You need like a decision to be made. You can leverage an L L ⁓ but not have the cost of as many tokens burning. Mike Hostetler: not have the cost. And then the final trick is once you have the answer to solve that edge case, you save that back. And this is where you get into, you know, self reinforcement learning and Jacob Luetzow: Would you consider this more like a like a your own like locally hosted LLM or not even that? Mike Hostetler: You could do it with a locally hosted LLM. It's more of in the program as you're interacting with this actor. The actor is using more deterministic logic, AI logic. It's still considered artificial intelligence. Behavior Trees is the probably the shallowest end of this pool, but there's a lot of other ones. For instance, ⁓ it was used in spacecraft. So NASA puts a lot of this classical artificial intelligence in satellites. Jacob Luetzow: I see. Mike Hostetler: To be able to remediate and solve issues that may happen in space when it takes 30 minutes for a radio signal to get to a satellite that's out exploring deep space. So ⁓ same idea, you can do the same sort of stuff, but a lot of Jito's core logic and engineering was geared towards this idea that you didn't need an LLM at the heart of the actor. Gito AI layers all that on, you get all the nice things that go with LLM based actors. ⁓ and we can talk about kind of where that's going with the Jito harness, but y you you could have both. Jacob Luetzow: This kind of this kind of ties into like the I the AI version of like fault tolerance or like that's kind of cool. So like you have a gap that you didn't discover till this exact moment and it can kind of self heal. Mike Hostetler: Yeah. Right. And agent frameworks that are completely built around LLMs to drive their behavior, when inference gets expensive, I think they're gonna be in a world of hurt. Or they're gonna have to use models and retrain to models that will, you know, cause them to rethink how the how it works or ⁓ whatever they'll need to do. So Jacob Luetzow: Mm-hmm. You could use agents to like triage production problems. And it could even self-heal and fix live, like hot reloads. Yeah. Hmm. That's cool. See, this is why Mike's my friend. I have to sit here and learn from him. ⁓ Mike Hostetler: For sure. Yep. Yep. There's been some cool Elixir projects to do this, yep. Probe a lot of fun stuff. Jacob Luetzow: Yeah, that's cool. So going from J02 to three, what what have you done? Is it simplified or are just concepts ironed out? Mike Hostetler: Yeah, good question. ⁓ so I set off to one was reduce the surface area and simplified. I felt like you know, when I started Jito, I knew I wanted to commit to three versions. And the third version would be where I kinda had learned enough of this new space, learned enough of how OTP worked that it was really, really high quality. I think I was able to accomplish a lot of my goals with Jito V2, but then V3, you know, there's some good feedback. A lot of community members ⁓ took the time to take a look at it deeply, give me feedback. And I really took a lot of that to heart in how I approached v3. And the first piece was that this kind of fundamental agent concept of a workflow was missing. And I A while ago now, over a year ago, found and fell in love with the Runic Library by Zach White. ⁓ shout out to Zach. Runick is again an unsung gem in the Elixir ecosystem as a stateful data flow library. Hey. ⁓ Jacob Luetzow: We have Zack White in the X chat actually. I wish it showed up. Apparently X doesn't show up on Riverside chat. YouTube does. ⁓ Mike Hostetler: Okay. Well, shout out to Zach. Runic's pretty cool. I had in Jito V2, Runic was an external add-on. And I get nothing wrong with that. That's just the way it was built and was ready via a Jito Runic package. And Zach and I worked together to map the nodes and the graph. So Runick is best thought of as like a stateful graph, and that's under selling it big time, but ⁓ a stateful graph executor. And we mapped the Jito Action into JITO Runic. So you could do these step by step workflow derivations and all sorts of fun stuff. I had long wanted to embed Runic into the heart of JITO and I was finally able to do that by ⁓ bringing Runic into JITO Action, which is kind of the foundational first floor of the JITO ecosystem. Through a new concept called a JITO flow. And JITO flow, ⁓ I've teased this on X a little bit, is a runic graph defined to execute a series of JITO actions in a workflow. So you can do all sorts of fun, kind of workflow-y-based operations, fan in, fan out, conditionals, and then This is baked down into a DSL. So that DSL can be and and this is kind of a core runic feature, not so much a JITO feature, be exported to JSON. So think Zapier type flows, but each node in that Zapier flow is a GIDO action. And then you can step through the execution of those actions and save the persisted state. of a half completed action or half completed flow, excuse me, because part of what Runic supports is the output of an individual action step is called a fact. And that fact can be persisted to a database. So you could at the JITO flow now start it, execute it halfway, save it to a database, and revisit it six months later to execute again. Jacob Luetzow: Mm. Mike Hostetler: You have to bring all that machinery. Jito doesn't provide that for you, but durable workflows is the fun word that people get excited about when they talk about this. And Jito needed better support for it. You can do it. There's some durable workflow tools that are built on Jito V2, but to really collapse all the layers and and do it nicely, I wanted to build that into the core. So that was that was a big part of the push to go from V2 to V3. For JITO Action. And then JITO Signal ⁓ was again a foundational piece. That was a lot of refinement and simplification. There were pieces in there that nobody ever really picked up and used, but the again a lot of it was useful. So I was able to cut down lines of code there. And then for JITO Core V3, this was a lot of kind of basic refinement. One was simplifying the model, adding in the declarative DSL for defining agents, and then adding a couple of other extra features along the way. Jacob Luetzow: So when are we seeing version three? Hit the streets. Okay. Mike Hostetler: Beta's are out on hex right now. So yeah, betas of Jito Action, Jito Signal, and JITO are out on hex right now. I with all the codex resets lately, I've got some resets to burn and so I have made some skills to kind of further and and burn some tokens because this the the resets expire. I so I figured out recently. So I gotta use them. It's a use it or lose it situation. Jacob Luetzow: So you gotta use ⁓ Mike Hostetler: So I dialed up some ⁓ Codex Astra Ultra threads, and I've been going through and hammering these libraries to just add in fixes and refine them and harden them, add in more property testing, add in more fuzz testing, add in more examples, and really build out that acceptance code to Jacob Luetzow: What are you using for ⁓ your fuzz testing? Mike Hostetler: I designed out and I for each library had Codex define and document the public API. So here's what each library offers as the public API. And then I only fuzz test those surfaces. So it's really the the outer boundary of how people would use the package. And then ⁓ yeah, that's what I've been doing property testing and fuzz testing on. I'm there's some there's some fun emerging stuff. I've been going back and forth with Jeff Huntley. He just started working for a company. The name is slipping my n mind right now, but that is leading the charge on some fuzz testing stuff. And so he's been putting out some packages and I've been testing those and looking at what we offer in Elixir and trying to, you know, balance the two. So Jacob Luetzow: Do you see a huge benefit in like using property tests and fuzz testing as you're like, I bet. Mike Hostetler: ⁓ it found a ton of stuff. I was surprised. Each yeah, each pass and suite found a dozen different little things. And it's things like, ⁓ you support a negative number here and you shouldn't, a negative integer, because the schema said integer, and that included negative numbers, but it was like an incrementing integer, so you shouldn't have it go below zero. Things like that. Little things, but as we found like Jacob Luetzow: Hmm. Yeah. Mike Hostetler: These agents are able to do massive kind of just they they were able to grind on these code bases. And if you direct them the right way, ⁓ I've also done a lot of load testing this time around and benchmarking. So that's resulted in a couple of PRs upstream to packages like Zoy and Runic. Shout out to Paolo. I've I've I've been hammering on Zoy. So that was another case of cleanup. So Jito V2 supported nimble options and Zoy for schema definitions, and I had a bunch of code to support both for backwards compatibility. Jito V3 drops all of that. So we're exclusively Zoy now. Zoe is a lot more flexible ⁓ and offers more features. So we've standardized on that across the entire ecosystem. Jacob Luetzow: Mm. That's exciting. You move quick. Mike Hostetler: Gotta burn those tokens, man. Jacob Luetzow: I don't ever use up my tokens. I'm just I'm ⁓ I guess I'm not a power user. Am I doing it wrong? Mike Hostetler: Yeah, I no you're not. I ⁓ yeah, I probably should go to meetings for token maxing. I definitely drive it pretty hard. Yeah. Jacob Luetzow: I think we we got that whole group chat that needs to go to meetings. Mike Hostetler: Yeah, I have I have multiple codex accounts that I burn through regularly. Yeah, token maxers anonymous for sure. Jacob Luetzow: Token Anonymous. Yeah. That's funny. what what cool projects are currently like implementing and working with Judo that we can talk about? Mike Hostetler: So yeah, one of the big ones I'll shout out is a startup out of Paris. ⁓ it's the Zach Project, Z-A-Q. They've been prolific ⁓ contributors to Gito and are building out a company brain system using Jito. And ⁓ they're doing some really cool stuff through their work. We've actually built out and really refined the story around how JITO and GITO agents connect to third party services. So and I saw AsmaVeth 42. So that's ⁓ our friend from Texas. So I'll this is just how the community has developed. ⁓ he has a really cool project. ⁓ the name is escaping me right now. I'll think of it in just a second. But he built out a Jacob Luetzow: Yeah. Yeah. Just type it, type it for us. Mike Hostetler: ⁓ a MCP and ACP package for his project and ⁓ age ACP is agent client protocol and so Gito can coordinate and control any of the other coding harnesses. So Jito can control codex GIDO can control AMP through XMCP Jacob Luetzow: Okay, wait, what is an ACP? Okay. XMCP. We'll put it. Mike Hostetler: Yeah, and then ⁓ so there's just there's a lot of these extensions that have blossomed out of the ecosystem. Zach is the ⁓ the the startup out of Paris that's using it and building out the connectors. So they built out a bunch of connectors for like Google Workspace, Microsoft Teams, Microsoft SharePoint, and all of that. So ⁓ Jacob Luetzow: Mm. We got dogbone two back. ⁓ I see that term term UI has moved under the agent Jito umbrella. What's the connection? Mike Hostetler: Yeah, they term UI. Yep. Okay, so there's a little bit of a background story here too. I have long been asked, when are you gonna write a Jito harness? Well I if anybody has been following this, there's a lot of harnesses out there. a lot of great harnesses out there in other languages. There's even harnesses in Elixir that people have put together. ⁓ replicating, there's a deep seek harness in Elixir, there's a Pi harness in Elixir. And I have you know, I've already got my I have a Jito ecosystem project where my agents help me manage the ecosystem. And I'm tracking upwards of like 70 repos that I monitor constantly. That's because the ecosystem has just blossomed, and I spent a lot of my time gardening. So I was hesitant to dive into anything new. ⁓ finally, I think maybe a month ago, two weeks before ElixirComp, Jose tweeted about the power and potency of a Elixir-based harness. And through some conversations, kind of prompted me to finally jump in and think about building a Jito harness. And I've been working steadily on that. and I didn't want to bring a harness to the market that was like The same as everybody else, right? What's the g if we're really gonna showcase the power of Beam and OTP, then let's let's do it. And so ⁓ I've been gathering, there's a a group of people who have been helping me, advising, ⁓ gathering info on how we should go about this, sharing code. It's currently private, but ⁓ I will I'll I'll do this. I'll tweet out the logo. ⁓ I'm pretty proud of the logo. I I have I don't have a logo for Jito. I finally went and built a logo for this harness. And the harness itself has blossomed a lot of really interesting ideas as I've kind of sat down and Jacob Luetzow: How do you have a logo for a new harness tool and not Jito yet? Come on. Mike Hostetler: I know. It's because I've like this is all still part-time, man. I'm like, yeah, there's I know. Seriously. It would be a lot of fun. But so I sat down and designed like what a harness should look like from scratch that's really built on OTP. The first is I think it should be multiplayer. Like for a agent session, it should be multiplayer. Jacob Luetzow: I can't imagine Mike unleashed that full time Mike. That's scary actually. Mm-hmm. Mike Hostetler: ⁓ it should really be more of a control plane. And if you were wanted to have a TUI that connected to the agent harness server, you should also be able to join that same session from a mobile device and a live view page. Jacob Luetzow: When you say multiplayer, do you mean also like multiple people on the same session? Mike Hostetler: Multiple people? Multiple people is just multiple clients with different authentication. Jacob Luetzow: So like my curiosity here is how do you if two people, clients, whatever, multiple author are ⁓ who who gets like pr precedence over the other if they're button hat? Yeah. Mike Hostetler: Right, and this is the crate Elixir. We have really cool tools that the ecosystem has already developed, like ⁓ operational transforms. So Livebook also supports multiplayer out of the box, the whole Google Docs experience, and was able to build on some of the same things that they did as I was designing out the data model for this multiplayer harness. Jacob Luetzow: Mm-hmm. Mike Hostetler: One of the things that's already come out of it that I've tweeted about is ⁓ there should be a generic protocol for the data exchange between the harness client and the harness server. So I put some ideas around this. This has been my project this week. I've called it a durable actor ⁓ session protocol, DASP names. I you know it's Feedback on the name, please like give me feedback. I just I come up with these things. I published about it. ⁓ yeah, I know. It's I'm yeah. ⁓ I'm very literal. I that's the thing. I marketing the best marketing I've seen is very literal. So DASP is a way that is the Tism in me. Yeah, the people that they meet me, they're like, ⁓ you're normal. I'm like, have you met me? Seriously. Jacob Luetzow: You're an engineer. You're not you're not creative. That's the tism in you. You don't know Mike. He's normal on the surface. Mike Hostetler: Normal on the surface. ⁓ so I I've been designing out and it's been a ton of fun because it's taken me back to old ideas like hypermedia and true hypertext protocols that hearken back to the early semantic web ontologies. Shout out to Pascal. Pascal's the ontology god. Like he's always pushing me on you know different ideas on ontologies. ⁓ so this harness is a thing. Jacob Luetzow: That dude's that guy's a wizard right there. He'll he'll be like chatting me up and I'm just like, ⁓ yeah, cool. And it's just shooting over my head. Mike Hostetler: Yeah, he is. He is. Yeah. ⁓ Pascal's my early morning buddy. So I'm an early riser and we're always s you know, s ⁓ in Discord back and forth at like four thirty in the morning. My wife's like, Who are you chatting with? ⁓ Pascal. ⁓ that's cool. Yeah. Yeah. Well, yeah. That happens. My kids are leaving, so I have all this extra time on my hands and hey, this is where I'm directing. Jacob Luetzow: I used to be an early riser and then I had a newborn enter the home. Yeah. So why are you waking up early? Your house is quiet longer. Mike Hostetler: It's because everything is quiet in the mornings, that's why. So ⁓ yeah. Yeah. Yeah, so I I mean my schedule now is I'll get up, make coffee, work on Jito for four hours, and then go to work. And then I'll have my agents ⁓ yeah. Jacob Luetzow: Morning is that is my power hour. Like I get a lot done if I get up early. It's kind of nice. Dalton has a question for us as well. Let me pull it up on the screen. is there plans to adopt the ability to define agent pipelines with a portable manifest like agent format, or does that clash with the JETO principles? Mike Hostetler: So yeah, it's a great question. That is effectively where I was trying to go with Jito Flow. And as ⁓ I I'm happy to chat more. I'm not sure what you mean by ⁓ portable agent pipelines and a portable manifest. I've not seen any specifications on this, but if you either need to coordinate multiple agents or coordinate multiple actions, Jito B3 supports all of that. So There's layers. Jito flow is a data-driven execution format of a G of a runic workflow to coordinate JITO actions. And you can do a whole bunch of cool things with subflows, and it's just it's awesome. In Jito proper, we used to have a concept called pods. Pods has now been replaced with topologies. And topologies is the way to spin up a group of agents, Jito agents, as OTP processes. Jacob Luetzow: And before pods were the group of agents? Mike Hostetler: and then coordinate work ⁓ Pods used to be the group of agents. Yeah. Now it's topologies. Yeah. So that's a new V3 concept. Jacob Luetzow: Okay. What's the what's the underlying difference there? What are you gaining? Mike Hostetler: ⁓ pods could only be composed of other agents. As I built stuff out, the first thing I needed was I wanted 10 agents to all talk through a JITO signal bus. And I wanted all to be carried under one supervision tree. And so a topology coordinates spinning up. So there's all a topology is just another act. Jacob Luetzow: Okay. Mike Hostetler: So that's again a key concept. It's an actor, or it's an actor named a topology as the coordinator. And then behind the scenes, Jito handles spinning up the 10 child agents to live within this topology. You can give them different roles, you can prompt them differently. They support the AI agents and also naive actors. And then you can attach them to a single scoped signal bus for them all to talk and coordinate without having to establish. Jacob Luetzow: Okay. Mike Hostetler: parent child relationships. This code is out there. Jacob Luetzow: And your signal bus is kind of equivalent to like pub sub, yeah, or no? Mike Hostetler: It's a rabbit MQ, memory-based rabbit MQ. So PubSub is great. Phoenix PubSub is fantastic, but it suffers from fire and forget. If a message and an actor is asleep, that message has some deliverability issues. PubSub is designed to if you don't get the message and the process, receiving process doesn't get it, it's gone forever, which is fine. That's the right design for that tool. Pub signal bus adds Jacob Luetzow: Okay. Right. Mm-hmm. Mike Hostetler: buffers and a little bit more of a deliverability guarantees in a mem it's only it can persist, but it's mainly for in-memory type deliverability within a JITO Jacob Luetzow: Okay, I see. So if you lose your node though, then you lose your signal. Mike Hostetler: ⁓ there is ways you can lose it still. The the but the signal bus messages can be persisted, yeah. So and all of this works across distributed elixirs as well. Jacob Luetzow: I see. Okay. Cool. let's see, we got JG ⁓ said make it dap, agent to agent, dap it up. And then Dogbone said that ⁓ DASP is not good for SEO. Mike Hostetler: Yeah, we'll dap it up. Yeah, there you go. ⁓ yeah, good call. I've not looked into that yet. I f so somebody was giving me flack because apparently JIDO is also this US government program for joint defense bombs or something. Jacob Luetzow: Dude, Ryan Cartarella just tagged me. The FBI started some program called Operation Kill Switch. Mike Hostetler: ⁓ no. See dude, I PvP against government SEO, like let's go. I I think we could we'll we'll we'll show up for that. That's yeah yeah. Kill switch is pretty cool. Yeah. Get that agent agent SEO going. So Jacob Luetzow: Let's go. I mean, I'm not gonna lie, kill switch is already ranking it's ranking pretty good. Just make enough noise. I got my grok bots working right now. In fact, they're about to post stuff in five minutes and I don't even have to watch it. Dude, I'm telling like I love like the bot aspect, like kind of like the automations and things. And like it's kind of sad because you're gonna see like there's almost no reason to use like a what like a social media scheduler anymore. It's pointless. Mike Hostetler: ⁓ there you go. So Jacob Luetzow: Cause like I got my Grokbot tied into my Google calendar. It puts it on there so I know when it's coming. Yeah. So it schedules my blog posts. I always make it have ⁓ three posts published into the future or scheduled into the future. And I see it through my calendar. And then I also like I make it any digital assets it creates, it has it on its local machine, right? But I don't want to dig into the grok bot computer. Mike Hostetler: ⁓ that's cool. Yeah, it's all right in one spot. Yeah. Yeah. ⁓ yeah. Jacob Luetzow: So I I make it use my Google Drive, Google Sheets, Google Docs, and it puts everything on there for me. It's really nice. Mike Hostetler: Yeah. That's cool. I have played around with Grokbot. I played around with ⁓ dots. So you might hear funny. So I again I I cheat a little bit. And the way I my daughter is a freshman in college and I needed email addresses to have my multiple codex accounts for my coding agents. The so lo and behold, ⁓ I Go to spin up dots and I was playing around with dots after they launched this week. It's like dots, what can you do for me? And I didn't quite realize that I was logged into her ChatGPT account with her memories, and she uses it for like I taught her and made a project to take her college class syllabus, connect it to Google Calendar, and put all of her assignments on her Google Calendar, right? So the dot is like. Jacob Luetzow: Mm-hmm. Nice. Yeah. Mike Hostetler: Can I help you schedule your next biology exam and study plan? And because it must have tapped into the memory from all of her projects and chats from college as a college freshman, instead of and Dots was like going wild. I'm like, you need to go away, Dots. I don't want you to go and start changing all of her stuff because I'm logged into her account and using her her coding tokens. So Jacob Luetzow: That's hilarious. A funny thing that I recently just did. so I have my own like droplet digital ocean server up where I just am running Tmux. And so I can I do all my multiple agents there. And one of the projects I just did, so I recently got like a couple months ago, got the Skylight calendar because just for for the family, like our schedule's crazy, right? Mike Hostetler: Yeah, nice. Yep. ⁓ yeah, nice. Yep. Jacob Luetzow: And they love the chores and earning stars for rewards. But so most of the kids we only have like every other weekend and Mondays and Tuesdays, right? So like 50% of the time. And ⁓ it was super annoying adding chores and like okay, repeat this chore every six weeks. Like I'm rotating like dishes and things. So they unload, load, rinse. Or they get pissed if they do the same thing twice in a row. Mike Hostetler: Okay. Yep. Okay. Yep. Jacob Luetzow: And I was like, this sucks. And then I was like manually putting all this in. Well, anyways, I found ⁓ like a a GitHub project that tapped into their the Skylight API and I created my own local host and my basically my own LLM agent. So I just talked to my agent and be like, okay, can you create? Yeah. Mike Hostetler: No. And it adds everything to skylight. That is cool. I is it's fun stuff. Yeah. Jacob Luetzow: So I just chat through my Claude prompt. Yeah. And it's amazing. And I'm just running a local host API that has my credentials for Skylight. Mike Hostetler: Yeah. See, and this is see, I think it goes back to what I was saying. There's coding agents and then there's everything else. And I think we are just starting to see the cool things that you can do. And and they're called chief of staff agents, GrockBots, Muse, Instinct. These tools are out there. Dots are out there. I think there will be a lot of really cool things that come out of that that you know. Jacob Luetzow: Mm-hmm. Yeah. Mike Hostetler: people can use that we just haven't even scratched the surface of yet. Jacob Luetzow: Well, here's the thing: like, all these IoT products, they make great hardware and then they freaking suck at their apps. Like it's almost like they don't give a shit about it. But like that's where your user experience comes from. So like the Skylight app sucks. My my mesh Wi-Fi system, their app sucks. I'm gonna reverse engineer and just have my LLM authenticate and use their APIs. In fact, I have like the the T P link. Mike Hostetler: Yeah. Yeah. It makes a lot of sense. Jacob Luetzow: DECA mesh system. I already took, I had Claude do all this. I didn't do it. They took the Android build, the APK, reverse engineered, found all the API endpoints available. And I'm going to do the same thing where I can just chat to my LLM to set up all my parental controls on my mesh router. And it's like, so this is the new way of doing things. Mike Hostetler: Uh-huh. Yeah. Heck yeah. This is the new way of managing. I I think the use cases for that are gonna be wildly good. I did one when I was playing, so I use the ⁓ OSX app Things 3 for my task manager. Things three has always had really good cloud sync. And I have the desktop app and then I have the mobile app, and Siri, in the limited AI that it has been and always was, was it the one thing Siri could do. Is add a to-do to my things inbox. And I like that was so I had one of those setup. Well, I was able to reverse engineer the things three API and then hook a Jito agent to manage my to-do list in Things Three. So and then I I exposed it as an MCP, and then I had Codex drive the JITO agent and via MCP that would then go do things. So I I played with Jacob Luetzow: Mm-hmm. Yeah. Mike Hostetler: all these different patterns and I think this is where the Lego bricks idea is really, really key. And it's been fun to see how well the pieces and primitives of Jito have held up ⁓ as we've built all that stuff out. So it's we've been working really well. And yeah, I think Jito V three is gonna be a refinement of that. I'm actually deprecating packages. So one of the criticisms and and I think this is justified frankly. So I'm not it's not a bad thing. Critiques, helpful critiques in open source was I had too many packages or I had a lot of extra crufty dependencies in Gido packages. And I've since cleaned a lot of that out. Yeah. Jacob Luetzow: That's my critique. Just talking with you in Discord, you write too much code, bro. ⁓ Mike Hostetler: I write a lot of code. and but I I know agentic back pressure, right? You just have the agent do it. ⁓ so I've been able to take like I had a Jito Ecto package where Jito agents could be saved to an ecto schema. And that was a separate package. I've since pulled that into Jito Core, set it up as an optional package because the agents are much better at. Kind of carving off that functionality, offering it as an opt-in, and just making the entire experience of Jito better as a user to be able to pull in the useful packages and really define the lines of how these pieces should fit together and the philosophy behind it. And I've again I've said this before, I'll say it again. Like I'm unabashedly opinionated about Jito and the Jacob Luetzow: Mm. Mike Hostetler: my take on agents. I celebrate other agent frameworks in Elixir. I celebrate the agent module. Like we've we've we've reinvented the wheel to some degree. Like this thought, this idea is not lost on me. So exactly like I yeah, it's 30, 40 years old. But I I think there's always room there's always room for a new take on it. Jacob Luetzow: It was solved in nineteen eighty six. Come on. Yeah. Let's call it thirty. I like that better. That makes me feel younger. Mike Hostetler: And I I do have a vision and a consistent idea of where ⁓ I think Jito is going and and what I wanted to build it for. And it's been a lot of fun to adjust and see how the market has accepted that things I've learned. I mean, it's a journey. And and I would say that, you know, for me, Jito has really been a lot of fun and satisfying way to sort of get to know Elixir. I Elixir Note P really well now, so that's cool. And yeah, I it it's a it's a lot of fun. I like again meeting people like you, meeting all the people I met at ElixirConf, seeing them use software and really see it take off. Jacob Luetzow: Hey, I just scrape by. I only learn what I need to learn in the moment. I I'm your I'm I tell everyone all the time I'm the laziest person I know. And they'll be like, no, you're not. We see how much you do. I was yeah, but I'm doing the bare minimum of everything that I'm doing. Exactly. And I automate everything I can. That's the thing. Like, it's like I don't want to waste my time setting up this stupid skylight. Mike Hostetler: That's right. Do the minimum possible. Yeah. That's right. You just do a lot of the bare minimum. Is that lazy or not? I don't know. Automate, yes. Automate everything. Yeah. Jacob Luetzow: Chore and schedule thing. And I vibe coded my solution in 30 minutes. Yeah. Mike Hostetler: Amazing, yeah. I need to find that repo. That'd be pretty cool. So we do, yeah, we do. I hate it. I don't use it. Jacob Luetzow: I'll send it to you. Yeah. Do you have the sky? Do you use the skylight? Yeah. I love I love the display of the calendar, right? But I hate I hate ⁓ touching it. I hate adding events. Mm-hmm. So but if you can talk to an LLM and it just does it for you, it's amazing. Mike Hostetler: Yeah. Yeah, no, I won't. And the app you're right, the app is terrible. App is terrible, so Yeah. Yeah. Yeah. Jacob Luetzow: It can create events, it can just schedule things. It's it's amazing. I love the fact, like, yeah, it'll do complicated repeat schedules, and I don't have to like keep track of it because I like manually did it once and then it lost some of them. And I was like, I'm not setting this back up, you losers. And then, ⁓ dude, the week week one of me owning it, customer support absolutely hated me. Guaranteed. I was reporting, I was reporting five bugs a day. Mike Hostetler: Yeah. That's sweet. Yeah. Yeah. You called him a bunch? Jacob Luetzow: And I was like, this is the most irritating software I've ever touched. And I'm and like I'm patient until I'm not. And then I'm like, guys, this is like unacceptable. Like I'm a software developer. If I ever released anything like this, I'd be embarrassed. Mike Hostetler: They should be paying you. Yeah. Well, ⁓ did they listen? Did they fix it? Jacob Luetzow: They did. And what the funny thing is, a bunch of the bugs they released quietly and just like thanked me for reporting them and never like put it in their change log or anything. But I noticed it started working. I was like, come on, guys. Mike Hostetler: Yeah. Yeah, of course. ⁓ yeah. Come on. Yeah, come on. So ⁓ I have a couple other things I wanted to like is briefly mention in the JIDO ecosystem. So one of the sleepers that I ended up building for Rec LLM was a package called LLMDB. And when I started, it was I needed a I needed a database. Of all the LLM models and all of their metadata to power like things like usage costs in Rec LLM. And LLMDB has kind of come into its own, and there's a website LLM catalog that I tweet about when new models are launched. ⁓ but want to again just call that out if you are looking for you know where to go see. Jacob Luetzow: Mm. Mike Hostetler: the context window size of Opus five point five and how much it costs, that's LLM catalog. And that's kind of again, one of these boring things that's turned into a really useful tool. I was talking to somebody this morning about, you know, where do you go find usage data and as we work with these tools, that's turned into a a a fun one. It is fully automated. So that's been fun, fully automated through GitHub Actions. and that's worked out really, really well. Jacob Luetzow: That's cool. Dude, have you noticed that GitHub actions has gotten more expensive? Mike Hostetler: Expensive and dog slow. It's big time. So I have ⁓ I it I don't know. Yeah. Jacob Luetzow: Mm-hmm. Like what is my personal use bit like what I just use for my personal projects has like quadrupled, I feel like, in the last couple months. Mike Hostetler: I was in playing with my settings yesterday for the month of September, Jito and the agent Jito, which is open source and they give that for free, two hundred and fifty dollars of action usage for the month. Jacob Luetzow: Insane. How many like PRs in are coming through? A lot. Cause like I feel like for my personal use, I don't know. I I do a lot of commits. I I feel like I do a lot of small PRs, but like my actions bill is hidden like 50, 50 to 60 bucks a month, and it's just me on private repos? Seems kind of crazy. Mike Hostetler: ⁓ man, a lot. Yeah, a lot. Let's look. Yeah. Yeah. I'm going to I have a local database of this. ⁓ PRs were closed e Jito Ecosy. I do have stats and I've thought about automating like a newsletter of everything going on. ⁓ but I think I would cry if I saw this just so much so much flowing through. I've now automated most of it. So Jacob Luetzow: I made the mistake. I made the mistake of telling my wife what I spend on like tooling and AI. She's like, you maybe don't tell me that. I was like, okay, but I make more, so it's worth it. ⁓ like because like Rockbot, for instance, is like 300 bucks a month. Totally worth it. I have like 10 employees using like 10 employees, you know? It's like all this crap I wouldn't want to do. And what's really cool is just watching Google metrics. Mike Hostetler: ⁓ yeah, that's a bad idea. Yeah. Yeah. Yeah. Yeah. Yeah, yeah, exactly, exactly. You can't get that anywhere else. Jacob Luetzow: And like everything, like it's it's a slow game, but all my traffic is increasing ever since I started using Grockbot to leverage my marketing. Mike Hostetler: Yeah. That's awesome. It looks like it says six hundred and seven closed PRs in the agent Jeta organization in the month of September. Jacob Luetzow: Wild. That's a lot of PRs. Are you reading all those? Mike Hostetler: Yeah. A lot of are dependab dependabots and there's a lot of things that flow through ⁓ Jacob Luetzow: Okay. Mike Hostetler: okay, better stats. 534 PRs were closed across my ecosystem. 433 were merged. 101 were closed without a merge. ⁓ so I must have discarded them, and that happens fairly often. ⁓ and then 607 was both for my public and private repos. Jacob Luetzow: Okay. What is it What's your experience running? Like I don't have any open source projects, but the increase in junk PRs just being vibe coded that aren't actually solutions. Mike Hostetler: I have not run into it as much. ⁓ yeah, I would say I there there is this funny thing about Elixir where you can tell if a PR is submitted by somebody who doesn't know Elixir. Jacob Luetzow: ⁓ that's good. Yeah, 'cause they they don't write with pattern matching and they use conditionals like no one's business. Mike Hostetler: Yeah. It sticks out like a sore thumb. And ⁓ yeah, yes. Yes. Yeah, so it's pretty obvious. ⁓ Dogbones talking to the ghost of Carl Hewitt. I would love to talk to the ghost of Carl Hewitt. Jacob Luetzow: ⁓ in fact that just We'll throw that on the screen. I love that I have that. I just can click a button and it tosses the c Mike Hostetler: So yeah, that's awesome. Click a button and ta yeah, throw it up there. So ⁓ any other questions from the audience? I can't see the X. I should op open up X here. Jacob Luetzow: Nothing I had to pull up X in a separate window. We got Zachary White over there. nothing on LinkedIn, which by the way, guys, LinkedIn actually kind of sucks for live streaming. Don't it like creates comments under a video? Like it doesn't, it's not like a chat. It's weird. LinkedIn just does everything. Microsoft does everything half-assed. Mike Hostetler: ⁓ there's a lot of stuff. Jacob Luetzow: Not to talk shit, but Mike Hostetler: Yeah, well, if it's low quality, you call it out. ⁓ Jacob Luetzow: What's really cool, ⁓ Bryce, ⁓ he was on my podcast a couple weeks ago, and he he runs like a consultancy, and we were just talking about AI workflows and what he's doing. He just shared a GitHub repo. I should pull, I gotta find it. It consolidated a bunch of let's see, here it is. Mike Hostetler: C yeah. Nice. Jacob Luetzow: It's called the founder playbook. And it took 15 of the most popular like business books and structured it into AI skills that any LLM can grab. How cool is that? I'll share here. Let me share it in the chat. ⁓ and I actually just so I handed it to so I have like an executive assistant grok bot that talks to all my other grok bots, and I shared it with him and I was like, what can we use from this that will benefit us? And he Mike Hostetler: ⁓ yeah, I would love that. Yes, please. Yeah. Jacob Luetzow: He went, he tore it up and he was like, I would use these four and these three, discard the rest. And I was like, Okay, now share the skills with the Grok bot that should have them and we'll see how it goes. I just did that last night and it's pretty cool. I'm pretty excited about it. But there's the link. ⁓ Mike Hostetler: Yeah. I'm yeah, you have to keep me updated with how that plays out. Sweet. Get agents sealed playbook. Jacob Luetzow: And it's just really inter see, these are the things I'm excited about because I suck at marketing. I suck at all these things. And to be able to leverage bots to do some of the the work I don't that I ignore, that I procrastinate on, it's kind of nice. Mike Hostetler: I mean, I I don't know if anybody's gonna believe you when you say that, but you can say it. You're pretty good at marketing. Yes, you are, like you're just genuine, you like put stuff out there, you're consistent. That's the secret. There's no magic formula. Jacob Luetzow: Am I? I don't know if I am. Yeah. Here's the thing. Okay, fine. I'm like so I'm so dumb I keep showing up. ⁓ bad. ⁓ Mike Hostetler: Me too. I it's that's ⁓ that's what they say eighty percent of the battle is just ⁓ and I I think so it's a good point to call out 'cause open source and community and ⁓ all this stuff, it is it just comes down to showing up and being positive and think trying to contribute value. Elixir is a small community and a lot of people know each other and Jacob Luetzow: Mm-hmm. Well It is. One thing that's interesting, and I've I've noticed the shift, and I don't really know. I mean, I I understand the shift, but like, and it actually comes at good timing because I'm like so I don't want to do tutorials anymore. And I don't know what my angle is there. Cause like I was I'm good at teaching, so it was like enjoyable, but I feel like now no one is coming to watch videos to learn how to code because they have an LLM that can tell them how. Mike Hostetler: Yeah. Yeah. Y yeah. Yeah. I that's definitely shifted. Jacob Luetzow: And so it's the same thing, like the Elixir Mentor Discord is like ghost town, right? And I'm like, well, so what do I do? Because the old traffic used to just be coding questions or like, hey, I love your tutorial. I'm stuck here. So it was like natural conversation occurred, right? And since LLMs have gotten better and better, nothing. So I'm like, well, do I, is it worth even having the Discord server? And I feel like it probably is. I have over 700 people in it. Mike Hostetler: Mm. Sure. Yeah. Yeah. Nothing. Yeah. Jacob Luetzow: But how do I change the dynamic of it to create conversation around maybe one of my ideas is just like AI workflows. Like how are you becoming a better engineer using AI? And like I could talk about how I use GrockBot, how I'm building Kill Switch. Cause I feel like it's less about how to build it now, especially if you're a technical person. It's more about how do you get a user base? So I don't know. Mike Hostetler: ⁓ yeah. Yeah. Yeah, for sure. Yeah. Yeah, and which comes back to marketing, showing up, being consistent, and this treasure trove of founder playbook skills that you just shared. It's pretty cool. The mom test. I have that book. So very nice. Yeah. Jacob Luetzow: Really cool idea. I have a bunch of these books that I've never read. ⁓ bad. But now we'll see if my GrocBots just start using these skills. I told I told them to. I did not make sure that they updated their markdown files though. Mike Hostetler: Very cool. Yeah. We'll see if they listen to you. That is the problem with LLMs. Sometimes they're a little squirrely. They don't listen to you. Come in and show ⁓ Jacob Luetzow: Dude, I I had a tough learning curve. ⁓ so my scheduler bot could not for the life of it schedule an Instagram reel without cropping it as a square post. And I like it happened for like two weeks straight. And I was like, I'm just gonna give up. And then all of a sudden it figured it out and it doesn't mess up anymore. Mike Hostetler: Okay. ⁓ no. Yeah, see they updated the model behind the scenes. That that's the crazy part. There's so much of this stuff that ⁓ we think it's consistent and reliable and it is getting better. Quality is improving, but ⁓ Jacob Luetzow: Yeah. Mike Hostetler: Th though I think there's gonna need yeah, I think there's gonna be engineers needed for a long time still. Jacob Luetzow: That was axe fixing a problem. Yeah. That's the thing. Like, we're just gonna shift where engineer work is happening, right? It's gonna be more AI-based solutions and products. And it's the same thing, like 10 years ago now, I was like very involved in manufacturing automation. And so everyone thought, you know, the unskilled laborer in manufacturing is gonna be gone overnight, right? Robotics. And for the in in most cases, in some cases, they have been, right? Mike Hostetler: That's right. Yeah, I think that's right. Yeah. Yeah. Yeah. Jacob Luetzow: But it still opened up the door for so many more opportunities and like higher skilled laborers. Like now you can be trained to repair this equipment. Like, like sure, it's doing your job that was like mindless, which is a good thing. But now you have to someone has to watch the robot to make sure it's working properly and doing its job. So I don't know. Mike Hostetler: Yeah. Right. Right. It just shifts. It moves around a little bit. Yeah, and we'll it'll be interesting to see how it plays out. ⁓ I'm generally optimistic and I you know human beings have figured this stuff out for a long time. There have been other threats that have come along. AI is a new one, but it we'll figure it out. Jacob Luetzow: Mm-hmm. Yeah. Well, we have to remember you have to remember too, we're we're in a special bubble. Your normal person isn't leveraging their LLMs like we are. So there's still people out there to buy your SaaS and your products and your solutions to things. So I don't know. Not everyone's just gonna code their own solution and deploy it. It's not easy. Mike Hostetler: Yeah, we are. Yeah. No. Yeah. No. No, they're not. No. The days of like pure user software are still a long ways away. ⁓ I think that's where living in Illinois, you we get a d a decent dose of the real world and where it's actually all at. So it's been good. Keeps me grounded as we live in this magical matrix world where you can think things into reality. So we do. Yeah, I think we live in the matrix. So yeah. Jacob Luetzow: I think we do live in the matrix though. I'm more and more every day like this is simulation theory. It's all that with all the craziness going on, our algorithm is just off, you know. Mike Hostetler: Is it the the most hilarious outcome is guaranteed? Is that the way it goes? don't know what that phrase is. So there's funny ones. That was the on Tuesday at the OpenAI dev day, they released dots and nobody thought to check who owns the domain dots.com. And it turns out Elon Musk, who's been fighting with OpenAI, owns dots.com and lo and behold, redirects the domain to Grokbot. Jacob Luetzow: Yeah. Kinda seems like it, doesn't it? Yeah, that's hilarious. Mike Hostetler: So they sent all these marketing dollars to dots dot com to find Grockbot. Like that's that's a hilarious outcome. That's a yeah, so yeah. Jacob Luetzow: It is funny. I think I so I haven't tried dots. I don't know how it'll work. I'm assuming it works very similar to Grockbot. I don't know. Mike Hostetler: Yeah. That's where I played with it once and we'll ⁓ yeah, let it Jacob Luetzow: But so here's like going back, like I already have a system in place that's working really good for me. I have no reason to explore dots at this point, you know? Mike Hostetler: Yeah. No, no change. Yeah. Yeah, it'll blow up in six months and you'll have to do something, but you know, that's how it goes. Yeah. Jacob Luetzow: Right. And when it does, that's that's the laziness factor. I don't do it till I have to. ⁓ Mike Hostetler: Yeah. And then you'll just have your Grokbod build you a new one. So yeah. Jacob Luetzow: Exactly. Well, and then like I still like clawed code and grokbot are not interconnected. I don't want them to be. I still like to build my features in my own like little ecosystem. Mike Hostetler: Yeah. Yeah. Yep. Jacob Luetzow: But I I don't know. I don't really worry about context. I don't I use beadwork, but I usually just like use the same clawed session. Sometimes I'll clear it, sometimes I won't. And I just like stack ⁓ and it works fine. I don't know. Mike Hostetler: Yeah. Yeah, it works. It works. So yeah, I don't have any issues with any of that stuff. Jacob Luetzow: Let's see, the problem with that unskilled jobs disappear and people don't want to skill up, the new economy will reward anyone willing to continuously learn. I mean, I think that's just how the economy works in general, capitalism, like if you're willing to skill up, it rewards you. Mike Hostetler: Yeah. Jacob Luetzow: But yeah. Mike Hostetler: Yeah, we'll have to have Heisen on to tell us about how he's using dots or explain how he's using dots. So Tyson is Azmabeth. Asmabeth 42. So well thanks for having me on, man. This has been a lot of fun to yeah. And Jito V3 will be out soon. Jito Harness. Anybody wants to participate or see I'm not keeping the Jito Harness code private for like any secret reasons. Jacob Luetzow: Who said that they're using dots? ⁓ y yeah yeah yeah. Mike Hostetler: ⁓ Jacob Luetzow: Yeah, right. Mike is very secretive. Mike Hostetler: I dude, this is the thing. I've learned I like to iterate. I like to like shape things up nicely. I've you know, this is probably the fourth or fifth harness that I've built and learned along the way. I've gotten more mindful about pushing things out there and people start using them and I want to make sure, you know, people are supported and I don't break their stuff. So yeah. Yeah. Jacob Luetzow: It's easy to move quick and just deploy, especially today, you know. And it is interesting. Like I recently had kind of a hard lesson. Like, cause you know, Kill Switch has live users, and I completely tore apart my data architecture and databases. Well, because for good reasons. Like it's much better now. And I had data migrations and everything in place. Mike Hostetler: ⁓ no. Yeah. Jacob Luetzow: But it it went from a zero knowledge to encrypted at rest. For I have a lot of reasons for it. Just I wanted cooler features. But I couldn't migrate users' data without them physically logging in because it's zero knowledge, right? And them having to push a yes, I want to migrate my data because it's a big, it's a big change. Users might not want to migrate their data, right? Everything went very smoothly except for ⁓ my dead man switch share links. Mike Hostetler: Yep. Jacob Luetzow: Complete completely forgot to wire them in and fix those. So I everyone's data stayed intact, but the whole purpose of my system never failing had a disconnect and broke. The good news is I already put in like I have like a dead man switch health check that runs nightly. And if anything doesn't work on your dead man switch, you get an email so you know to fix it. But that's still like really bad user experience. Mike Hostetler: ⁓ no. Okay. Jacob Luetzow: Like you gotta come and fix this. The good news is now that it's not zero knowledge, I can fix it from the admin. Well, I can fix it automatically, but I can also fix it manually from the admin dashboard. But yeah. Learning, learning, learning pains. Yeah. Mike Hostetler: Yeah. Yeah, yeah. Nice. Yeah. Yeah. Learning, learning, yeah, hard lessons, hard lessons. So good stuff. Well Jacob Luetzow: But anyways, don't break live data. Don't break your users. But anyways, Mike, this was a lot of fun. I'm excited to see V three. I'll have to check it out. It's in beta. Mike Hostetler: Yeah. Yeah, thank you. Yeah, everything is out on hex, everything's out on GitHub. Hop into the Discord if you want to chat about it. I'm in this kind of hardening migration planning phase for Jito action, JITO signal, Gito. Gito AI needs some work. I've not released a hex version of that yet. ⁓ but I will. And then I have the JITO harness and It's it's gonna be a whole thing. I'll ⁓ you know, there's gonna be two e clients, there's gonna be desktop clients, there's gonna be you'll be able to host the harness on fly, ⁓ host it as a installer on your local like Livebook, and then it'll have a bunch of fun things that you can do. So yeah, and it's ⁓ there's a there's a dash of NYX in Jito Harness. ⁓ it'll it's a control plane. Jacob Luetzow: That's awesome. Mike Hostetler: So it'll work with sprites and some fun things like that too. So ⁓ yeah. No, it we're we're I I've I would rather go I'm kind of in a mode of like less code, higher quality right now. ⁓ and so I'm taking my time to get this one right and yeah, he is. ⁓ he's inspired me, yeah, for sure. I found something last night where the Dask protocol I'm really happy with. ⁓ Jacob Luetzow: ⁓ sweet. That'll be awesome. Jason would be proud. Mike Hostetler: And why that's can host these agents. And I that was another one where I went and looked at the other protocols. I'm like, ⁓ I'm gonna pull something off the shelf. Doesn't exist, and there's this giant gap in the market for these hosted agent servers. So Microsoft had one, but it was all built around LLMs. And so you have LLM semantics built into the base protocol rather than a generic actor protocol. And I'm like, no way, I can't use that. Can't even like put a PR to the protocol. Jacob Luetzow: Mm. Yeah. Mike Hostetler: So ⁓ yeah it's been a lot of fun and I think there's gonna be some good yeah go it me and my codex maxing token maxing anonymous so yeah yeah I doubt I'm keeping them in business with all the money they've raised but I'm certainly doing my part yeah exactly yeah I hope they lose money on all of my accounts so Jacob Luetzow: That's that's why the world needs Mike Hostetler. OpenAI is grateful for your your contribution. No, you're the power user that costs some money. Hey, they're gonna come looking for you now. They're gonna be like, This guy has multiple email addresses. Mike Hostetler: Yeah. Yeah. Tibbo just needs to keep smashing his reset button. We'll we'll keep it going. Keep the party going. So Jacob Luetzow: I do need to I wanna just buy like a a Mac mini so I don't have to have a digital ocean droplet and just have that run on my desk and just SSH into that. That's my next I'm just lazy. See like Mike Hostetler: Yeah. Yeah, that'd be cool. Yeah. It I mean all this stuff it's like having kids, you gotta babysit it. Like the skylight, you gotta babysit this stuff. And I've been more of like simplifying my life and just getting it out of my life and then I am able to focus more on code. Jacob Luetzow: Yeah. Well what's funny, what's funny too, like I added an MCP to kill switch. I use that for almost everything now, like cause I can just add notes right to it and I don't I don't have to deal with my markdown editor, which by the way, it works really well, but you know what works better? Just an LLM. Mike Hostetler: Yeah. Yeah. For sure. Yeah. Just throw it in there. Good. Jacob Luetzow: So it's been fun, yeah. I almost need to just have an agent chat in the app so you don't even have to like connect the MCP. Mike Hostetler: Yeah, that would work too. You know, it's I there's a great Elixir package you could build that with. Jacob Luetzow: What, Ash? Yeah, I don't need that. I feel like I don't need that many agents though. I don't need the power of Jito. Mike Hostetler: Gino, come on. ⁓ Jito can do one a an agent like that. Yeah, it's one Jito agent. Yeah. Mm-hmm. Well it's it's just one like an admin chat. Mm-hmm Yeah, Jito can do all that, Jito AI. I'll help ya. Jacob Luetzow: Like an agent per user kind of thing. ⁓ yeah, that could kinda Maybe I have a reason to use Jito. Mike Hostetler: There you go. Jace started using it this week. He said he liked it. So yeah, he is. The the data cleansing, data cleansing project. So Jacob Luetzow: Yeah, he's building a cool project. I'll have to bring him on to talk about it. Yeah, very cool. ⁓ the fun of web scraping. I was I what's funny is ⁓ my very first project, my very first software project I ever wrote. Sadly, it was written in Java, but it was a web it was a web scraper. Cause I was it was it was for my grandpa's business. ⁓ we were too cheap to pay for addresses of dry cleaners and things for Mike Hostetler: But yeah. ⁓ okay. Uh-huh. Jacob Luetzow: Mailers that he put out. And I used Google Maps. And every 10 pages, I would use a I would change my proxy. So I had a different IP. So I could keep because they would cut me off after 10 pages of clicking. And so I would web scrape. It worked really slow, but it it was awesome. I got thousands and thousands of addresses and business data. Yeah. And now what you can do with Jito Gito agents. Mike Hostetler: Yeah. ⁓ it'll cut you off, yes, right. Yeah. That's great. Good stuff. I exactly. Just go scrape it all, flip around proxies, do it all. Jacob Luetzow: Could you have a different could you spring up like a could you put a proxy on each agent? That would be cool. Mike Hostetler: Yeah. I ⁓ it's just it's plugging plugging all the pieces together. So Jacob Luetzow: Yeah. Okay. All right. Well, Mike, I won't keep you any longer. This has been fun. Mike Hostetler: Well thanks man. I appreciate it. And ⁓ yeah, it has been fun. Good to hang out. Appreciate it. Jacob Luetzow: And if you guys don't already, you should be following Mike on all the social media, especially X. And those links should already be in the description. And ⁓ yeah, thanks for everyone that tuned in and I'll see you guys next week. Mike Hostetler: Thanks. All right. Take care.