Sorry

This feed does not validate.

In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: https://www.oreilly.com/radar/feed/index.xml

  1. <?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
  2. xmlns:content="http://purl.org/rss/1.0/modules/content/"
  3. xmlns:media="http://search.yahoo.com/mrss/"
  4. xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  5. xmlns:dc="http://purl.org/dc/elements/1.1/"
  6. xmlns:atom="http://www.w3.org/2005/Atom"
  7. xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  8. xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  9. xmlns:custom="https://www.oreilly.com/rss/custom"
  10.  
  11. >
  12.  
  13. <channel>
  14. <title>Radar</title>
  15. <atom:link href="https://www.oreilly.com/radar/feed/" rel="self" type="application/rss+xml" />
  16. <link>https://www.oreilly.com/radar</link>
  17. <description>Now, next, and beyond: Tracking need-to-know trends at the intersection of business and technology</description>
  18. <lastBuildDate>Thu, 16 Oct 2025 11:13:24 +0000</lastBuildDate>
  19. <language>en-US</language>
  20. <sy:updatePeriod>
  21. hourly </sy:updatePeriod>
  22. <sy:updateFrequency>
  23. 1 </sy:updateFrequency>
  24. <generator>https://wordpress.org/?v=6.8.2</generator>
  25.  
  26. <image>
  27. <url>https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/04/cropped-favicon_512x512-160x160.png</url>
  28. <title>Radar</title>
  29. <link>https://www.oreilly.com/radar</link>
  30. <width>32</width>
  31. <height>32</height>
  32. </image>
  33. <item>
  34. <title>Generative AI in the Real World: Context Engineering with Drew Breunig</title>
  35. <link>https://www.oreilly.com/radar/?post_type=podcast&#038;p=17562</link>
  36. <comments>https://www.oreilly.com/radar/?post_type=podcast&#038;p=17562#respond</comments>
  37. <pubDate></pubDate>
  38. <dc:creator><![CDATA[Ben Lorica and Drew Breunig]]></dc:creator>
  39. <category><![CDATA[Generative AI in the Real World]]></category>
  40. <category><![CDATA[Podcast]]></category>
  41.  
  42. <guid isPermaLink="false">https://www.oreilly.com/radar/?post_type=podcast&#038;p=17562</guid>
  43.  
  44. <enclosure url="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3" length="0" type="audio/mpeg" />
  45. <media:content
  46. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2024/01/Podcast_Cover_GenAI_in_the_Real_World-scaled.png"
  47. medium="image"
  48. type="image/png"
  49. width="2560"
  50. height="2560"
  51. />
  52.  
  53. <media:thumbnail
  54. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2024/01/Podcast_Cover_GenAI_in_the_Real_World-160x160.png"
  55. width="160"
  56. height="160"
  57. />
  58. <description><![CDATA[In this episode, Ben Lorica and Drew Breunig, a strategist at the Overture Maps Foundation, talk all things context engineering: what’s working, where things are breaking down, and what comes next. Listen in to hear why huge context windows aren’t solving the problems we hoped they might, why companies shouldn’t discount evals and testing, and [&#8230;]]]></description>
  59. <content:encoded><![CDATA[
  60. <p>In this episode, Ben Lorica and Drew Breunig, a strategist at the Overture Maps Foundation, talk all things context engineering: what’s working, where things are breaking down, and what comes next. Listen in to hear why huge context windows aren’t solving the problems we hoped they might, why companies shouldn’t discount evals and testing, and why we’re doing the field a disservice by leaning into marketing and buzzwords rather than trying to leverage what current crop of LLMs are actually capable of.</p>
  61.  
  62.  
  63.  
  64. <p><strong>About the <em>Generative AI in the Real World </em>podcast</strong>: In 2023, ChatGPT put AI on everyone’s agenda. In 2025, the challenge will be turning those agendas into reality. In <em>Generative AI in the Real World</em>, Ben Lorica interviews leaders who are building with AI. Learn from their experience to help put AI to work in your enterprise.</p>
  65.  
  66.  
  67.  
  68. <p>Check out <a href="https://learning.oreilly.com/playlists/42123a72-1108-40f1-91c0-adbfb9f4983b/?_gl=1*m7f70i*_ga*MTYyODYzMzQwMi4xNzU4NTY5ODYz*_ga_092EL089CH*czE3NTkxNzAwODUkbzE0JGcwJHQxNzU5MTcwMDg1JGo2MCRsMCRoMA.." target="_blank" rel="noreferrer noopener">other episodes</a> of this podcast on the O’Reilly learning platform.</p>
  69.  
  70.  
  71.  
  72. <h2 class="wp-block-heading">Transcript</h2>
  73.  
  74.  
  75.  
  76. <p><em>This transcript was created with the help of AI and has been lightly edited for clarity.</em></p>
  77.  
  78.  
  79.  
  80. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=0" target="_blank" rel="noreferrer noopener">00.00</a>: <strong>All right. So today we have Drew Breunig. He is a strategist at the Overture Maps Foundation. And he&#8217;s also in the process of writing a book for O&#8217;Reilly called the <em>Context Engineering Handbook</em>. And with that, Drew, welcome to the podcast.</strong></p>
  81.  
  82.  
  83.  
  84. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=23" target="_blank" rel="noreferrer noopener">00.23</a>: Thanks, Ben. Thanks for having me on here. </p>
  85.  
  86.  
  87.  
  88. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=26" target="_blank" rel="noreferrer noopener">00.26</a>: <strong>So context engineering. . . I remember before ChatGPT was even released, someone was talking to me about prompt engineering. I said, “What&#8217;s that?” And then of course, fast-forward to today, now people are talking about context engineering. And I guess the short definition is it&#8217;s the delicate art and science of filling the context window with just the right information. What&#8217;s broken with how teams think about context today? </strong></p>
  89.  
  90.  
  91.  
  92. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=56" target="_blank" rel="noreferrer noopener">00.56</a>: I think it&#8217;s important to talk about why we need a new word or why a new word makes sense. I was just talking with Mike Taylor, who wrote the <a href="https://learning.oreilly.com/library/view/prompt-engineering-for/9781098153427/" target="_blank" rel="noreferrer noopener">prompt engineering book</a> for O&#8217;Reilly, exactly about this and why we need a new word. Why is prompt engineering not good enough? And I think it has to do with the way the models and the way they&#8217;re being built is evolving. I think it also has to deal with the way that we&#8217;re learning how to use these models. </p>
  93.  
  94.  
  95.  
  96. <p>And so prompt engineering was a natural word to think about when your interaction and how you program the model was maybe one turn of conversation, maybe two, and you might pull in some context to give it examples. You might do some RAG and context augmentation, but you&#8217;re working with this one-shot service. And that was really similar to the way people were working in chatbots. And so prompt engineering started to evolve as this thing.&nbsp;</p>
  97.  
  98.  
  99.  
  100. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=120" target="_blank" rel="noreferrer noopener">02.00</a>: But as we started to build agents and as companies started to develop models that were capable of multiturn tool-augmented reasoning usage, suddenly you&#8217;re not using that one prompt. You have a context that is sometimes being prompted by you, sometimes being modified by your software harness around the model, sometimes being modified by the model itself. And increasingly the model is starting to manage that context. And that prompt is very user-centric. It is a user giving that prompt. </p>
  101.  
  102.  
  103.  
  104. <p>But when we start to have these multiturn systematic editing and preparation of contexts, a new word was needed, which is this idea of context engineering. This is not to belittle prompt engineering. I think it&#8217;s an evolution. And it shows how we&#8217;re evolving and finding this space in real time. I think context engineering is more suited to agents and applied AI programing, whereas prompt engineering lives in how people use chatbots, which is a different field. It&#8217;s not better and not worse.&nbsp;</p>
  105.  
  106.  
  107.  
  108. <p>And so context engineering is more specific to understanding the failure modes that occur, diagnosing those failure modes and establishing good practices for both preparing your context but also setting up systems that fix and edit your context, if that makes sense.&nbsp;</p>
  109.  
  110.  
  111.  
  112. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=213" target="_blank" rel="noreferrer noopener">03.33</a>: <strong>Yeah, and also, it seems like the words themselves are indicative of the scope, right? So “prompt” engineering means it&#8217;s the prompt. So you&#8217;re fiddling with the prompt. And [with] context engineering, “context” can be a lot of things. It could be the information you retrieve. It might involve RAG, so you retrieve information. You put that in the context window. </strong></p>
  113.  
  114.  
  115.  
  116. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=242" target="_blank" rel="noreferrer noopener">04.02</a>: Yeah. And people were doing that with prompts too. But I think in the beginning we just didn&#8217;t have the words. And that word became a big empty bucket that we filled up. You know, the quote I always quote too often, but I find it fitting, is one of my favorite quotes from Stuart Brand, which is, “If you want to know where the future is being made, follow where the lawyers are congregating and the language is being invented,” and the arrival of context engineering as a word came after the field was invented. It just kind of crystallized and demarcated what people were already doing. </p>
  117.  
  118.  
  119.  
  120. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=276" target="_blank" rel="noreferrer noopener">04.36</a>: <strong>So the word “context” means you&#8217;re providing context. So context could be a tool, right? It could be memory. Whereas the word “prompt” is much more specific.</strong> </p>
  121.  
  122.  
  123.  
  124. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=295" target="_blank" rel="noreferrer noopener">04.55</a>: And I think it also is like, it has to be edited by a person. I&#8217;m a big advocate for not using anthropomorphizing words around large language models. “Prompt” to me involves agency. And so I think it’s nice—it&#8217;s a good delineation. </p>
  125.  
  126.  
  127.  
  128. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=314" target="_blank" rel="noreferrer noopener">05.14</a>: <strong>And then I think one of the very immediate lessons that people realize is, just because. . . </strong></p>
  129.  
  130.  
  131.  
  132. <p><strong>So one of the things that these model providers do when they have a model release,&nbsp; one of the things they note is, What&#8217;s the size of the context window? So people started associating context window [with] “I stuff as much as I can in there.” But the reality is actually that, one, it&#8217;s not efficient. And two, it also is not useful to the model. Just because you have a massive context window doesn&#8217;t mean that the model treats the entire context window evenly.</strong></p>
  133.  
  134.  
  135.  
  136. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=357" target="_blank" rel="noreferrer noopener">05.57</a>: Yeah, it doesn&#8217;t treat it evenly. And it&#8217;s not a one-size-fits-all solution. So I don&#8217;t know if you remember last year, but that was the big dream, which was, “Hey, we&#8217;re doing all this work with RAG and augmenting our context. But wait a second, if we can make the context 1 million tokens, 2 million tokens, I don&#8217;t have to run RAG on all of my corporate documents. I can just fit it all in there, and I can constantly be asking this. And if we can do this, we essentially have solved all of the hard problems that we were worrying about last year.” And so that was the big hope. </p>
  137.  
  138.  
  139.  
  140. <p>And you started to see an arms race of everybody trying to make bigger and bigger context windows to the point where, you know, Llama 4 had its spectacular flameout. It was rushed out the door. But the headline feature by far was “We will be releasing a 10 million token context window.” And the thing that everybody realized is.&nbsp;.&nbsp;.&nbsp; Like, all right, we were really hopeful for that. And then as we started building with these context windows, we started to realize there were some big limitations around them.</p>
  141.  
  142.  
  143.  
  144. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=421" target="_blank" rel="noreferrer noopener">07.01</a>: Perhaps the thing that clicked for me was in <a href="https://arxiv.org/abs/2507.06261" target="_blank" rel="noreferrer noopener">Google&#8217;s Gemini 2.5 paper</a>. Fantastic paper. And one of the reasons I love it is because they dedicate about four pages in the appendix to talking about the kind of methodology and harnesses they built so that they could teach Gemini to play Pokémon: how to connect it to the game, how to actually read out the state of the game, how to make choices about it, what tools they gave it, all of these other things.</p>
  145.  
  146.  
  147.  
  148. <p>And buried in there was a real “warts and all” case study, which are my favorite when you talk about the hard things and especially when you cite the things you can&#8217;t overcome. And Gemini 2.5 was a million-token context window with, eventually, 2 million tokens coming. But in this Pokémon thing, they said, “Hey, we actually noticed something, which is once you get to about 200,000 tokens, things start to fall apart, and they fall apart for a host of reasons. They start to hallucinate. One of the things that is really demonstrable is they start to rely more on the context knowledge than the weights knowledge.&nbsp;</p>
  149.  
  150.  
  151.  
  152. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=502" target="_blank" rel="noreferrer noopener">08.22</a>: So inside every model there&#8217;s a knowledge base. There&#8217;s, you know, all of these other things that get kind of buried into the parameters. But when you reach a certain level of context, it starts to overload the model, and it starts to rely more on the examples in the context. And so this means that you are not taking advantage of the full strength or knowledge of the model. </p>
  153.  
  154.  
  155.  
  156. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=523" target="_blank" rel="noreferrer noopener">08.43</a>: So that&#8217;s one way it can fail. We call this “context distraction,” though Kelly Hong at Chroma has written an <a href="https://research.trychroma.com/context-rot" target="_blank" rel="noreferrer noopener">incredible paper documenting this</a>, which she calls “context rot,” which is a similar way [of] charting when these benchmarks start to fall apart.</p>
  157.  
  158.  
  159.  
  160. <p>Now the cool thing about this is that you can actually use this to your advantage. There&#8217;s another paper out of, I believe, the Harvard Interaction Lab, where they look at these inflection points for.&nbsp;.&nbsp;.&nbsp;</p>
  161.  
  162.  
  163.  
  164. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=553" target="_blank" rel="noreferrer noopener">09.13</a>: Are you familiar with the term “in-context learning”? In-context learning is when you teach the model to do something that doesn&#8217;t know how to do by providing examples in your context. And those examples illustrate how it should perform. It&#8217;s not something that it&#8217;s seen before. It&#8217;s not in the weights. It&#8217;s a completely unique problem. </p>
  165.  
  166.  
  167.  
  168. <p>Well, sometimes those in-context learning[s] are counter to what the model has learned in the weights. So they end up fighting each other, the weights and the context. And this paper documented that when you get over a certain context length, you can overwhelm the weights and you can force it to listen to your in-context examples.</p>
  169.  
  170.  
  171.  
  172. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=597" target="_blank" rel="noreferrer noopener">09.57</a>: And so all of this is just to try to illustrate the complexity of what&#8217;s going on here and how I think one of the traps that leads us to this place is that the gift and the curse of LLMs is that we prompt and build contexts that are in the English language or whatever language you speak. And so that leads us to believe that they&#8217;re going to react like other people or entities that read the English language.</p>
  173.  
  174.  
  175.  
  176. <p>And the fact of the matter is, they don&#8217;t—they&#8217;re reading it in a very specific way. And that specific way can vary from model to model. And so you have to systematically approach this to understand these nuances, which is where the context management field comes in.&nbsp;</p>
  177.  
  178.  
  179.  
  180. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=635" target="_blank" rel="noreferrer noopener">10.35</a>: <strong>This is interesting because even before those papers came out, there were studies which showed the exact opposite problem, which is the following: You may have a RAG system that actually retrieves the right information, but then somehow the LLMs can still fail because, as you alluded to, they have weights so they have prior beliefs. You saw something [on] the internet, and they will opine against the precise information you retrieve from the context. </strong></p>
  181.  
  182.  
  183.  
  184. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=668" target="_blank" rel="noreferrer noopener">11.08</a>: This is a really big problem. </p>
  185.  
  186.  
  187.  
  188. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=669" target="_blank" rel="noreferrer noopener">11.09</a>: <strong>So this is true even if the context window’s small actually.</strong> </p>
  189.  
  190.  
  191.  
  192. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=673" target="_blank" rel="noreferrer noopener">11.13</a>: Yeah, and Ben, you touched on something that&#8217;s really important. So in my <a href="https://www.dbreunig.com/2025/06/22/how-contexts-fail-and-how-to-fix-them.html" target="_blank" rel="noreferrer noopener">original blog post</a>, I document four ways that context fails. I talk about “context poisoning.” That&#8217;s when you hallucinate something in a long-running task and it stays in there, and so it&#8217;s continually confusing it. “Context distraction,” which is when you overwhelm that soft limit to the context window and then you start to perform poorly. “Context confusion”: This is when you put things that aren&#8217;t relevant to the task inside your context, and suddenly they think the model thinks that it has to pay attention to this stuff and it leads them astray. And then the last thing is “context clash,” which is when there&#8217;s information in the context that’s at odds with the task that you are trying to perform. </p>
  193.  
  194.  
  195.  
  196. <p>A good example of this is, say you&#8217;re asking the model to only reply in JSON, but you&#8217;re using MCP tools that are defined with XML. And so you&#8217;re creating this backwards thing. But I think there&#8217;s a fifth piece that I need to write about because it keeps coming up. And it&#8217;s exactly what you described.</p>
  197.  
  198.  
  199.  
  200. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=743" target="_blank" rel="noreferrer noopener">12.23</a>: Douwe [Kiela] over at Contextual AI refers to this as “context” or “prompt adherence.” But the term that keeps sticking in my mind is this idea of fighting the weights. There’s three situations you get yourself into when you&#8217;re interacting with an LLM. The first is when you&#8217;re working with the weights. You&#8217;re asking it a question that it knows how to answer. It&#8217;s seen many examples of that answer. It has it in its knowledge base. It comes back with the weights, and it can give you a phenomenal, detailed answer to that question. That&#8217;s what I call “working with the weights.” </p>
  201.  
  202.  
  203.  
  204. <p>The second is what we referred to earlier, which is that in-context learning, which is you&#8217;re doing something that it doesn&#8217;t know about and you&#8217;re showing an example, and then it does it. And this is great. It&#8217;s wonderful. We do it all the time.&nbsp;</p>
  205.  
  206.  
  207.  
  208. <p>But then there&#8217;s a third example which is, you&#8217;re providing it examples. But those examples are at odds with some things that it had learned usually during posttraining, during the fine-tuning or RL stage. A really good example is format outputs.&nbsp;</p>
  209.  
  210.  
  211.  
  212. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=814" target="_blank" rel="noreferrer noopener">13.34</a>: Recently a friend of mine was updating his pipeline to try out a new model, Moonshots. A really great model and really great model for tool use. And so he just changed his model and hit run to see what happened. And he kept failing—his thing couldn&#8217;t even work. He&#8217;s like, “I don&#8217;t understand. This is supposed to be the best tool use model there is.” And he asked me to look at his code.</p>
  213.  
  214.  
  215.  
  216. <p>I looked at his code and he was extracting data using Markdown, essentially: “Put the final answer in an ASCII box and I&#8217;ll extract it that way.” And I said, “If you change this to XML, see what happens. Ask it to respond in XML, use XML as your formatting, and see what happens.” He did that. That one change passed every test. Like basically crushed it because it was working with the weights. He wasn&#8217;t fighting the weights. Everyone’s experienced this if you build with AI: the stubborn things it refuses to do, no matter how many times you ask it, including formatting.&nbsp;</p>
  217.  
  218.  
  219.  
  220. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=875" target="_blank" rel="noreferrer noopener">14.35</a>: [Here’s] my favorite example of this though, Ben: So in ChatGPT’s web interface or their application interface, if you go there and you try to prompt an image, a lot of the images that people prompt—and I&#8217;ve talked to user research about this—are really boring prompts. They have a text box that can be anything, and they&#8217;ll say something like “a black cat” or “a statue of a man thinking.”</p>
  221.  
  222.  
  223.  
  224. <p>OpenAI realized this was leading to a lot of bad images because the prompt wasn&#8217;t detailed; it wasn&#8217;t a good prompt. So they built a system that recognizes if your prompt is too short, low detail, bad, and it hands it to another model and says, “Improve this prompt,” and it improves the prompt for you. And if you inspect in Chrome or Safari or Firefox, whatever, you inspect the developer settings, you can see the JSON being passed back and forth, and you can see your original prompt going in. Then you can see the improved prompt.&nbsp;</p>
  225.  
  226.  
  227.  
  228. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=936" target="_blank" rel="noreferrer noopener">15.36</a>: My favorite example of this [is] I asked it to make a statue of a man thinking, and it came back and said something like “A detailed statue of a human figure in a thinking pose similar to Rodin&#8217;s ‘The Thinker.’ The statue is made of weathered stone sitting on a pedestal. . .” Blah blah blah blah blah blah. A paragraph. . . But below that prompt there were instructions to the chatbot or to the LLM that said, “Generate this image and after you generate the image, do not reply. Do not ask follow up questions. Do not ask. Do not make any comments describing what you&#8217;ve done. Just generate the image.” And in this prompt, then nine times, some of them in all caps, they say, “Please do not reply.” And the reason is because a big chunk of OpenAI’s posttraining is teaching these models how to converse back and forth. They want you to always be asking a follow-up question and they train it. And so now they have to fight the prompts. They have to add in all these statements. And that&#8217;s another way that fails. </p>
  229.  
  230.  
  231.  
  232. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1002" target="_blank" rel="noreferrer noopener">16.42</a>: So why I bring this up—and this is why I need to write about it—is as an applied AI developer, you need to recognize when you&#8217;re fighting the prompt, understand enough about the posttraining of that model, or make some assumptions about it, so that you can stop doing that and try something different, because you&#8217;re just banging your head against a wall and you&#8217;re going to get inconsistent, bad applications and the same statement 20 times over. </p>
  233.  
  234.  
  235.  
  236. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1027" target="_blank" rel="noreferrer noopener">17.07</a>: <strong>By the way, the other thing that’s interesting about this whole topic is, people actually somehow have underappreciated or forgotten all of the progress we&#8217;ve made in information retrieval. There&#8217;s a whole. . . I mean, these people have their own conferences, right? Everything from reranking to the actual indexing, even with vector search—the information retrieval community still has a lot to offer, and it&#8217;s the kind of thing that people underappreciated. And so by simply loading your context window with massive amounts of garbage, you&#8217;re actually, leaving on the field so much progress in information retrieval.</strong></p>
  237.  
  238.  
  239.  
  240. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1084" target="_blank" rel="noreferrer noopener">18.04</a>: I do think it&#8217;s hard. And that&#8217;s one of the risks: We&#8217;re building all this stuff so fast from the ground up, and there&#8217;s a tendency to just throw everything into the biggest model possible and then hope it sorts it out.</p>
  241.  
  242.  
  243.  
  244. <p>I really do think there&#8217;s two pools of developers. There&#8217;s the “throw everything in the model” pool, and then there&#8217;s the “I&#8217;m going to take incremental steps and find the most optimal model.” And I often find that latter group, which I called a compound AI group after a <a href="https://bair.berkeley.edu/blog/2024/02/18/compound-ai-systems/" target="_blank" rel="noreferrer noopener">paper that was published out of Berkeley</a>, those tend to be people who have run data pipelines, because it&#8217;s not just a simple back and forth interaction. It&#8217;s gigabytes or even more of data you&#8217;re processing with the LLM. The costs are high. Latency is important. So designing efficient systems is actually incredibly key, if not a total requirement. So there&#8217;s a lot of innovation that comes out of that space because of that kind of boundary.</p>
  245.  
  246. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1148" target="_blank" rel="noreferrer noopener">19.08</a>: <strong>If you were to talk to one of these applied AI teams and you were to give them one or two things that they can do right away to improve, or fix context in general, what are some of the best practices?</strong></p>
  247.  
  248.  
  249.  
  250. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1169" target="_blank" rel="noreferrer noopener">19.29</a>: Well you&#8217;re going to laugh, Ben, because the answer is dependent on the context, and I mean the context in the team and what have you. </p>
  251.  
  252.  
  253.  
  254. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1178" target="_blank" rel="noreferrer noopener">19.38</a>: <strong>But if you were to just go give a keynote to a general audience, if you were to list down one, two, or three things that are the lowest hanging fruit, so to speak. . .</strong></p>
  255.  
  256.  
  257.  
  258. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1190" target="_blank" rel="noreferrer noopener">19.50</a>: The first thing I&#8217;m gonna do is I&#8217;m going to look in the room and I&#8217;m going to look at the titles of all the people in there, and I&#8217;m going to see if they have any subject-matter experts or if it&#8217;s just a bunch of engineers trying to build something for subject-matter experts. And my first bit of advice is you need to get yourself a subject-matter expert who is looking at the data, helping you with the eval data, and telling you what “good” looks like. </p>
  259.  
  260.  
  261.  
  262. <p>I see a lot of teams that don&#8217;t have this, and they end up building fairly brittle prompt systems. And then they can&#8217;t iterate well, and so that enterprise AI project fails. I also see them not wanting to open themselves up to subject-matter experts, because they want to hold on to the power themselves. It&#8217;s not how they&#8217;re used to building.&nbsp;</p>
  263.  
  264.  
  265.  
  266. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1238" target="_blank" rel="noreferrer noopener">20.38</a>: I really do think building in applied AI has changed the power dynamic between builders and subject-matter experts. You know, we were talking earlier about some of like the old Web 2.0 days and I&#8217;m sure you remember. . . Remember back at the beginning of the iOS app craze, we&#8217;d be at a dinner party and someone would find out that you&#8217;re capable of building an app, and you would get cornered by some guy who&#8217;s like “I&#8217;ve got a great idea for an app,” and he would just talk at you—usually a he. </p>
  267.  
  268.  
  269.  
  270. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1275" target="_blank" rel="noreferrer noopener">21.15</a>: <strong>This is back in the Objective-C days. . .</strong></p>
  271.  
  272.  
  273.  
  274. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1277" target="_blank" rel="noreferrer noopener">21.17</a>: Yes, way back when. And this is someone who loves Objective-C. So you&#8217;d get cornered and you’d try to find a way out of that awkward conversation. Nowadays, that dynamic has shifted. The subject-matter expertise is so important for codifying and designing the spec, which usually gets specced out by the evals that it leads itself to more. And you can even see this. OpenAI is arguably creating and at the forefront of this stuff. And what are they doing? They&#8217;re standing up programs to get lawyers to come in, to get doctors to come in, to get these specialists to come in and help them create benchmarks because they can&#8217;t do it themselves. And so that&#8217;s the first thing. Got to work with the subject-matter expert. </p>
  275.  
  276.  
  277.  
  278. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1324" target="_blank" rel="noreferrer noopener">22.04</a>: The second thing is if they&#8217;re just starting out—and this is going to sound backwards, given our topic today—I would encourage them to use a system like DSPy or GEPA, which are essentially frameworks for building with AI. And one of the components of that framework is that they optimize the prompt for you with the help of an LLM and your eval data. </p>
  279.  
  280.  
  281.  
  282. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1357" target="_blank" rel="noreferrer noopener">22.37</a>: <strong>Throw in BAML?</strong></p>
  283.  
  284.  
  285.  
  286. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1359" target="_blank" rel="noreferrer noopener">22.39</a>: BAML is similar [but it’s] more like the spec for how to describe the entire spec. So it&#8217;s similar.</p>
  287.  
  288.  
  289.  
  290. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1372" target="_blank" rel="noreferrer noopener">22.52</a>: <strong>BAML and TextGrad? </strong></p>
  291.  
  292.  
  293.  
  294. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1375" target="_blank" rel="noreferrer noopener">22.55</a>: TextGrad is more like the prompt optimization I&#8217;m talking about. </p>
  295.  
  296.  
  297.  
  298. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1377" target="_blank" rel="noreferrer noopener">22:57</a>: <strong>TextGrad plus GEPA plus Regolo?</strong></p>
  299.  
  300.  
  301.  
  302. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1382" target="_blank" rel="noreferrer noopener">23.02</a>: Yeah, those things are really important. And the reason I say they&#8217;re important is. . .</p>
  303.  
  304.  
  305.  
  306. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1388" target="_blank" rel="noreferrer noopener">23.08</a>: <strong>I mean, Drew, those are kind of advanced topics. </strong></p>
  307.  
  308.  
  309.  
  310. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1392" target="_blank" rel="noreferrer noopener">23.12</a>: I don&#8217;t think they&#8217;re that advanced. I think they can appear really intimidating because everybody comes in and says, “Well, it&#8217;s so easy. I could just write what I want.” And this is the gift and curse of prompts, in my opinion. There&#8217;s a lot of things to like about.</p>
  311.  
  312.  
  313.  
  314. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1413" target="_blank" rel="noreferrer noopener">23.33</a>: <strong>DSPy is fine, but I think TextGrad, GEPA, and Regolo. . .</strong></p>
  315.  
  316.  
  317.  
  318. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1421" target="_blank" rel="noreferrer noopener">23.41</a>: Well. . . I wouldn&#8217;t encourage you to use GEPA directly. I would encourage you to use it through the framework of DSPy. </p>
  319.  
  320.  
  321.  
  322. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1428" target="_blank" rel="noreferrer noopener">23.48</a>: The point here is if it&#8217;s a team building, you can go down essentially two paths. You can handwrite your prompt, and I think this creates some issues. One is as you build, you tend to have a lot of hotfix statements like, “Oh, there&#8217;s a bug over here. We&#8217;ll say it over here. Oh, that didn&#8217;t fix it. So let&#8217;s say it again.” It will encourage you to have one person who <em>really</em> understands this prompt. And so you end up being reliant on this prompt magician. Even though they&#8217;re written in English, there&#8217;s kind of no syntax highlighting. They get messier and messier as you build the application because they start to grow and become these growing collections of edge cases.</p>
  323.  
  324.  
  325.  
  326. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1467" target="_blank" rel="noreferrer noopener">24.27</a>: And the other thing too, and this is really important, is when you build and you spend so much time honing a prompt, you&#8217;re doing it against one model, and then at some point there&#8217;s going to be a better, cheaper, more effective model. And you&#8217;re going to have to go through the process of tweaking it and fixing all the bugs again, because this model functions differently.</p>
  327.  
  328.  
  329.  
  330. <p>And I used to have to try to convince people that this was a problem, but they all kind of found out when OpenAI deprecated all of their models and tried to move everyone over to GPT-5. And now I hear about it all the time.&nbsp;</p>
  331.  
  332.  
  333.  
  334. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1503" target="_blank" rel="noreferrer noopener">25.03</a>: <strong>Although I think right now “agents” is our hot topic, right? So we talk to people about agents and you start really getting into the weeds, you realize, “Oh, okay. So their agents are really just prompts.” </strong></p>
  335.  
  336.  
  337.  
  338. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1516" target="_blank" rel="noreferrer noopener">25.16</a>: In the loop. . .</p>
  339.  
  340.  
  341.  
  342. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1519" target="_blank" rel="noreferrer noopener">25.19</a>: <strong>So agent optimization in many ways means injecting a bit more software engineering rigor in how you maintain and version. . .</strong></p>
  343.  
  344.  
  345.  
  346. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1530" target="_blank" rel="noreferrer noopener">25.30</a>: Because that context is growing. As that loop goes, you&#8217;re deciding what gets added to it. And so you have to put guardrails in—ways to rescue from failure and figure out all these things. It&#8217;s very difficult. And you have to go at it systematically. </p>
  347.  
  348.  
  349.  
  350. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1546" target="_blank" rel="noreferrer noopener">25.46</a>: <strong>And then the problem is that, in many situations, the models are not even models that you control, actually. You&#8217;re using them through an API like OpenAI or Claude so you don&#8217;t actually have access to the weights. So even if you&#8217;re one of the super, super advanced teams that can do gradient descent and backprop, you can&#8217;t do that. Right? So then, what are your options for being more rigorous in doing optimization?</strong></p>
  351.  
  352.  
  353.  
  354. <p><strong>Well, it&#8217;s precisely these tools that Drew alluded to, which is the TextGrads of the world, the GEPA. You have these compound systems that are nondifferentiable. So then how do you actually do optimization in a world where you have things that are not differentiable? Right. So these are precisely the tools that will allow you to turn it from somewhat of a, I guess, black art to something with a little more discipline.&nbsp;</strong></p>
  355.  
  356.  
  357.  
  358. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1613" target="_blank" rel="noreferrer noopener">26.53</a>: And I think a good example is, even if you aren&#8217;t going to use prompt optimization-type tools. . . The prompt optimization is a great solution for what you just described, which is when you can&#8217;t control the weights of the models you&#8217;re using. But the other thing too, is, even if you aren&#8217;t going to adopt that, you need to get evals because that&#8217;s going to be step one for anything, which is you need to start working with subject-matter experts to create evals.</p>
  359.  
  360.  
  361.  
  362. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1642" target="_blank" rel="noreferrer noopener">27.22</a>: Because what I see. . . And there was just a really dumb argument online of “Are evals worth it or not?” And it was really silly to me because it was positioned as an either-or argument. And there were people arguing against evals, which is just insane to me. And the reason they were arguing against evals is they&#8217;re basically arguing in favor of what they called, to your point about dark arts, vibe shipping—which is they&#8217;d make changes, push those changes, and then the person who was also making the changes would go in and type in 12 different things and say, “Yep, feels right to me.” And that&#8217;s insane to me. </p>
  363.  
  364.  
  365.  
  366. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1677" target="_blank" rel="noreferrer noopener">27.57</a>: And even if you&#8217;re doing that—which I think is a good thing and you may not go create coverage and eval, you have some taste. . . And I do think when you&#8217;re building more qualitative tools. . . So a good example is like if you’re Character.AI or you’re Portola Labs, who’s building essentially personalized emotional chatbots, it&#8217;s going to be harder to create evals and it&#8217;s going to require taste as you build them. But having evals is going to ensure that your whole thing didn&#8217;t fall apart because you changed one sentence, which sadly is a risk because these are probabilistic software.</p>
  367.  
  368.  
  369.  
  370. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1713" target="_blank" rel="noreferrer noopener">28.33</a>: <strong>Honestly, evals are super important. Number one, because, basically, leaderboards like LMArena are great for narrowing your options. But at the end of the day, you still need to benchmark all of these against your own application use case and domain. And then secondly, obviously, it&#8217;s an ongoing thing. So it ties in with reliability. The more reliable your application is, that means most likely you&#8217;re doing evals properly in an ongoing fashion. And I really believe that eval and reliability are a moat, because basically what else is your moat? Prompt? That&#8217;s not a moat. </strong></p>
  371.  
  372.  
  373.  
  374. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1761" target="_blank" rel="noreferrer noopener">29.21</a>: So first off, violent agreement there. The only asset teams truly have—unless they&#8217;re a model builder, which is only a handful—is their eval data. And I would say the counterpart to that is their spec, whatever defines their program, but mostly the eval data. But to the other point about it, like why are people vibe shipping? I think you can get pretty far with vibe shipping and it fools you into thinking that that’s right.</p>
  375.  
  376.  
  377.  
  378. <p>We saw this pattern in the Web 2.0 and social era, which was, you would have the product genius—everybody wanted to be the Steve Jobs, who didn&#8217;t hold focus groups, didn&#8217;t ask their customers what they wanted. The Henry Ford quote about “They all say faster horses,” and I&#8217;m the genius who comes in and tweaks these things and ships them. And that often takes you very far.</p>
  379.  
  380.  
  381.  
  382. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1813" target="_blank" rel="noreferrer noopener">30.13</a>: I also think it&#8217;s a bias of success. We only know about the ones that succeed, but the best ones, when they grow up and they start to serve an audience that&#8217;s way bigger than what they could hold in their head, they start to grow up with AB testing and ABX testing throughout their organization. And a good example of that is Facebook.</p>
  383.  
  384.  
  385.  
  386. <p>Facebook stopped being just some choices and started having to do testing and ABX testing in every aspect of their business. Compare that to Snap, which again, was kind of the last of the great product geniuses to come out. Evan [Spiegel] was heralded as “He&#8217;s the product genius,” but I think they ran that too long, and they kept shipping on vibes rather than shipping on ABX testing and growing and, you know, being more boring.</p>
  387.  
  388.  
  389.  
  390. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1864" target="_blank" rel="noreferrer noopener">31.04</a>: But again, that&#8217;s how you get the global reach. I think there&#8217;s a lot of people who probably are really great vibe shippers. And they&#8217;re probably having great success doing that. The question is, as their company grows and starts to hit harder times or the growth starts to slow, can that vibe shipping take them over the hump? And I would argue, no, I think you have to grow up and start to have more accountable metrics that, you know, scale to the size of your audience. </p>
  391.  
  392.  
  393.  
  394. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1894" target="_blank" rel="noreferrer noopener">31.34</a>: <strong>So in closing. . . We talked about prompt engineering. And then we talked about context engineering. So putting you on the spot. What&#8217;s a buzzword out there that either irks you or you think is undertalked about at this point? So what&#8217;s a buzzword out there, Drew? </strong></p>
  395.  
  396.  
  397.  
  398. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1917" target="_blank" rel="noreferrer noopener">31.57</a>: [laughs] I mean, I wish you had given me some time to think about it. </p>
  399.  
  400.  
  401.  
  402. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1918" target="_blank" rel="noreferrer noopener">31.58</a>: <strong>We are in a hype cycle here. . .</strong></p>
  403.  
  404.  
  405.  
  406. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=1922" target="_blank" rel="noreferrer noopener">32.02</a>: We’re always in a hype cycle. I don’t like anthropomorphosizing LLMs or AI for a whole host of reasons. One, I think it leads to bad understanding and bad mental models, that means that we don&#8217;t have substantive conversations about these things, and we don&#8217;t learn how to build really well with them because we think they&#8217;re intelligent. We think they&#8217;re a PhD in your pocket. We think they&#8217;re all of these things and they&#8217;re not—they&#8217;re fundamentally different. </p>
  407.  
  408.  
  409.  
  410. <p>I&#8217;m not against using the way we think the brain works for inspiration. That&#8217;s fine with me. But when you start oversimplifying these and not taking the time to explain to your audience how they actually work—you just say it&#8217;s a PhD in your pocket, and here&#8217;s the benchmark to prove it—you&#8217;re misleading and setting unrealistic expectations. And unfortunately, the market rewards them for that. So they keep going.&nbsp;</p>
  411.  
  412.  
  413.  
  414. <p>But I also think it just doesn&#8217;t help you build sustainable programs because you aren&#8217;t actually understanding how it works. You&#8217;re just kind of reducing it down to it. AGI is one of those things. And superintelligence, but AGI especially.</p>
  415.  
  416.  
  417.  
  418. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2001" target="_blank" rel="noreferrer noopener">33.21</a>: I went to school at UC Santa Cruz, and one of my favorite classes I ever took was a seminar with Donna Haraway. Donna Haraway wrote “<a href="https://en.wikipedia.org/wiki/A_Cyborg_Manifesto" target="_blank" rel="noreferrer noopener">A Cyborg Manifesto</a>” in the ’80s. She&#8217;s kind of a tech science history feminist lens. You would just sit in that class and your mind would explode, and then at the end, you just have to sit there for like five minutes afterwards, just picking up the pieces. </p>
  419.  
  420.  
  421.  
  422. <p>She had a great term called “power objects.” A power object is something that we as a society recognize to be incredibly important, believe to be incredibly important, but we don&#8217;t know how it works. That lack of understanding allows us to fill this bucket with whatever we want it to be: our hopes, our fears, our dreams. This happened with DNA; this happened with PET scans and brain scans. This happens all throughout science history, down to phrenology and blood types and things that we understand to be, or we believed to be, important, but they&#8217;re not. And big data, another one that is very, very relevant.&nbsp;</p>
  423.  
  424.  
  425.  
  426. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2074" target="_blank" rel="noreferrer noopener">34.34</a>: <strong>That&#8217;s my handle on Twitter. </strong></p>
  427.  
  428.  
  429.  
  430. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2095" target="_blank" rel="noreferrer noopener">34.55</a>: Yeah, there you go. So like it&#8217;s, you know, I fill it with Ben Lorica. That&#8217;s how I fill that power object. But AI is definitely that. AI is definitely that. And my favorite example of this is when the DeepSeek moment happened, we understood this to be really important, but we didn&#8217;t understand why it works and how well it worked.</p>
  431.  
  432.  
  433.  
  434. <p>And so what happened is, if you looked at the news and you looked at people&#8217;s reactions to what DeepSeek meant, you could basically find all the hopes and dreams about whatever was important to that person. So to AI boosters, DeepSeek proved that LLM progress is not slowing down. To AI skeptics, DeepSeek proved that AI companies have no moat. To open source advocates, it proved open is superior. To AI doomers, it proved that we aren&#8217;t being careful enough. Security researchers worried about the risk of backdoors in the models because it was in China. Privacy advocates worried about DeepSeek’s web services collecting sensitive data. China hawks said, “We need more sanctions.” Doves said, “Sanctions don&#8217;t work.” NVIDIA bears said, “We&#8217;re not going to need any more data centers if it&#8217;s going to be this efficient.” And bulls said, “No, we&#8217;re going to need tons of them because it&#8217;s going to use everything.”</p>
  435.  
  436.  
  437.  
  438. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2144" target="_blank" rel="noreferrer noopener">35.44</a>: And AGI is another term like that, which means everything and nothing. And when the point we&#8217;ve reached it comes, isn&#8217;t. And compounding that is that it&#8217;s in the contract between OpenAI and Microsoft—I forget the exact term, but it&#8217;s the statement that Microsoft gets access to OpenAI’s technologies until AGI is achieved.</p>
  439.  
  440.  
  441.  
  442. <p>And so it&#8217;s a very loaded definition right now that&#8217;s being debated back and forth and trying to figure out how to take [Open]AI into being a for-profit corporation. And Microsoft has a lot of leverage because how do you define AGI? Are we going to go to court to define what AGI is? I almost look forward to that.</p>
  443.  
  444.  
  445.  
  446. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2188" target="_blank" rel="noreferrer noopener">36.28</a>: So because it&#8217;s going to be that thing, and you&#8217;ve seen Sam Altman come out and some days he talks about how LLMs are just software. Some days he talks about how it’s a PhD in your pocket, some days he talks about how we&#8217;ve already passed AGI, it&#8217;s already over. </p>
  447.  
  448.  
  449.  
  450. <p>I think Nathan Lambert has some <a href="https://www.interconnects.ai/p/agi-is-what-you-want-it-to-be" target="_blank" rel="noreferrer noopener">great writing about how AGI is a mistake</a>. We shouldn&#8217;t talk about trying to turn LLMs into humans. We should try to leverage what they do now, which is something fundamentally different, and we should keep building and leaning into that rather than trying to make them like us. So AGI is my word for you. </p>
  451.  
  452.  
  453.  
  454. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2223" target="_blank" rel="noreferrer noopener">37.03</a>: <strong>The way I think of it is, AGI is great for fundraising, let&#8217;s put it that way. </strong></p>
  455.  
  456.  
  457.  
  458. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2228" target="_blank" rel="noreferrer noopener">37.08</a>: That&#8217;s basically it. Well, until you need it to have already been achieved, or until you need it to not be achieved because you don&#8217;t want any regulation or if you <em>want</em> regulation—it&#8217;s kind of a fuzzy word. And that has some really good properties. </p>
  459.  
  460.  
  461.  
  462. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2243" target="_blank" rel="noreferrer noopener">37.23</a>: <strong>So I&#8217;ll close by throwing in my own term. So prompt engineering, context engineering. . . I will close by saying pay attention to this boring term, which my friend Ion Stoica is now talking more about “systems engineering.” If you look at particularly the agentic applications, you&#8217;re talking about systems.</strong></p>
  463.  
  464.  
  465.  
  466. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2275" target="_blank" rel="noreferrer noopener">37.55</a>: Can I add one thing to this? Violent agreement. I think that is an underrated. . . </p>
  467.  
  468.  
  469.  
  470. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2280" target="_blank" rel="noreferrer noopener">38.00</a>: <strong>Although I think it&#8217;s too boring a term, Drew, to take off.</strong></p>
  471.  
  472.  
  473.  
  474. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2283" target="_blank" rel="noreferrer noopener">38.03</a>: That’s fine! The reason I like it is because—and you were talking about this when you talk about fine-tuning—is, looking at the way people build and looking at the way I see teams with success build, there&#8217;s pretraining, where you&#8217;re basically training on unstructured data and you&#8217;re just building your base knowledge, your base English capabilities and all that. And then you have posttraining. And in general, posttraining is where you build. I do think of it as a form of interface design, even though you are adding new skills, but you&#8217;re teaching reasoning, you&#8217;re teaching it validated functions like code and math. You&#8217;re teaching it how to chat with you. This is where it learns to converse. You&#8217;re teaching it how to use tools and specific sets of tools. And then you&#8217;re teaching it alignment, what&#8217;s safe, what&#8217;s not safe, all these other things. </p>
  475.  
  476.  
  477.  
  478. <p>But then after it ships, you can still RL that model, you can still fine-tune that model, and you can still prompt engineer that model, and you can still context engineer that model. And back to the systems engineering thing is, I think we&#8217;re going to see that posttraining all the way through to a final applied AI product. That&#8217;s going to be a real shades-of-gray gradient. It’s going to be. And this is one of the reasons why I think open models have a pretty big advantage in the future is that you&#8217;re going to dip down the way throughout that, leverage that.&nbsp;.&nbsp;.</p>
  479.  
  480.  
  481.  
  482. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2372" target="_blank" rel="noreferrer noopener">39.32</a>: The only thing that&#8217;s keeping us from doing that now is we don&#8217;t have the tools and the operating system to align throughout that posttraining to shipping. Once we do, that operating system is going to change how we build, because the distance between posttraining and building is going to look really, really, really blurry. I really like the systems engineering type of approach, but I also think you can also start to see this yesterday [when] Thinking Machines released their first product.</p>
  483.  
  484.  
  485.  
  486. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2404" target="_blank" rel="noreferrer noopener">40.04</a>: And so Thinking Machines is Mira [Murati]. Her very hype thing. They launched their first thing, and it’s called Tinker. And it&#8217;s essentially, “Hey, you can write a very simple Python code, and then we will do the RL for you or the fine-tuning for you using our cluster of GPU so you don&#8217;t have to manage that.” And that is the type of thing that we want to see in a maturing kind of development framework. And you start to see this operating system emerging. </p>
  487.  
  488.  
  489.  
  490. <p>And it reminds me of the early days of O&#8217;Reilly, where it&#8217;s like I had to stand up a web server, I had to maintain a web server, I had to do all of these things, and now I don&#8217;t have to. I can spin up a Docker image, I can ship to render, I can ship to Vercel. All of these shared complicated things now have frameworks and tooling, and I think we&#8217;re going to see a similar evolution from that. And I&#8217;m really excited. And I think you have picked a great underrated term.&nbsp;</p>
  491.  
  492.  
  493.  
  494. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2456" target="_blank" rel="noreferrer noopener">40.56</a>: <strong>Now with that. Thank you, Drew. </strong><br><br><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Drew_Breunig.mp3#t=2458" target="_blank" rel="noreferrer noopener">40.58</a>: Awesome. Thank you for having me, Ben.</p>
  495. ]]></content:encoded>
  496. <wfw:commentRss>https://www.oreilly.com/radar/?post_type=podcast&#038;p=17562/feed/</wfw:commentRss>
  497. <slash:comments>0</slash:comments>
  498. </item>
  499. <item>
  500. <title>From Habits to Tools</title>
  501. <link>https://www.oreilly.com/radar/from-habits-to-tools/</link>
  502. <comments>https://www.oreilly.com/radar/from-habits-to-tools/#respond</comments>
  503. <pubDate>Wed, 15 Oct 2025 12:49:38 +0000</pubDate>
  504. <dc:creator><![CDATA[Andrew Stellman]]></dc:creator>
  505. <category><![CDATA[AI & ML]]></category>
  506. <category><![CDATA[Commentary]]></category>
  507.  
  508. <guid isPermaLink="false">https://www.oreilly.com/radar/?p=17557</guid>
  509.  
  510. <media:content
  511. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/Abstract-colorful-drops_Otherworldly.jpg"
  512. medium="image"
  513. type="image/jpeg"
  514. width="2304"
  515. height="1792"
  516. />
  517.  
  518. <media:thumbnail
  519. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/Abstract-colorful-drops_Otherworldly-160x160.jpg"
  520. width="160"
  521. height="160"
  522. />
  523. <custom:subtitle><![CDATA[The Future of AI-Assisted Development]]></custom:subtitle>
  524. <description><![CDATA[This article is part of a series on the Sens-AI Framework—practical habits for learning and coding with AI. AI-assisted coding is here to stay. I&#8217;ve seen many companies now require all developers to install Copilot extensions in their IDEs, and teams are increasingly being measured on AI-adoption metrics. Meanwhile, the tools themselves have become genuinely [&#8230;]]]></description>
  525. <content:encoded><![CDATA[
  526. <p class="has-cyan-bluish-gray-background-color has-background"><em>This article is part of a series on the Sens-AI Framework—practical habits for learning and coding with AI.</em></p>
  527.  
  528.  
  529.  
  530. <p>AI-assisted coding is here to stay. I&#8217;ve seen many companies now require all developers to install Copilot extensions in their IDEs, and teams are increasingly being measured on AI-adoption metrics. Meanwhile, the tools themselves have become genuinely useful for routine tasks: Developers regularly use them to generate boilerplate, convert between formats, write unit tests, and explore unfamiliar APIs—giving us more time to focus on solving our real problems instead of wrestling with syntax or going down research rabbit holes.</p>
  531.  
  532.  
  533.  
  534. <p>Many team leads, managers, and instructors looking to help developers ramp up on AI tools assume the biggest challenge is learning to write better prompts or picking the right AI tool; that assumption misses the point. The real challenge is figuring out how developers can use these tools in ways that keep them engaged and strengthen their skills instead of becoming disconnected from the code and letting their development skills atrophy.</p>
  535.  
  536.  
  537.  
  538. <p>This was the challenge I took on when I developed the Sens-AI Framework. When I was updating <a href="https://learning.oreilly.com/library/view/head-first-c/9781098141776/" target="_blank" rel="noreferrer noopener"><em>Head First C#</em></a> (O&#8217;Reilly 2024) to help readers ramp up on AI skills alongside other fundamental development skills, I watched new learners struggle not with the mechanics of prompting but with maintaining their understanding of the code they were producing. The framework emerged from those observations—five habits that keep developers engaged in the design conversation: context, research, framing, refining, and critical thinking. These habits address the real issue: making sure the developer stays in control of the work, understanding not just what the code does but why it&#8217;s structured that way.</p>
  539.  
  540.  
  541.  
  542. <h2 class="wp-block-heading"><strong>What We&#8217;ve Learned So Far</strong></h2>
  543.  
  544.  
  545.  
  546. <p>When I updated <em>Head First C# </em>to include AI exercises, I had to design them knowing learners would paste instructions directly into AI tools. That forced me to be deliberate: The instructions had to guide the learner while also shaping how the AI responded. Testing those same exercises against Copilot and ChatGPT showed the same kinds of problems over and over—AI filling in gaps with the wrong assumptions or producing code that looked fine until you actually had to run it, read and understand it, or modify and extend it.</p>
  547.  
  548.  
  549.  
  550. <p>Those issues don&#8217;t only trip up new learners. More experienced developers can fall for them too. The difference is that experienced developers already have habits for catching themselves, while newer developers usually don&#8217;t—unless we make a point of teaching them. AI skills aren&#8217;t exclusive to senior or experienced developers either; I&#8217;ve seen relatively new developers develop their AI skills quickly because they&#8217;ve built these habits quickly.</p>
  551.  
  552.  
  553.  
  554. <h2 class="wp-block-heading"><strong>Habits Across the Lifecycle</strong></h2>
  555.  
  556.  
  557.  
  558. <p>In “<a href="https://www.oreilly.com/radar/the-sens-ai-framework/" target="_blank" rel="noreferrer noopener">The Sens-AI Framework</a>,” I introduced the five habits and explained how they work together to keep developers engaged with their code rather than becoming passive consumers of AI output. These habits also address specific failure modes, and understanding how they solve real problems points the way toward broader implementation across teams and tools:</p>
  559.  
  560.  
  561.  
  562. <p><strong>Context</strong> helps avoid vague prompts that lead to poor output. Ask an AI to “make this code better” without sharing what the code does, and it might suggest adding comments to a performance-critical section where comments would just clutter. But provide the context—“This is a high-frequency trading system where microseconds matter,” along with the actual code structure, dependencies, and constraints—and the AI understands it should focus on optimizations, not documentation.</p>
  563.  
  564.  
  565.  
  566. <p><strong>Research</strong> makes sure the AI isn&#8217;t your only source of truth. When you rely solely on AI, you risk compounding errors—the AI makes an assumption, you build on it, and soon you&#8217;re deep in a solution that doesn&#8217;t match reality. Cross-checking with documentation or even asking a different AI can reveal when you&#8217;re being led astray.</p>
  567.  
  568.  
  569.  
  570. <p><strong>Framing</strong> is about asking questions that set up useful answers. &#8220;How do I handle errors?&#8221; gets you a try-catch block. &#8220;How do I handle network timeout errors in a distributed system where partial failures need rollback?&#8221; gets you circuit breakers and compensation patterns. As I showed in “<a href="https://www.oreilly.com/radar/understanding-the-rehash-loop/" target="_blank" rel="noreferrer noopener">Understanding the Rehash Loop</a>,” proper framing can break the AI out of circular suggestions.</p>
  571.  
  572.  
  573.  
  574. <p><strong>Refining</strong> means not settling for the first thing the AI gives you. The first response is rarely the best—it&#8217;s just the AI&#8217;s initial attempt. When you iterate, you&#8217;re steering toward better patterns. Refining moves you from &#8220;This works&#8221; to “This is actually good.&#8221;</p>
  575.  
  576.  
  577.  
  578. <p><strong>Critical thinking</strong> ties it all together, asking whether the code actually works for your project. It&#8217;s debugging the AI&#8217;s assumptions, reviewing for maintainability, and asking, &#8220;Will this make sense six months from now?&#8221;</p>
  579.  
  580.  
  581.  
  582. <p>The real power of the Sens-AI Framework comes from using all five habits together. They form a reinforcing loop: Context informs research, research improves framing, framing guides refinement, refinement reveals what needs critical thinking, and critical thinking shows you what context you were missing. When developers use these habits in combination, they stay engaged with the design and engineering process rather than becoming passive consumers of AI output. It&#8217;s the difference between using AI as a crutch and using it as a genuine collaborator.</p>
  583.  
  584.  
  585.  
  586. <h2 class="wp-block-heading"><strong>Where We Go from Here</strong></h2>
  587.  
  588.  
  589.  
  590. <p>If developers are going to succeed with AI, these habits need to show up beyond individual workflows. They need to become part of:</p>
  591.  
  592.  
  593.  
  594. <p><strong>Education</strong>: <em>Teaching AI literacy alongside basic coding skills.</em> As I described in “<a href="https://www.oreilly.com/radar/the-ai-teaching-toolkit-practical-guidance-for-teams/" target="_blank" rel="noreferrer noopener">The AI Teaching Toolkit</a>,” techniques like having learners debug intentionally flawed AI output help them spot when the AI is confidently wrong and practice breaking out of rehash loops. These aren&#8217;t advanced skills; they&#8217;re foundational.</p>
  595.  
  596.  
  597.  
  598. <p><strong>Team practice</strong>: <em>Using code reviews, pairing, and retrospectives to evaluate AI output the same way we evaluate human-written code.</em> In my teaching article, I described techniques like AI archaeology and shared language patterns. What matters here is making those kinds of habits part of standard training—so teams develop vocabulary like &#8220;I&#8217;m stuck in a rehash loop&#8221; or &#8220;The AI keeps defaulting to the old pattern.&#8221; And as I explored in “<a href="https://www.oreilly.com/radar/trust-but-verify/" target="_blank" rel="noreferrer noopener">Trust but Verify</a>,” treating AI-generated code with the same scrutiny as human code is essential for maintaining quality.</p>
  599.  
  600.  
  601.  
  602. <p><strong>Tooling</strong>: <em>IDEs and linters that don&#8217;t just generate code but highlight assumptions and surface design trade-offs.</em> Imagine your IDE warning: &#8220;Possible rehash loop detected: you&#8217;ve been iterating on this same approach for 15 minutes.&#8221; That&#8217;s one direction IDEs need to evolve—surfacing assumptions and warning when you&#8217;re stuck. The technical debt risks I outlined in “<a href="https://www.oreilly.com/radar/building-ai-resistant-technical-debt/" target="_blank" rel="noreferrer noopener">Building AI-Resistant Technical Debt</a>” could be mitigated with better tooling that catches antipatterns early.</p>
  603.  
  604.  
  605.  
  606. <p><strong>Culture</strong>: <em>A shared understanding that AI is a collaboration too (and not a teammate)</em>. A team&#8217;s measure of success for code shouldn&#8217;t revolve around AI. Teams still need to understand that code, keep it maintainable, and grow their own skills along the way. Getting there will require changes in how they work together—for example, adding AI-specific checks to code reviews or developing shared vocabulary for when AI output starts drifting. This cultural shift connects to the requirements engineering parallels I explored in “<a href="https://www.oreilly.com/radar/prompt-engineering-is-requirements-engineering/" target="_blank" rel="noreferrer noopener">Prompt Engineering Is Requirements Engineering</a>”—we need the same clarity and shared understanding with AI that we&#8217;ve always needed with human teams.</p>
  607.  
  608.  
  609.  
  610. <p><strong>More convincing output will require more sophisticated evaluation.</strong> Models will keep getting faster and more capable. What won&#8217;t change is the need for developers to think critically about the code in front of them.</p>
  611.  
  612.  
  613.  
  614. <p>The Sens-AI habits work alongside today&#8217;s tools and are designed to stay relevant to tomorrow&#8217;s tools as well. They&#8217;re practices that keep developers in control, even as models improve and the output gets harder to question. The framework gives teams a way to talk about both the successes and the failures they see when using AI. From there, it&#8217;s up to instructors, tool builders, and team leads to decide how to put those lessons into practice.</p>
  615.  
  616.  
  617.  
  618. <p>The next generation of developers will never know coding without AI. Our job is to make sure they build lasting engineering habits alongside these tools—so AI strengthens their craft rather than hollowing it out.</p>
  619. ]]></content:encoded>
  620. <wfw:commentRss>https://www.oreilly.com/radar/from-habits-to-tools/feed/</wfw:commentRss>
  621. <slash:comments>0</slash:comments>
  622. </item>
  623. <item>
  624. <title>Magic Words: Programming the Next Generation of AI Applications</title>
  625. <link>https://www.oreilly.com/radar/magic-words-programming-the-next-generation-of-ai-applications/</link>
  626. <comments>https://www.oreilly.com/radar/magic-words-programming-the-next-generation-of-ai-applications/#respond</comments>
  627. <pubDate>Wed, 15 Oct 2025 10:06:50 +0000</pubDate>
  628. <dc:creator><![CDATA[Tim O’Reilly]]></dc:creator>
  629. <category><![CDATA[AI & ML]]></category>
  630. <category><![CDATA[Commentary]]></category>
  631.  
  632. <guid isPermaLink="false">https://www.oreilly.com/radar/?p=17539</guid>
  633.  
  634. <media:content
  635. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/Cluny_-_Mero_-_Croix-Talisman_motifs_magiques_base_sur_Abracadabra_-_VIe-VII_siecle-_Ag_nielle-scaled.jpg"
  636. medium="image"
  637. type="image/jpeg"
  638. width="2560"
  639. height="1467"
  640. />
  641.  
  642. <media:thumbnail
  643. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/Cluny_-_Mero_-_Croix-Talisman_motifs_magiques_base_sur_Abracadabra_-_VIe-VII_siecle-_Ag_nielle-160x160.jpg"
  644. width="160"
  645. height="160"
  646. />
  647. <description><![CDATA[“Strange was obliged to invent most of the magic he did, working from general principles and half-remembered stories from old books.” — Susanna Clarke, Jonathan Strange &#38; Mr Norrell Fairy tales, myths, and fantasy fiction are full of magic spells. You say “abracadabra” and something profound happens.1 Say “open sesame” and the door swings open. [&#8230;]]]></description>
  648. <content:encoded><![CDATA[
  649. <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
  650. <p class="has-cyan-bluish-gray-background-color has-background"><em>“Strange was obliged to invent most of the magic he did, working from general principles and half-remembered stories from old books.”</em><br><br><em>— </em>Susanna Clarke,<em> Jonathan Strange &amp; Mr Norrell</em></p>
  651. </blockquote>
  652.  
  653.  
  654.  
  655. <p>Fairy tales, myths, and fantasy fiction are full of magic spells. You say “abracadabra” and something profound happens.<sup>1</sup> Say “open sesame” and the door swings open.</p>
  656.  
  657.  
  658.  
  659. <p>It turns out that this is also a useful metaphor for what happens with large language models.</p>
  660.  
  661.  
  662.  
  663. <p>I first got this idea from David Griffiths’s O’Reilly course on <a href="https://learning.oreilly.com/live-events/using-generative-ai-to-boost-your-personal-productivity/0636920099736/" target="_blank" rel="noreferrer noopener">using AI to boost your productivity</a>. He gave a simple example. You can tell ChatGPT “Organize my task list using the Eisenhower four-sided box.” And it just knows what to do, even if you yourself know nothing about General Dwight D. Eisenhower’s approach to decision making. David then suggests his students instead try “Organize my task list using Getting Things Done,” or just “Use GTD.” Each of those phrases is shorthand for systems of thought, practices, and conventions that the model has learned from human culture.</p>
  664.  
  665.  
  666.  
  667. <p>These are magic words. They’re magic not because they do something unworldly and unexpected but because they have the power to summon patterns that have been encoded in the model. The words act as keys, unlocking context and even entire workflows.</p>
  668.  
  669.  
  670.  
  671. <p>We all use magic words in our prompts. We say something like “Update my <em>resume</em>” or “Draft a <em>Substack post</em>” without thinking how much detailed prompting we’d have to do to create that output if the LLM didn’t already know the magic word.</p>
  672.  
  673.  
  674.  
  675. <p>Every field has a specialized language whose terms are known only to its initiates. We can be fanciful and pretend they are magic spells, but the reality is that each of them is really a kind of <strong>fuzzy function call </strong>to an LLM, bringing in a body of context and unlocking a set of behaviors and capabilities. When we ask an LLM to write a program in <em>Javascript </em>rather than <em>Python</em>, we are using one of these fuzzy function calls. When we ask for output as an <em>.md</em> file, we are doing the same. Unlike a function call in a traditional programming language, it doesn’t always return the same result, which is why developers have an opportunity to enhance the magic.</p>
  676.  
  677.  
  678.  
  679. <h2 class="wp-block-heading"><strong>From Prompts to Applications</strong></h2>
  680.  
  681.  
  682.  
  683. <p>The next light bulb went off for me in a conversation with Claire Vo, the creator of an AI application called <a href="http://chatprd.ai" target="_blank" rel="noreferrer noopener">ChatPRD</a>. Claire spent years as a product manager, and as soon as ChatGPT became available, began using it to help her write product requirement documents or PRDs. Every product manager knows what a PRD is. When Claire prompted ChatGPT to “write a PRD,” it didn’t need a long preamble. That one acronym carried decades of professional practice. But Claire went further. She refined her prompts, improved them, and taught ChatGPT how to think like her. Over time, she had trained a system, not at the model level, but at the level of context and workflow.</p>
  684.  
  685.  
  686.  
  687. <p>Next, Claire turned her workflow into a product. That product is a software interface that wraps up a number of related magic words into a useful package. It controls access to her customized magic spell, so to speak. Claire added detailed prompts, integrations with other tools, access control, and a whole lot of traditional programming in a next-generation application that uses a mix of traditional software code and “magical” fuzzy function calls to an LLM. ChatPRD even interviews users to learn more about their goals, customizing the application for each organization and use case.</p>
  688.  
  689.  
  690.  
  691. <p>Claire’s <a href="https://www.chatprd.ai/blog/chatprd-quickstart-guide" target="_blank" rel="noreferrer noopener">quickstart guide to ChatPRD</a> is a great example of what a magic-word (fuzzy function call) application looks like.</p>
  692.  
  693.  
  694.  
  695. <figure class="wp-block-embed is-type-rich is-provider-embed-handler wp-block-embed-embed-handler wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  696. <iframe title="UPDATED ChatPRD Demo - Product Tour &amp; Updated Features (2025)" width="500" height="281" src="https://www.youtube.com/embed/-V6bzSwYUZY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
  697. </div></figure>
  698.  
  699.  
  700.  
  701. <p>You can also see how magic words are crafted into magic spells and how these spells are even part of the architecture of applications like Claude Code through the explorations of developers like Jesse Vincent and Simon Willison.</p>
  702.  
  703.  
  704.  
  705. <p>In “<a href="https://blog.fsck.com/2025/10/05/how-im-using-coding-agents-in-september-2025/" target="_blank" rel="noreferrer noopener">How I&#8217;m Using Coding Agents in September, 2025</a>,” Jesse first describes how his <a href="http://claude.md" target="_blank" rel="noreferrer noopener">claude.md</a> file provides a base prompt that “encodes a bunch of process documentation and rules that do a pretty good job keeping Claude on track.” And then his workflow calls on a bunch of specialized prompts he has created (i.e., “spells” that give clearer and more personalized meaning to specific magic words) like “brainstorm,” “plan,” “architect,” “implement,” “debug,” and so on. Note how inside these prompts, he may use additional magic words like DRY, YAGNI, and TDD, which refer to specific programming methodologies. For example, here’s his planning prompt (boldface mine):</p>
  706.  
  707.  
  708.  
  709. <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
  710. <p><code>Great. I need your help to write out a comprehensive implementation plan.</code></p>
  711.  
  712.  
  713.  
  714. <p><code>Assume that the engineer has zero context for our codebase and questionable</code><br><code>taste. document everything they need to know. which files to touch for each</code><br><code>task, code, testing, docs they might need to check. how to test it.give </code><br><code>them the whole plan as bite-sized tasks. <strong>DRY. YAGNI. TDD.</strong> <strong>frequent commits</strong>.</code></p>
  715.  
  716.  
  717.  
  718. <p><code>Assume they are a skilled developer, but know almost nothing about our</code><br><code>toolset or problem domain. assume they don't know good test design</code> <code>very</code><br><code>well.</code></p>
  719.  
  720.  
  721.  
  722. <p><code>please write out this plan, in full detail, into docs/plans/</code></p>
  723. </blockquote>
  724.  
  725.  
  726.  
  727. <p>But Jesse didn’t stop there. He built a project called <a href="https://github.com/obra/superpowers" target="_blank" rel="noreferrer noopener">Superpowers</a>, which uses Claude’s <a href="https://docs.claude.com/en/docs/claude-code/plugins" target="_blank" rel="noreferrer noopener">recently announced plug-in architecture</a> to&nbsp;“give Claude Code superpowers with a comprehensive skills library of proven techniques, patterns, and tools.” <a href="https://blog.fsck.com/2025/10/09/superpowers/" target="_blank" rel="noreferrer noopener">Announcing the project</a>, he wrote:</p>
  728.  
  729.  
  730.  
  731. <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
  732. <p>Skills are what give your agents Superpowers. The first time they really popped up on my radar was a few weeks ago when Anthropic rolled out improved Office document creation. When the feature rolled out, I went poking around a bit – I asked Claude to tell me all about its new skills. And it <a href="https://claude.ai/share/0fe5a9c0-4e5a-42a1-9df7-c5b7636dad92" target="_blank" rel="noreferrer noopener">was only too happy to dish</a>…. [Be sure to follow this link! &#8211; TOR]</p>
  733.  
  734.  
  735.  
  736. <p>One of the first skills I taught Superpowers was <a href="https://raw.githubusercontent.com/obra/superpowers-skills/35c29f0fe22881149a991eca1276c148567a7c29/skills/meta/writing-skills/SKILL.md" target="_blank" rel="noreferrer noopener">How to create skills</a>. That has meant that when I wanted to do something like add git worktree workflows to Superpowers, it was a matter of describing how I wanted the workflows to go&#8230;and then Claude put the pieces together and added a couple notes to the existing skills that needed to clue future-Claude into using worktrees.</p>
  737. </blockquote>
  738.  
  739.  
  740.  
  741. <p>After reading Jesse’s post, Simon Willison did a bit more digging into the original document handling skills that Claude had announced and that had sparked Jesse’s brainstorm. He noted:</p>
  742.  
  743.  
  744.  
  745. <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
  746. <p>Skills are more than just prompts though: the repository also includes dozens of pre-written Python scripts for performing common operations.</p>
  747.  
  748.  
  749.  
  750. <p>&nbsp;<a href="https://github.com/simonw/claude-skills/blob/initial/mnt/skills/public/pdf/scripts/fill_fillable_fields.py" target="_blank" rel="noreferrer noopener">pdf/scripts/fill_fillable_fields.py</a> for example is a custom CLI tool that uses <a href="https://pypi.org/project/pypdf/">pypdf</a> to find and then fill in a bunch of PDF form fields, specified as JSON, then render out the resulting combined PDF.</p>
  751.  
  752.  
  753.  
  754. <p>This is a really sophisticated set of tools for document manipulation, and I love that Anthropic have made those visible—presumably deliberately—to users of Claude who know how to ask for them.</p>
  755. </blockquote>
  756.  
  757.  
  758.  
  759. <p>You can see what’s happening here. Magic words are being enhanced and given a more rigorous definition, and new ones are being added to what, in fantasy tales, they call a “grimoire,” or book of spells. Microsoft calls such spells “<a href="https://paradox921.medium.com/amplifier-notes-from-an-experiment-thats-starting-to-snowball-ef7df4ff8f97" target="_blank" rel="noreferrer noopener">metacognitive recipes</a>,” a wonderful term that should get widely adopted, though in this article I’m going to stick with my fanciful analogy to magic.</p>
  760.  
  761.  
  762.  
  763. <p>At O’Reilly, we’re working with a very different set of magic words. For example, we’re building a system for precisely targeted competency-based learning, through which our customers can skip what they already know, master what they need, and prove what they’ve learned. It also gives corporate learning system managers the ability to assign learning goals and to measure the ROI on their investment.</p>
  764.  
  765.  
  766.  
  767. <p>It turns out that there are dozens of <em>learning frameworks</em> (and that is itself a magic word). In the design of our own specialized learning framework, we’re invoking Bloom’s taxonomy, SFIA, and the Dreyfus Model of Skill Acquisition. But when a customer says, “We love your approach, but we use LTEM,” we can invoke that framework instead. Every corporate customer also has its own specialized tech stack. So we are exploring how to use magic words to let whatever we build adapt dynamically not only to our end users’ learning needs but to the tech stack and to the learning framework that already exists at each company.</p>
  768.  
  769.  
  770.  
  771. <p>That would be a nightmare if we had to support dozens of different learning frameworks using traditional processes. But the problem seems much more tractable if we are able to invoke the right magic words. That’s what I mean when I say that magic words are a crucial building block in the next generation of application programming.</p>
  772.  
  773.  
  774.  
  775. <h2 class="wp-block-heading"><strong>The Architecture of Magic</strong></h2>
  776.  
  777.  
  778.  
  779. <p>Here’s the important thing: Magic isn’t arbitrary. In every mythic tradition, it has structure, discipline, and cost. The magician’s power depends on knowing the right words, pronounced in the right way, with the right intent.</p>
  780.  
  781.  
  782.  
  783. <p>The same is true for AI systems. The effectiveness of our magic words depends on context, grounding, and feedback loops that give the model reliable information about the world.</p>
  784.  
  785.  
  786.  
  787. <p>That’s why I find the emerging ecosystem of AI applications so fascinating. It’s about providing the right context to the model. It’s about defining vocabularies, workflows, and roles that expose and make sense of the model’s abilities. It’s about turning implicit cultural knowledge into explicit systems of interaction.</p>
  788.  
  789.  
  790.  
  791. <p>We’re only at the beginning. But just as early programmers learned to build structured software without spelling out exact machine instructions, today’s AI practitioners are learning to build structured reasoning systems out of fuzzy language patterns.</p>
  792.  
  793.  
  794.  
  795. <p>Magic words aren’t just a poetic image. They’re the syntax of a new kind of computing. As people become more comfortable with LLMs, they will pass around the magic words they have learned as power user tricks. Meanwhile, developers will wrap more advanced capabilities around existing magic words and perhaps even teach the models new ones that haven&#8217;t yet had the time to accrete sufficient meaning through wide usage in the training set. Each application will be built around a shared vocabulary that encodes its domain knowledge. Back in 2022, Mike Loukides called these systems “<a href="https://www.oreilly.com/radar/formal-informal-languages/" target="_blank" rel="noreferrer noopener">formal informal languages</a>.” That is, they are spoken in human language, but do better when you apply a bit of rigor.</p>
  796.  
  797.  
  798.  
  799. <p>And at least for the foreseeable future, developers will write “shims” between the magic words that control the LLMs and the more traditional programming tools and techniques that interface with existing systems, much as Claire did with ChatPRD. But eventually we’ll see true AI to AI communication.</p>
  800.  
  801.  
  802.  
  803. <p>Magic words and the spells built around them are only the beginning. Once people start using them in common, they become <em>protocols</em>. They define how humans and AI systems cooperate, and how AI systems cooperate with each other.</p>
  804.  
  805.  
  806.  
  807. <p>We can already see this happening. Frameworks like LangChain or the Model Context Protocol (MCP) formalize how context and tools are shared. Teams build agentic workflows that depend on a common vocabulary of intent. What is an MCP server, after all, but a mapping of a fuzzy function call into a set of predictable tools and services available at a given endpoint?</p>
  808.  
  809.  
  810.  
  811. <p>In other words, what was once a set of magic spells is becoming infrastructure. When enough people use the same magic words, they stop being magic and start being standards—the building blocks for the next generation of software.</p>
  812.  
  813.  
  814.  
  815. <p>We can already see this progression with MCP. There are three distinct kinds of MCP servers. Some, like <a href="https://github.com/microsoft/playwright-mcp" target="_blank" rel="noreferrer noopener">Playwright MCP</a>, are designed to make it easier for AIs to interface with applications originally designed for interactive human use. Others, like the <a href="https://github.com/github/github-mcp-server" target="_blank" rel="noreferrer noopener">GitHub MCP Server</a>, are designed to make it easier for AIs to interface with existing APIs, that is, with interfaces originally designed to be called by traditional programs. But some are designed as a frontend for a true AI-to-AI conversation. Other protocols, like A2A, are already optimized for this third use case.</p>
  816.  
  817.  
  818.  
  819. <p>But in each case, an MCP server is really a dictionary (or in magic terms, a spellbook)&nbsp; that explains the magic words that it understands and how to invoke them. As Jesse Vincent put it to me after reading a draft of this piece:</p>
  820.  
  821.  
  822.  
  823. <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
  824. <p>The part that feels the most like magic spells is the part that most MCP authors do incredibly poorly. Each tool has a “description” field that tells the LLM how you use the tool. That description field is read and internalized by the LLM and changes how it behaves. Anthropic are particularly good at tool descriptions and most everybody else, in my experience, is&#8230;less good.</p>
  825. </blockquote>
  826.  
  827.  
  828.  
  829. <p>In many ways, publishing the prompts, tool descriptions, context, and skills that add functionality to LLMs may be a more important frontier of open source AI than open weights. It’s important that we treat our enhancements to magic words not as proprietary secrets but as shared cultural artifacts. The more open and participatory our vocabularies are, the more inclusive and creative the resulting ecosystem will be.</p>
  830.  
  831.  
  832.  
  833. <hr class="wp-block-separator has-alpha-channel-opacity"/>
  834.  
  835.  
  836.  
  837. <h2 class="wp-block-heading">Footnotes</h2>
  838.  
  839.  
  840.  
  841. <ol class="wp-block-list">
  842. <li>While often associated today with stage magic and cartoons, this magic word was apparently used from Roman times as a healing spell. One proposed etymology suggests that it comes <a href="https://en.wikipedia.org/wiki/Abracadabra" target="_blank" rel="noreferrer noopener">from the Aramaic for “I create as I speak.”</a></li>
  843. </ol>
  844.  
  845.  
  846.  
  847. <p></p>
  848. ]]></content:encoded>
  849. <wfw:commentRss>https://www.oreilly.com/radar/magic-words-programming-the-next-generation-of-ai-applications/feed/</wfw:commentRss>
  850. <slash:comments>0</slash:comments>
  851. </item>
  852. <item>
  853. <title>Enlightenment</title>
  854. <link>https://www.oreilly.com/radar/enlightenment/</link>
  855. <comments>https://www.oreilly.com/radar/enlightenment/#respond</comments>
  856. <pubDate>Tue, 14 Oct 2025 11:03:06 +0000</pubDate>
  857. <dc:creator><![CDATA[Mike Loukides]]></dc:creator>
  858. <category><![CDATA[AI & ML]]></category>
  859. <category><![CDATA[Commentary]]></category>
  860.  
  861. <guid isPermaLink="false">https://www.oreilly.com/radar/?p=17534</guid>
  862.  
  863. <media:content
  864. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/Student-sleeps-while-AI-works-1.jpg"
  865. medium="image"
  866. type="image/jpeg"
  867. width="2304"
  868. height="1792"
  869. />
  870.  
  871. <media:thumbnail
  872. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/Student-sleeps-while-AI-works-1-160x160.jpg"
  873. width="160"
  874. height="160"
  875. />
  876. <description><![CDATA[In a fascinating op-ed, David Bell, a professor of history at Princeton, argues that “AI is shedding enlightenment values.” As someone who has taught writing at a similarly prestigious university, and as someone who has written about technology for the past 35 or so years, I had a deep response. Bell’s is not the argument [&#8230;]]]></description>
  877. <content:encoded><![CDATA[
  878. <p>In a fascinating op-ed, David Bell, a professor of history at Princeton, argues that “<a href="https://www.nytimes.com/2025/08/02/opinion/artificial-intelligence-enlightenment.html" target="_blank" rel="noreferrer noopener">AI is shedding enlightenment values</a>.” As someone who has taught writing at a similarly prestigious university, and as someone who has written about technology for the past 35 or so years, I had a deep response.</p>
  879.  
  880.  
  881.  
  882. <p>Bell’s is not the argument of an AI skeptic. For his argument to work, AI has to be pretty good at reasoning and writing. It’s an argument about the nature of thought itself. Reading is thinking. Writing is thinking. Those are almost clichés—they even turn up in students’ assessments of <a href="https://lithub.com/what-happened-when-i-tried-to-replace-myself-with-chatgpt-in-my-english-classroom/" target="_blank" rel="noreferrer noopener">using AI in a college writing class</a>. It’s not a surprise to see these ideas in the 18th century, and only a bit more surprising to see how far Enlightenment thinkers took them. Bell writes:</p>
  883.  
  884.  
  885.  
  886. <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
  887. <p><em>The great political philosopher Baron de Montesquieu wrote: “One should never so exhaust a subject that nothing is left for readers to do. The point is not to make them read, but to make them think.” Voltaire, the most famous of the French “philosophes,” claimed, “The most useful books are those that the readers write half of themselves.”</em></p>
  888. </blockquote>
  889.  
  890.  
  891.  
  892. <p>And in the late 20th century, the great Dante scholar John Freccero would say to his classes “The text reads you”: How you read <a href="https://digitaldante.columbia.edu/dante/divine-comedy/" target="_blank" rel="noreferrer noopener"><em>The Divine Comedy</em></a> tells you who you are. You inevitably find your reflection in the act of reading.</p>
  893.  
  894.  
  895.  
  896. <p>Is the use of AI an aid to thinking or a crutch or a replacement? If it’s either a crutch or a replacement, then we have to go back to Descartes’s “I think, therefore I am” and read it backward: What am I if I don’t think? What am I if I have offloaded my thinking to some other device? Bell points out that books guide the reader through the thinking process, while AI expects us to guide the process and all too often resorts to flattery. <a href="https://openai.com/index/sycophancy-in-gpt-4o/" target="_blank" rel="noreferrer noopener">Sycophancy isn’t limited to a few recent versions of GPT</a>; “That’s a great idea” has been a staple of AI chat responses since its earliest days. A dull sameness goes along with the flattery—the paradox of AI is that, for all the talk of general intelligence, it really doesn’t think better than we do. It can access a wealth of information, but it ultimately gives us (at best) an unexceptional average of what has been thought in the past. Books lead you through radically different kinds of thought. Plato is not Aquinas is not Machiavelli is not Voltaire (and for great insights on the transition from the fractured world of medieval thought to the fractured world of Renaissance thought, see Ada Palmer’s <a href="https://press.uchicago.edu/ucp/books/book/chicago/I/bo246135916.html" target="_blank" rel="noreferrer noopener"><em>Inventing the Renaissance</em></a>).</p>
  897.  
  898.  
  899.  
  900. <p>We’ve been tricked into thinking that education is about preparing to enter the workforce, whether as a laborer who can plan how to spend his paycheck (readin’, writin’, ’rithmetic) or as a potential lawyer or engineer (Bachelor’s, Master’s, Doctorate). We’ve been tricked into thinking of schools as factories—just look at any school built in the 1950s or earlier, and compare it to an early 20th century manufacturing facility. Take the children in, process them, push them out. Evaluate them with exams that don’t measure much more than the ability to take exams—not unlike the benchmarks that the AI companies are constantly quoting. The result is that students who can read Voltaire or Montesquieu as a dialogue with their own thoughts, who could potentially make a breakthrough in science or technology, are rarities. They’re not the students our institutions were designed to produce; they have to struggle against the system, and frequently fail. As one elementary school administrator told me, “They’re handicapped, as handicapped as the students who come here with learning disabilities. But we can do little to help them.”</p>
  901.  
  902.  
  903.  
  904. <p>So the difficult question behind Bell’s article is: How do we teach students to think in a world that will inevitably be full of AI, whether or not that AI looks like our current LLMs? In the end, education isn’t about collecting facts, duplicating the answers in the back of the book, or getting passing grades. It’s about learning to think. The educational system gets in the way of education, leading to short-term thinking. If I’m measured by a grade, I should do everything I can to optimize that metric. <a href="https://en.wikipedia.org/wiki/Goodhart%27s_law" target="_blank" rel="noreferrer noopener">All metrics will be gamed</a>. Even if they aren’t gamed, metrics shortcut around the real issues.</p>
  905.  
  906.  
  907.  
  908. <p>In a world full of AI, retreating to stereotypes like “AI is damaging” and “AI hallucinates” misses the point, and is a sure route to failure. What’s damaging isn’t the AI, but the set of attitudes that make AI just another tool for gaming the system. We need a way of thinking with AI, of arguing with it, of completing AI’s “book” in a way that goes beyond maximizing a score. In this light, so much of the discourse around AI has been misguided. I still hear people say that AI will save you from needing to know the facts, that you won’t have to learn the dark and difficult corners of programming languages—but as much as I personally would like to take the easy route, facts are the skeleton on which thinking is based. Patterns arise out of facts, whether those patterns are historical movements, scientific theories, or software designs. And errors are easily uncovered when you engage actively with AI’s output.</p>
  909.  
  910.  
  911.  
  912. <p>AI can help to assemble facts, but at some point those facts need to be internalized. I can name a dozen (or two or three) important writers and composers whose best work came around 1800. What does it take to go from those facts to a conception of the Romantic movement? An AI could certainly assemble and group those facts, but would you then be able to think about what that movement meant (and continues to mean) for European culture? What are the bigger patterns revealed by the facts? And what would it mean for those facts and patterns to reside only within an AI model, without human comprehension? You need to know the shape of history, particularly if you want to think productively about it. You need to know the dark corners of your programming languages if you’re going to debug a mess of AI-generated code. Returning to Bell’s argument, the ability to find patterns is what allows you to complete Voltaire’s writing. AI can be a tremendous aid in finding those patterns, but as human thinkers, we have to make those patterns our own.</p>
  913.  
  914.  
  915.  
  916. <p>That’s really what learning is about. It isn’t just collecting facts, though facts are important. Learning is about understanding and finding relationships and understanding how those relationships change and evolve. It’s about weaving the narrative that connects our intellectual worlds together. That’s enlightenment. AI can be a valuable tool in that process, as long as you don’t mistake the means for the end. It can help you come up with new ideas and new ways of thinking. Nothing says that you can’t have the kind of mental dialogue that Bell writes about with an AI-generated essay. ChatGPT may not be Voltaire, but not much is. But if you don’t have the kind of dialogue that lets you internalize the relationships hidden behind the facts, AI is a hindrance. We’re all prone to be lazy—intellectually and otherwise. What’s the point at which thinking stops? What’s the point at which knowledge ceases to become your own? Or, to go back to the Enlightenment thinkers, when do you stop writing your share of the book?</p>
  917.  
  918.  
  919.  
  920. <p>That’s not a choice AI makes for you. It’s your choice.</p>
  921. ]]></content:encoded>
  922. <wfw:commentRss>https://www.oreilly.com/radar/enlightenment/feed/</wfw:commentRss>
  923. <slash:comments>0</slash:comments>
  924. </item>
  925. <item>
  926. <title>The Architect&#8217;s Dilemma</title>
  927. <link>https://www.oreilly.com/radar/the-architects-dilemma/</link>
  928. <comments>https://www.oreilly.com/radar/the-architects-dilemma/#respond</comments>
  929. <pubDate>Mon, 13 Oct 2025 11:22:35 +0000</pubDate>
  930. <dc:creator><![CDATA[Heiko Hotz]]></dc:creator>
  931. <category><![CDATA[AI & ML]]></category>
  932. <category><![CDATA[Deep Dive]]></category>
  933.  
  934. <guid isPermaLink="false">https://www.oreilly.com/radar/?p=17515</guid>
  935.  
  936. <media:content
  937. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/Robot-Concierge-maximalism.jpg"
  938. medium="image"
  939. type="image/jpeg"
  940. width="960"
  941. height="747"
  942. />
  943.  
  944. <media:thumbnail
  945. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/Robot-Concierge-maximalism-160x160.jpg"
  946. width="160"
  947. height="160"
  948. />
  949. <custom:subtitle><![CDATA[Choosing Between Tools and Agents with MCP and A2A]]></custom:subtitle>
  950. <description><![CDATA[The agentic AI landscape is exploding. Every new framework, demo, and announcement promises to let your AI assistant book flights, query databases, and manage calendars. This rapid advancement of capabilities is thrilling for users, but for the architects and engineers building these systems, it poses a fundamental question: When should a new capability be a [&#8230;]]]></description>
  951. <content:encoded><![CDATA[
  952. <p>The agentic AI landscape is exploding. Every new framework, demo, and announcement promises to let your AI assistant book flights, query databases, and manage calendars. This rapid advancement of capabilities is thrilling for users, but for the architects and engineers building these systems, it poses a fundamental question: When should a new capability be a simple, predictable <em>tool</em> (exposed via the Model Context Protocol, MCP) and when should it be a sophisticated, collaborative <em>agent</em> (exposed via the Agent2Agent Protocol, A2A)?</p>
  953.  
  954.  
  955.  
  956. <p>The common advice is often circular and unhelpful: “Use MCP for tools and A2A for agents.” This is like telling a traveler that cars use motorways and trains use tracks, without offering any guidance on which is better for a specific journey. This lack of a clear mental model leads to architectural guesswork. Teams build complex conversational interfaces for tasks that demand rigid predictability, or they expose rigid APIs to users who desperately need guidance. The outcome is often the same: a system that looks great in demos but falls apart in the real world.</p>
  957.  
  958.  
  959.  
  960. <p>In this article, I argue that the answer isn’t found by analyzing your service&#8217;s internal logic or technology stack. It&#8217;s found by looking outward and asking a single, fundamental question: Who is calling your product/service? By reframing the problem this way—as a user experience challenge first and a technical one second—the architect’s dilemma evaporates.</p>
  961.  
  962.  
  963.  
  964. <p>This essay draws a line where it matters for architects: the line between MCP tools and A2A agents. I will introduce a clear framework, built around the “Vending Machine Versus Concierge” model, to help you choose the right interface based on your consumer&#8217;s needs. I will also explore failure modes, testing, and the powerful <em>Gatekeeper Pattern</em> that shows how these two interfaces can work together to create systems that are not just clever but truly reliable.</p>
  965.  
  966.  
  967.  
  968. <h2 class="wp-block-heading"><strong>Two Very Different Interfaces</strong></h2>
  969.  
  970.  
  971.  
  972. <p>MCP presents tools—named operations with declared inputs and outputs. The caller (a person, program, or agent) must already know what it wants, and provide a complete payload. The tool validates, executes once, and returns a result. If your mental image is a vending machine—insert a well-formed request, get a deterministic response—you’re close enough.</p>
  973.  
  974.  
  975.  
  976. <p>A2A presents agents—goal-first collaborators that converse, plan, and act across turns. The caller expresses an outcome (“book a refundable flight under $450”), not an argument list. The agent asks clarifying questions, calls tools as needed, and holds onto session state until the job is done. If you picture a concierge—interacting, negotiating trade-offs, and occasionally escalating—you’re in the right neighborhood.</p>
  977.  
  978.  
  979.  
  980. <p>Neither interface is “better.” They are optimized for different situations:</p>
  981.  
  982.  
  983.  
  984. <ul class="wp-block-list">
  985. <li>MCP is fast to reason about, easy to test, and strong on determinism and auditability.</li>
  986.  
  987.  
  988.  
  989. <li>A2A is built for ambiguity, long-running processes, and preference capture.</li>
  990. </ul>
  991.  
  992.  
  993.  
  994. <h2 class="wp-block-heading"><strong>Bringing the Interfaces to Life: A Booking Example</strong></h2>
  995.  
  996.  
  997.  
  998. <p>To see the difference in practice, let&#8217;s imagine a simple task: booking a specific meeting room in an office.</p>
  999.  
  1000.  
  1001.  
  1002. <p><strong>The MCP &#8220;vending machine&#8221;</strong> expects a perfectly structured, machine-readable request for its book_room_tool. The caller must provide all necessary information in a single, valid payload:</p>
  1003.  
  1004.  
  1005.  
  1006. <pre class="wp-block-code"><code>{
  1007.  "jsonrpc": "2.0",
  1008.  "id": 42,
  1009.  "method": "tools/call",
  1010.  "params": {
  1011.    "name": "book_room_tool",
  1012.    "arguments": {
  1013.      "room_id": "CR-104B",
  1014.      "start_time": "2025-11-05T14:00:00Z",
  1015.      "end_time": "2025-11-05T15:00:00Z",
  1016.      "organizer": "user@example.com"
  1017.    }
  1018.  }
  1019. }</code></pre>
  1020.  
  1021.  
  1022.  
  1023. <p>Any deviation—a missing field or incorrect data type—results in an immediate error. This is the vending machine: You provide the exact code of the item you want (e.g., “D4”) or you get nothing.</p>
  1024.  
  1025.  
  1026.  
  1027. <p><strong>The A2A &#8220;concierge</strong>,<strong>&#8220;</strong> an &#8220;office assistant&#8221; agent, is approached with a high-level, ambiguous goal. It uses conversation to resolve ambiguity:</p>
  1028.  
  1029.  
  1030.  
  1031. <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
  1032. <p><strong>User:</strong> &#8220;Hey, can you book a room for my 1-on-1 with Alex tomorrow afternoon?&#8221;<br><strong>Agent:</strong> &#8220;Of course. To make sure I get the right one, what time works best, and how long will you need it for?&#8221;</p>
  1033. </blockquote>
  1034.  
  1035.  
  1036.  
  1037. <p>The agent’s job is to take the ambiguous goal, gather the necessary details, and then likely call the MCP tool behind the scenes once it has a complete, valid set of arguments.</p>
  1038.  
  1039.  
  1040.  
  1041. <p>With this clear dichotomy established—the predictable vending machine (MCP) versus the stateful concierge (A2A)—how do we choose? As I argued in the introduction, the answer isn’t found in your tech stack. It’s found by asking the most important architectural question of all: <strong>Who is calling your service?</strong></p>
  1042.  
  1043.  
  1044.  
  1045. <h3 class="wp-block-heading"><strong>Step 1: Identify your consumer</strong></h3>
  1046.  
  1047.  
  1048.  
  1049. <ol class="wp-block-list">
  1050. <li><strong>The machine consumer: A need for predictability</strong><br>Is your service going to be called by another automated system, a script, or another agent acting in a purely deterministic capacity? This consumer requires absolute predictability. It needs a rigid, unambiguous contract that can be scripted and relied upon to behave the same way every single time. It cannot handle a clarifying question or an unexpected update; any deviation from the strict contract is a failure. <em>This consumer doesn’t want a conversation; it needs a vending machine.</em> This nonnegotiable requirement for a predictable, stateless, and transactional interface points directly to designing your service as a tool (MCP).</li>
  1051.  
  1052.  
  1053.  
  1054. <li><strong>The human (or agentic) consumer: A need for convenience</strong><br>Is your service being built for a human end user or for a sophisticated AI that&#8217;s trying to fulfill a complex, high-level goal? This consumer values convenience and the offloading of cognitive load. They don’t want to specify every step of a process; they want to delegate ownership of a goal and trust that it will be handled. They&#8217;re comfortable with ambiguity because they expect the service—the agent—to resolve it on their behalf. <em>This consumer doesn’t want to follow a rigid script; they need a concierge. </em>This requirement for a stateful, goal-oriented, and conversational interface points directly to designing your service as an agent (A2A).</li>
  1055. </ol>
  1056.  
  1057.  
  1058.  
  1059. <p>By starting with the consumer, the architect’s dilemma often evaporates. Before you ever debate statefulness or determinism, you first define the user experience you are obligated to provide. In most cases, identifying your customer will give you your definitive answer.</p>
  1060.  
  1061.  
  1062.  
  1063. <h3 class="wp-block-heading"><strong>Step 2: Validate with the four factors</strong></h3>
  1064.  
  1065.  
  1066.  
  1067. <p>Once you have identified who calls your service, you have a strong hypothesis for your design. A machine consumer points to a tool; a human or agentic consumer points to an agent. The next step is to validate this hypothesis with a technical litmus test. This framework gives you the vocabulary to justify your choice and ensure the underlying architecture matches the user experience you intend to create.</p>
  1068.  
  1069.  
  1070.  
  1071. <ol class="wp-block-list">
  1072. <li><strong>Determinism versus ambiguity</strong><br>Does your service require a precise, unambiguous input, or is it designed to interpret and resolve ambiguous goals? <em>A vending machine is deterministic.</em> Its API is rigid: <code>GET /item/D4</code>. Any other request is an error. This is the world of MCP, where a strict schema ensures predictable interactions. <em>A concierge handles ambiguity.</em> &#8220;Find me a nice place for dinner&#8221; is a valid request that the agent is expected to clarify and execute. This is the world of A2A, where a conversational flow allows for clarification and negotiation.</li>
  1073.  
  1074.  
  1075.  
  1076. <li><strong>Simple execution versus complex process</strong><br>Is the interaction a single, one-shot execution, or a long-running, multistep process? <em>A vending machine performs a short-lived execution.</em> The entire operation—from payment to dispensing—is an atomic transaction that is over in seconds. This aligns with the synchronous-style, one-shot model of MCP. <em>A concierge manages a process.</em> Booking a full travel itinerary might take hours or even days, with multiple updates along the way. This requires the asynchronous, stateful nature of A2A, which can handle long-running tasks gracefully.</li>
  1077.  
  1078.  
  1079.  
  1080. <li><strong>Stateless versus stateful</strong><br>Does each request stand alone or does the service need to remember the context of previous interactions? <em>A vending machine is stateless.</em> It doesn&#8217;t remember that you bought a candy bar five minutes ago. Each transaction is a blank slate. MCP is designed for these self-contained, stateless calls. <em>A concierge is stateful. </em>It remembers your preferences, the details of your ongoing request, and the history of your conversation. A2A is built for this, using concepts like a session or thread ID to maintain context.</li>
  1081.  
  1082.  
  1083.  
  1084. <li><strong>Direct control versus delegated ownership</strong><br>Is the consumer orchestrating every step, or are they delegating the entire goal? <em>When using a vending machine, the consumer is in direct control.</em> You are the orchestrator, deciding which button to press and when. With MCP, the calling application retains full control, making a series of precise function calls to achieve its own goal. <em>With a concierge, you delegate ownership.</em> You hand over the high-level goal and trust the agent to manage the details. This is the core model of A2A, where the consumer offloads the cognitive load and trusts the agent to deliver the outcome.</li>
  1085. </ol>
  1086.  
  1087.  
  1088.  
  1089. <figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Factor</strong></td><td><strong>Tool (MCP)</strong></td><td><strong>Agent (A2A)</strong></td><td><strong>Key question</strong></td></tr><tr><td><em>Determinism</em></td><td>Strict schema; errors on deviation</td><td>Clarifies ambiguity via dialogue</td><td>Can inputs be fully specified up front?</td></tr><tr><td><em>Process</em></td><td>One-shot</td><td>Multi-step/long-running</td><td>Is this atomic or a workflow?</td></tr><tr><td><em>State</em></td><td>Stateless</td><td>Stateful/sessionful</td><td>Must we remember context/preferences?</td></tr><tr><td><em>Control</em></td><td>Caller orchestrates</td><td>Ownership delegated</td><td>Who drives: the caller or callee?</td></tr></tbody></table></figure>
  1090.  
  1091.  
  1092.  
  1093. <p><em>Table 1: Four question framework</em></p>
  1094.  
  1095.  
  1096.  
  1097. <p>These factors are not independent checkboxes; they are four facets of the same core principle. A service that is deterministic, transactional, stateless, and directly controlled is a tool. A service that handles ambiguity, manages a process, maintains state, and takes ownership is an agent. By using this framework, you can confidently validate that the technical architecture of your service aligns perfectly with the needs of your customer.</p>
  1098.  
  1099.  
  1100.  
  1101. <h3 class="wp-block-heading"><strong>No framework, no matter how clear&#8230;</strong></h3>
  1102.  
  1103.  
  1104.  
  1105. <p>&#8230;can perfectly capture the messiness of the real world. While the &#8220;Vending Machine Versus Concierge&#8221; model provides a robust guide, architects will eventually encounter services that seem to blur the lines. The key is to remember the core principle we&#8217;ve established: The choice is dictated by the consumer&#8217;s experience, not the service&#8217;s internal complexity.</p>
  1106.  
  1107.  
  1108.  
  1109. <p>Let&#8217;s explore two common edge cases.</p>
  1110.  
  1111.  
  1112.  
  1113. <p><strong>The complex tool: The iceberg</strong><br>Consider a service that performs a highly complex, multistep internal process, like a video transcoding API. A consumer sends a video file and a desired output format. This is a simple, predictable request. But internally, this one call might kick off a massive, long-running workflow involving multiple machines, quality checks, and encoding steps. It&#8217;s a hugely complex process.</p>
  1114.  
  1115.  
  1116.  
  1117. <p>However, from the consumer&#8217;s perspective, none of that matters. They made a single, stateless, fire-and-forget call. They don&#8217;t need to manage the process; they just need a predictable result. This service is like an iceberg: 90% of its complexity is hidden beneath the surface. But because its external contract is that of a vending machine—a simple, deterministic, one-shot transaction—it is, and should be, implemented as a tool (MCP).</p>
  1118.  
  1119.  
  1120.  
  1121. <p><strong>The simple agent: The scripted conversation</strong><br>Now consider the opposite: a service with very simple internal logic that still requires a conversational interface. Imagine a chatbot for booking a dentist appointment. The internal logic might be a simple state machine: ask for a date, then a time, then a patient name. It&#8217;s not &#8220;intelligent&#8221; or particularly flexible.</p>
  1122.  
  1123.  
  1124.  
  1125. <p>However, it must remember the user&#8217;s previous answers to complete the booking. It&#8217;s an inherently stateful, multiturn interaction. The consumer cannot provide all the required information in a single, prevalidated call. They need to be guided through the process. Despite its internal simplicity, the need for a stateful dialogue makes it a concierge. It must be implemented as an agent (A2A) because its consumer-facing experience is that of a conversation, however scripted.</p>
  1126.  
  1127.  
  1128.  
  1129. <p>These gray areas reinforce the framework&#8217;s central lesson. Don&#8217;t get distracted by what your service does internally. Focus on the experience it provides externally. That contract with your customer is the ultimate arbiter in the architect&#8217;s dilemma.</p>
  1130.  
  1131.  
  1132.  
  1133. <h2 class="wp-block-heading"><strong>Testing What Matters: Different Strategies for Different Interfaces</strong></h2>
  1134.  
  1135.  
  1136.  
  1137. <p>A service&#8217;s interface doesn&#8217;t just dictate its design; it dictates how you validate its correctness. Vending machines and concierges have fundamentally different failure modes and require different testing strategies.</p>
  1138.  
  1139.  
  1140.  
  1141. <p><strong>Testing MCP tools (vending machines):</strong></p>
  1142.  
  1143.  
  1144.  
  1145. <ul class="wp-block-list">
  1146. <li><strong>Contract testing:</strong> Validate that inputs and outputs strictly adhere to the defined schema.</li>
  1147.  
  1148.  
  1149.  
  1150. <li><strong>Idempotency tests:</strong> Ensure that calling the tool multiple times with the same inputs produces the same result without side effects.</li>
  1151.  
  1152.  
  1153.  
  1154. <li><strong>Deterministic logic tests:</strong> Use standard unit and integration tests with fixed inputs and expected outputs.</li>
  1155.  
  1156.  
  1157.  
  1158. <li><strong>Adversarial fuzzing:</strong> Test for security vulnerabilities by providing malformed or unexpected arguments.</li>
  1159. </ul>
  1160.  
  1161.  
  1162.  
  1163. <p><strong>Testing A2A agents (concierges):</strong></p>
  1164.  
  1165.  
  1166.  
  1167. <ul class="wp-block-list">
  1168. <li><strong>Goal completion rate (GCR):</strong> Measure the percentage of conversations where the agent successfully achieved the user&#8217;s high-level goal.</li>
  1169.  
  1170.  
  1171.  
  1172. <li><strong>Conversational efficiency:</strong> Track the number of turns or clarifications required to complete a task.</li>
  1173.  
  1174.  
  1175.  
  1176. <li><strong>Tool selection accuracy:</strong> For complex agents, verify that the right MCP tool was chosen for a given user request.</li>
  1177.  
  1178.  
  1179.  
  1180. <li><strong>Conversation replay testing:</strong> Use logs of real user interactions as a regression suite to ensure updates don&#8217;t break existing conversational flows.</li>
  1181. </ul>
  1182.  
  1183.  
  1184.  
  1185. <h2 class="wp-block-heading"><strong>The Gatekeeper Pattern</strong></h2>
  1186.  
  1187.  
  1188.  
  1189. <p>Our journey so far has focused on a dichotomy: MCP or A2A, vending machine or concierge. But the most sophisticated and robust agentic systems do not force a choice. Instead, they recognize that these two protocols don’t compete with each other; they complement each other. The ultimate power lies in using them together, with each playing to its strengths.</p>
  1190.  
  1191.  
  1192.  
  1193. <p>The most effective way to achieve this is through a powerful architectural choice we can call the Gatekeeper Pattern.</p>
  1194.  
  1195.  
  1196.  
  1197. <p>In this pattern, a single, stateful A2A agent acts as the primary, user-facing entry point—the concierge. Behind this gatekeeper sits a collection of discrete, stateless MCP tools—the vending machines. The A2A agent takes on the complex, messy work of understanding a high-level goal, managing the conversation, and maintaining state. It then acts as an intelligent orchestrator, making precise, one-shot calls to the appropriate MCP tools to execute specific tasks.</p>
  1198.  
  1199.  
  1200.  
  1201. <p>Consider a travel agent. A user interacts with it via A2A, giving it a high-level goal: &#8220;Plan a business trip to London for next week.&#8221;</p>
  1202.  
  1203.  
  1204.  
  1205. <ul class="wp-block-list">
  1206. <li>The travel agent (A2A) accepts this ambiguous request and starts a conversation to gather details (exact dates, budget, etc.).</li>
  1207.  
  1208.  
  1209.  
  1210. <li>Once it has the necessary information, it calls a flight_search_tool (MCP) with precise arguments like origin, destination, and date.</li>
  1211.  
  1212.  
  1213.  
  1214. <li>It then calls a hotel_booking_tool (MCP) with the required city, check_in_date, and room_type.</li>
  1215.  
  1216.  
  1217.  
  1218. <li>Finally, it might call a currency_converter_tool (MCP) to provide expense estimates.</li>
  1219. </ul>
  1220.  
  1221.  
  1222.  
  1223. <p>Each tool is a simple, reliable, and stateless vending machine. The A2A agent is the smart concierge that knows which buttons to press and in what order. This pattern provides several significant architectural benefits:</p>
  1224.  
  1225.  
  1226.  
  1227. <ul class="wp-block-list">
  1228. <li><strong>Decoupling:</strong> It separates the complex, conversational logic (the &#8220;how&#8221;) from the simple, reusable business logic (the &#8220;what&#8221;). The tools can be developed, tested, and maintained independently.</li>
  1229.  
  1230.  
  1231.  
  1232. <li><strong>Centralized governance:</strong> The A2A gatekeeper is the perfect place to implement cross-cutting concerns. It can handle authentication, enforce rate limits, manage user quotas, and log all activity before a single tool is ever invoked.</li>
  1233.  
  1234.  
  1235.  
  1236. <li><strong>Simplified tool design:</strong> Because the tools are just simple MCP functions, they don&#8217;t need to worry about state or conversational context. Their job is to do one thing and do it well, making them incredibly robust.</li>
  1237. </ul>
  1238.  
  1239.  
  1240.  
  1241. <h2 class="wp-block-heading"><strong>Making the Gatekeeper Production-Ready</strong></h2>
  1242.  
  1243.  
  1244.  
  1245. <p>Beyond its design benefits, the Gatekeeper Pattern is the ideal place to implement the operational guardrails required to run a reliable agentic system in production.</p>
  1246.  
  1247.  
  1248.  
  1249. <ul class="wp-block-list">
  1250. <li><strong>Observability:</strong> Each A2A conversation generates a unique trace ID. This ID must be propagated to every downstream MCP tool call, allowing you to trace a single user request across the entire system. Structured logs for tool inputs and outputs (with PII redacted) are critical for debugging.</li>
  1251.  
  1252.  
  1253.  
  1254. <li><strong>Guardrails and security:</strong> The A2A Gatekeeper acts as a single point of enforcement for critical policies. It handles authentication and authorization for the user, enforces rate limits and usage quotas, and can maintain a list of which tools a particular user or group is allowed to call.</li>
  1255.  
  1256.  
  1257.  
  1258. <li><strong>Resilience and fallbacks:</strong> The Gatekeeper must gracefully manage failure. When it calls an MCP tool, it should implement patterns like timeouts, retries with exponential backoff, and circuit breakers. Critically, it is responsible for the final failure state—escalating to a human in the loop for review or clearly communicating the issue to the end user.</li>
  1259. </ul>
  1260.  
  1261.  
  1262.  
  1263. <p>The Gatekeeper Pattern is the ultimate synthesis of our framework. It uses A2A for what it does best—managing a stateful, goal-oriented process—and MCP for what it was designed for—the reliable, deterministic execution of a task.</p>
  1264.  
  1265.  
  1266.  
  1267. <h2 class="wp-block-heading"><strong>Conclusion</strong></h2>
  1268.  
  1269.  
  1270.  
  1271. <p>We began this journey with a simple but frustrating problem: the architect&#8217;s dilemma. Faced with the circular advice that &#8220;MCP is for tools and A2A is for agents,&#8221; we were left in the same position as a traveler trying to get to Edinburgh—knowing that cars use motorways and trains use tracks but with no intuition on which to choose for our specific journey.</p>
  1272.  
  1273.  
  1274.  
  1275. <p>The goal was to build that intuition. We did this not by accepting abstract labels, but by reasoning from first principles. We dissected the protocols themselves, revealing how their core mechanics inevitably lead to two distinct service profiles: the predictable, one-shot &#8220;vending machine&#8221; and the stateful, conversational &#8220;concierge.&#8221;</p>
  1276.  
  1277.  
  1278.  
  1279. <p>With that foundation, we established a clear, two-step framework for a confident design choice:</p>
  1280.  
  1281.  
  1282.  
  1283. <ol class="wp-block-list">
  1284. <li><strong>Start with your customer.</strong> The most critical question is not a technical one but an experiential one. A machine consumer needs the predictability of a vending machine (MCP). A human or agentic consumer needs the convenience of a concierge (A2A).</li>
  1285.  
  1286.  
  1287.  
  1288. <li><strong>Validate with the four factors.</strong> Use the litmus test of determinism, process, state, and ownership to technically justify and solidify your choice.</li>
  1289. </ol>
  1290.  
  1291.  
  1292.  
  1293. <p>Ultimately, the most robust systems will synthesize both, using the Gatekeeper Pattern to combine the strengths of a user-facing A2A agent with a suite of reliable MCP tools.</p>
  1294.  
  1295.  
  1296.  
  1297. <p>The choice is no longer a dilemma. By focusing on the consumer&#8217;s needs and understanding the fundamental nature of the protocols, architects can move from confusion to confidence, designing agentic ecosystems that are not just functional but also intuitive, scalable, and maintainable.</p>
  1298. ]]></content:encoded>
  1299. <wfw:commentRss>https://www.oreilly.com/radar/the-architects-dilemma/feed/</wfw:commentRss>
  1300. <slash:comments>0</slash:comments>
  1301. </item>
  1302. <item>
  1303. <title>Everyday AI Agents</title>
  1304. <link>https://www.oreilly.com/radar/everyday-ai-agents/</link>
  1305. <comments>https://www.oreilly.com/radar/everyday-ai-agents/#respond</comments>
  1306. <pubDate>Fri, 10 Oct 2025 11:30:16 +0000</pubDate>
  1307. <dc:creator><![CDATA[David Michelson]]></dc:creator>
  1308. <category><![CDATA[AI & ML]]></category>
  1309. <category><![CDATA[Events]]></category>
  1310.  
  1311. <guid isPermaLink="false">https://www.oreilly.com/radar/?p=17512</guid>
  1312.  
  1313. <media:content
  1314. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/Everyday-AI-Agents.jpg"
  1315. medium="image"
  1316. type="image/jpeg"
  1317. width="2304"
  1318. height="1792"
  1319. />
  1320.  
  1321. <media:thumbnail
  1322. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/Everyday-AI-Agents-160x160.jpg"
  1323. width="160"
  1324. height="160"
  1325. />
  1326. <description><![CDATA[A common misconception about O&#8217;Reilly is that we cater only to the deeply technical learner. While we&#8217;re proud of our deep roots in the tech community, the breadth of our offerings, both in books and on our learning platform, has always aimed to reach a broader audience of tech-adjacent and tech-curious people who want to [&#8230;]]]></description>
  1327. <content:encoded><![CDATA[
  1328. <p>A common misconception about O&#8217;Reilly is that we cater only to the deeply technical learner. While we&#8217;re proud of our deep roots in the tech community, the breadth of our offerings, both in books and on our learning platform, has always aimed to reach a broader audience of tech-adjacent and tech-curious people who want to learn new technologies and skills to improve how they work. For this audience, generative AI has opened up a world of new capabilities, making it possible to contribute to technical work that previously required coding knowledge or specialized expertise. As <a href="https://www.oreilly.com/radar/ai-and-programming-the-beginning-of-a-new-era/" target="_blank" rel="noreferrer noopener">Tim O’Reilly has put it,</a> “the addressable surface area of programming has gone up by orders of magnitude. There’s so much more to do and explore.”</p>
  1329.  
  1330.  
  1331.  
  1332. <p>Over the last few years, many in this less technical audience have become adept at using chatbots in their daily lives for summarizing, writing, data analysis, automating tedious tasks and even prototyping. But this proficiency with chatbots is just the beginning. The underlying technology has evolved beyond simple conversations and outputs to power the next step: AI agents.</p>
  1333.  
  1334.  
  1335.  
  1336. <p>While chatbots are great for answering questions and generating outputs, AI agents are designed to take action. They are proactive, goal-oriented, and can handle complex, multi-step tasks. If we’re often encouraged to think of chatbots as bright but overconfident interns, we can think of AI agents like competent direct reports you can hand an entire project to. They’ve been trained, understand their goals, can make decisions and employ tools to achieve their ends, all with minimal oversight. Across industries, agents are already handling real work, from automating software development to managing complex marketing campaigns and customer service calls. But there’s a gap. Many people who are comfortable with chatbots don’t yet see the path to harnessing the power of agents in their everyday work. They’ve heard the hype but how can agents impact daily work? How do you get started?</p>
  1337.  
  1338.  
  1339.  
  1340. <p>This is why we&#8217;ve created the October 23rd <a href="https://learning.oreilly.com/live-events/genai-superstream-everyday-ai-agents/0642572213459/" target="_blank" rel="noreferrer noopener">GenAI Superstream: Everyday AI Agents</a>. This event is designed to bridge that gap and show you how to move from simply chatting with AI to building and deploying AI agents that can become valuable co-workers. Kathy Pham (VP of AI at Workday) and Claire Vo (CEO at ChatPRD) will kick off the conference with a fireside chat about how agents are already changing work and why it matters. From there, we’ll get into the specifics. You&#8217;ll hear from Jacob Bank of Relay.app, who will help demystify agents and share real patterns for automating your work, and from April Dunnam of Microsoft, who will demonstrate how to build agents directly within Microsoft 365. You’ll also learn how agents can help designers enforce creative governance with Nadia Elinbabi of Lowes and manage complex product workflows with Aman Khan of Arize AI. David Griffiths of HereScreen will explain how thinking like a programmer—without needing to be one—can help you design more intelligent and flexible agents. Finally, Babak Hodjat, CTO of AI at Cognizant will talk about how individual agents can evolve into multi-agent ecosystems that manage complex operations across an entire enterprise. Together, the goal of these presentations is to show vivid instances of real-world agents in action, inspiring you to imagine how you might use agents to augment your own abilities and work smarter.</p>
  1341.  
  1342.  
  1343.  
  1344. <p>Democratization of technical capabilities is one of the key benefits of the current sea change ushered in by genAI. We believe that everyone, regardless of their technical background, should have the opportunity to participate in this transformation. Whether you’re new to agents, feel like your experimentation with agents has plateaued, or you just want a measured assessment of the hype, this GenAI Superstream is your chance to get informed, be inspired, and take the first steps toward building your own AI-powered future. We hope you’ll join us.</p>
  1345. ]]></content:encoded>
  1346. <wfw:commentRss>https://www.oreilly.com/radar/everyday-ai-agents/feed/</wfw:commentRss>
  1347. <slash:comments>0</slash:comments>
  1348. </item>
  1349. <item>
  1350. <title>Control Codegen Spend</title>
  1351. <link>https://www.oreilly.com/radar/control-codegen-spend/</link>
  1352. <comments>https://www.oreilly.com/radar/control-codegen-spend/#respond</comments>
  1353. <pubDate>Thu, 09 Oct 2025 11:19:19 +0000</pubDate>
  1354. <dc:creator><![CDATA[Tim O'Brien]]></dc:creator>
  1355. <category><![CDATA[AI & ML]]></category>
  1356. <category><![CDATA[Commentary]]></category>
  1357.  
  1358. <guid isPermaLink="false">https://www.oreilly.com/radar/?p=17506</guid>
  1359.  
  1360. <media:content
  1361. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/08/Who-Should-Get-Paid-in-the-Age-of-AI.jpg"
  1362. medium="image"
  1363. type="image/jpeg"
  1364. width="2304"
  1365. height="1792"
  1366. />
  1367.  
  1368. <media:thumbnail
  1369. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/08/Who-Should-Get-Paid-in-the-Age-of-AI-160x160.jpg"
  1370. width="160"
  1371. height="160"
  1372. />
  1373. <custom:subtitle><![CDATA[Use the Right Model—Then Switch Back]]></custom:subtitle>
  1374. <description><![CDATA[This article originally appeared on Medium. Tim O’Brien has given us permission to repost here on Radar. When you’re working with AI tools like Cursor or GitHub Copilot, the real power isn’t just having access to different models—it’s knowing when to use them. Some jobs are OK with Auto. Others need a stronger model. And [&#8230;]]]></description>
  1375. <content:encoded><![CDATA[
  1376. <figure class="wp-block-table"><table class="has-cyan-bluish-gray-background-color has-background has-fixed-layout"><tbody><tr><td><em>This article originally appeared on </em><a href="https://medium.com/@tobrien/control-codegen-spend-use-the-right-model-then-switch-back-cf173753d0ae" target="_blank" rel="noreferrer noopener"><em>Medium</em></a><em>. Tim O’Brien has given us permission to repost here on Radar.</em></td></tr></tbody></table></figure>
  1377.  
  1378.  
  1379.  
  1380. <p>When you’re working with AI tools like Cursor or GitHub Copilot, the real power isn’t just having access to different models—it’s knowing when to use them. Some jobs are OK with Auto. Others need a stronger model. And sometimes you should bail and switch if you continue spending money on a complex problem with a lower-quality model. If you don’t, you’ll waste both time and money.</p>
  1381.  
  1382.  
  1383.  
  1384. <p>And this is the missing discussion in code generation. There are a few “camps” here; the majority of people writing about this appear to view this as a fantastical and fun “vibe coding” experience, and a few people out there are trying to use this technology to deliver real products. If you are in that last category, you’ve probably started to realize that you can spend a <em>fantastic</em> amount of money if you don’t have a strategy for model selection.</p>
  1385.  
  1386.  
  1387.  
  1388. <p>Let’s make it very specific—if you sign up for Cursor and drop $20/month on a subscription using Auto and you are happy with the output, there’s not much to worry about. But if you are starting to run agents in parallel and are paying for token consumption atop a monthly subscription, this post will make sense. In my own experience, a single developer working alone can easily spend $200–$300/day (or four times that figure) if they are trying to tackle a project and have opted for the most expensive model.</p>
  1389.  
  1390.  
  1391.  
  1392. <p><em>And—if you are a company and you give your developers unlimited access to these tools—get ready for some surprises.</em></p>
  1393.  
  1394.  
  1395.  
  1396. <h2 class="wp-block-heading"><strong>My Escalation Ladder for Models…</strong></h2>
  1397.  
  1398.  
  1399.  
  1400. <ol class="wp-block-list">
  1401. <li><strong>Start here: Auto.</strong> Let Cursor route to a strong model with good capacity. If output quality degrades or the loop occurs, escalate the issue. (Cursor explicitly says Auto selects among premium models and will switch when output is degraded.)<br></li>
  1402.  
  1403.  
  1404.  
  1405. <li><strong>Medium-complexity tasks: Sonnet 4/GPT‑5/Gemini.</strong> Use for focused tasks on a handful of files: robust unit tests, targeted refactors, API remodels.<br></li>
  1406.  
  1407.  
  1408.  
  1409. <li><strong>Heavy lift: Sonnet 4 &#8211; 1 million. </strong>If I need to do something that requires more context, but I still don’t want to pay top dollar, I’ve been starting to move up models that don’t quickly max out on context.<br></li>
  1410.  
  1411.  
  1412.  
  1413. <li><strong>Ultraheavy lift: Opus 4/4.1.</strong> Use this when the task spans multiple projects or requires long context and careful reasoning, then <strong>switch back</strong> once the big move is done. (Anthropic positions Opus 4 as a deep‑reasoning, long‑horizon model for coding and agent workflows.)</li>
  1414. </ol>
  1415.  
  1416.  
  1417.  
  1418. <p>Auto works fine, but there are times when you can sense that it’s selected the wrong model, and if you use these models enough, you know when you are looking at Gemini Pro output by the verbosity or the ChatGPT models by the way they go about solving a problem.</p>
  1419.  
  1420.  
  1421.  
  1422. <p>I’ll admit that my heavy and ultraheavy choices here are biased towards the models I’ve had more experience with—your own experience might vary. Still, you should also have a similar escalation list. Start with Auto and only upgrade if you need to; otherwise, you are going to learn some lessons about how much this costs.</p>
  1423.  
  1424.  
  1425.  
  1426. <h2 class="wp-block-heading"><strong>Watch Out for “Thinking” Model Costs</strong></h2>
  1427.  
  1428.  
  1429.  
  1430. <p>Some models support explicit “thinking” (longer reasoning). Useful, but costlier. Cursor’s docs note that enabling thinking on specific Sonnet versions can count as <strong>two requests</strong> under team request accounting, and in the individual plans, the same idea translates to <strong>more tokens</strong> burned. In short, thinking mode is excellent—use it when you need it.</p>
  1431.  
  1432.  
  1433.  
  1434. <p>And when do you need it? My rule of thumb here is that when I understand what needs to be done already, when I’m asking for a unit test to be polished or a method to be executed in the pattern of another… I usually don’t need a thinking model. On the other hand, if I’m asking it to analyze a problem and propose various options for me to choose from, or (something I do often) when I’m asking it to challenge my decisions and play devil’s advocate, I will pay the premium for the best model.</p>
  1435.  
  1436.  
  1437.  
  1438. <h2 class="wp-block-heading"><strong>Max Mode and When to Use It</strong></h2>
  1439.  
  1440.  
  1441.  
  1442. <p>If you need giant context windows or extended reasoning (e.g., sweeping changes across 20+ files), <strong>Max Mode</strong> can help—but it will consume more usage. Make Max Mode a <strong>temporary tool</strong>, not your default. If you find yourself constantly requiring Max Mode to be turned on, there’s a good chance you are “overapplying” this technology.</p>
  1443.  
  1444.  
  1445.  
  1446. <p>If it needs to consume a million tokens for hours on end? That’s usually a hint that you need another programmer. More on that later, but what I’ve seen too often are managers who think this is like the “vibe coding” they are witnessing. Spoiler alert: Vibe coding is that thing that people do in presentations because it takes five minutes to make a silly video game. It’s 100% not programming, and to use codegen, here’s the secret: You have to understand how to program.</p>
  1447.  
  1448.  
  1449.  
  1450. <p>Max Mode and thinking models are not a shortcut, and neither are they a replacement for good programmers. If you think they are, you are going to be paying top dollar for code that will one day have to be rewritten by a good programmer using these same tools.</p>
  1451.  
  1452.  
  1453.  
  1454. <h2 class="wp-block-heading"><strong>Most Important Tip: Watch Your Bill as It Happens</strong></h2>
  1455.  
  1456.  
  1457.  
  1458. <p>The most important tip is to regularly monitor your utilization and usage fees in Cursor, since they appear within a minute or two of running something. You can see usage by the minute, the number of tokens consumed, and in some cases, how much you’re being charged beyond your subscription. Make a habit of checking a couple of times a day, especially during heavy sessions, and ideally every half hour. This helps you catch runaway costs—like spending $100 an hour—before they get out of hand, which is entirely possible if you’re running many parallel agents or doing resource-intensive work. Paying attention ensures you stay in control of both your usage and your bill.</p>
  1459.  
  1460.  
  1461.  
  1462. <h2 class="wp-block-heading"><strong>Keep Track and Avoid Loops</strong></h2>
  1463.  
  1464.  
  1465.  
  1466. <p>The other thing you need to do is keep track of what works and what doesn’t. Over time, you’ll notice it’s very easy to make mistakes, and the models themselves can sometimes fall into loops. You might give an instruction, and instead of resolving it, the system keeps running the same process again and again. If you’re not paying attention, you can burn through a lot of tokens—and a lot of money—without actually getting sound output. That’s why it’s essential to watch your sessions closely and be ready to interrupt if something looks like it’s stuck.</p>
  1467.  
  1468.  
  1469.  
  1470. <p>Another pitfall is pushing the models beyond their limits. There are tasks they can’t handle well, and when that happens, it’s tempting to keep rephrasing the request and asking again, hoping for a better result. In practice, that often leads to the same cycle of failure, except you’re footing the bill for every attempt. Knowing where the boundaries are and when to stop is critical.</p>
  1471.  
  1472.  
  1473.  
  1474. <p>A practical way to stay on top of this is to maintain a running diary of what worked and what didn’t. Record prompts, outcomes, and notes about efficiency so you can learn from experience instead of repeating expensive mistakes. Combined with keeping an eye on your live usage metrics, this habit will help you refine your approach and avoid wasting both time and money.</p>
  1475. ]]></content:encoded>
  1476. <wfw:commentRss>https://www.oreilly.com/radar/control-codegen-spend/feed/</wfw:commentRss>
  1477. <slash:comments>0</slash:comments>
  1478. </item>
  1479. <item>
  1480. <title>The AI Teaching Toolkit: Practical Guidance for Teams</title>
  1481. <link>https://www.oreilly.com/radar/the-ai-teaching-toolkit-practical-guidance-for-teams/</link>
  1482. <comments>https://www.oreilly.com/radar/the-ai-teaching-toolkit-practical-guidance-for-teams/#respond</comments>
  1483. <pubDate>Wed, 08 Oct 2025 11:12:34 +0000</pubDate>
  1484. <dc:creator><![CDATA[Andrew Stellman]]></dc:creator>
  1485. <category><![CDATA[AI & ML]]></category>
  1486. <category><![CDATA[Commentary]]></category>
  1487.  
  1488. <guid isPermaLink="false">https://www.oreilly.com/radar/?p=17503</guid>
  1489.  
  1490. <media:content
  1491. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/AI-Teaching-Toolkit.jpg"
  1492. medium="image"
  1493. type="image/jpeg"
  1494. width="2304"
  1495. height="1792"
  1496. />
  1497.  
  1498. <media:thumbnail
  1499. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/AI-Teaching-Toolkit-160x160.jpg"
  1500. width="160"
  1501. height="160"
  1502. />
  1503. <description><![CDATA[Teaching developers to work effectively with AI means building habits that keep critical thinking active while leveraging AI’s speed. But teaching these habits isn’t straightforward. Instructors and team leads often find themselves needing to guide developers through challenges in ways that build confidence rather than short-circuit their growth. (See “The Cognitive Shortcut Paradox.”) There are [&#8230;]]]></description>
  1504. <content:encoded><![CDATA[
  1505. <p>Teaching developers to work effectively with AI means building habits that keep critical thinking active while leveraging AI’s speed.</p>
  1506.  
  1507.  
  1508.  
  1509. <p>But teaching these habits isn’t straightforward. Instructors and team leads often find themselves needing to guide developers through challenges in ways that build confidence rather than short-circuit their growth. (See “<a href="https://www.oreilly.com/radar/the-cognitive-shortcut-paradox/" target="_blank" rel="noreferrer noopener">The Cognitive Shortcut Paradox</a>.”) There are the regular challenges of working with AI:</p>
  1510.  
  1511.  
  1512.  
  1513. <ul class="wp-block-list">
  1514. <li>Suggestions that look correct while hiding subtle flaws</li>
  1515.  
  1516.  
  1517.  
  1518. <li>Less experienced developers accepting output without questioning it</li>
  1519.  
  1520.  
  1521.  
  1522. <li>AI producing patterns that don’t match the team’s standards</li>
  1523.  
  1524.  
  1525.  
  1526. <li>Code that works but creates long-term maintainability headaches</li>
  1527. </ul>
  1528.  
  1529.  
  1530.  
  1531. <p>The Sens-AI Framework (see “<a href="https://www.oreilly.com/radar/the-sens-ai-framework/" target="_blank" rel="noreferrer noopener">The Sens-AI Framework: Teaching Developers to Think with AI</a>”) was built to address these problems. It focuses on five habits—context, research, framing, refining, and critical thinking—that help developers use AI effectively while keeping learning and design judgment in the loop.</p>
  1532.  
  1533.  
  1534.  
  1535. <p>This toolkit builds on and reinforces those habits by giving you concrete ways to integrate them into team practices. It&#8217;s designed to give you concrete ways to build these habits in your team, whether you’re running a workshop, leading code reviews, or mentoring individual developers. The techniques that follow include practical teaching strategies, common pitfalls to avoid, reflective questions to deepen learning, and positive signs that show the habits are sticking.</p>
  1536.  
  1537.  
  1538.  
  1539. <h2 class="wp-block-heading"><strong>Advice for Instructors and Team Leads</strong></h2>
  1540.  
  1541.  
  1542.  
  1543. <p>The strategies in this toolkit can be used in classrooms, review meetings, design discussions, or one-on-one mentoring. They’re meant to help new learners, experienced developers, and teams have more open conversations about design decisions, context, and the quality of AI suggestions. The focus is on making review and questioning feel like a normal, expected part of everyday development.</p>
  1544.  
  1545.  
  1546.  
  1547. <p><strong>Discuss assumptions and context explicitly. </strong>In code reviews or mentoring sessions, ask developers to talk about occurrences when the AI gave them poor out unexpected results. Also try asking them to explain what they think the AI might have needed to know to produce a better answer, and where it might have filled in gaps incorrectly. Getting developers to articulate those assumptions helps spot weak points in design before they’re cemented into the code. (See “<a href="https://www.oreilly.com/radar/prompt-engineering-is-requirements-engineering/" target="_blank" rel="noreferrer noopener">Prompt Engineering Is Requirements Engineering</a>.”)</p>
  1548.  
  1549.  
  1550.  
  1551. <p><strong>Encourage pairing or small-group prompt reviews: </strong>Make AI-assisted development collaborative, not siloed. Have developers on a team or students in a class share their prompts with each other, and talk through why they wrote them a certain way, just like they’d talk through design decisions in pair or mob programming. This helps less experienced developers see how others approach framing and refining prompts.</p>
  1552.  
  1553.  
  1554.  
  1555. <p><strong>Encourage researching idiomatic use of code.</strong> One thing that often holds back intermediate developers is not knowing the idioms of a specific framework or language. AI can help here—if they ask for the <em>idiomatic</em> way to do something, they see not just the syntax but also the patterns experienced developers rely on. That shortcut can speed up their understanding and make them more confident when working with new technologies.</p>
  1556.  
  1557.  
  1558.  
  1559. <p>Here are two examples of how using AI to research idioms can help developers quickly adapt:</p>
  1560.  
  1561.  
  1562.  
  1563. <ul class="wp-block-list">
  1564. <li>A developer with deep experience writing microservices but little exposure to Spring Boot can use AI to see the idiomatic way to annotate a class with <code>@RestController</code> and <code>@RequestMapping</code>. They might also learn that Spring Boot favors constructor injection over field injection with <code>@Autowired</code>, or that <code>@GetMapping("/users")</code> is preferred over <code>@RequestMapping(method = RequestMethod.GET, value = "/users")</code>.</li>
  1565.  
  1566.  
  1567.  
  1568. <li>A Java developer new to Scala might reach for <code>null</code> instead of Scala’s <code>Option</code> types—missing a core part of the language’s design. Asking the AI for the idiomatic approach surfaces not just the syntax but the philosophy behind it, guiding developers toward safer and more natural patterns.</li>
  1569. </ul>
  1570.  
  1571.  
  1572.  
  1573. <p><strong>Help developers recognize rehash loops as meaningful signals. </strong>When the AI keeps circling the same broken idea, even developers who have experienced this many times may not realize they&#8217;re caught in a rehash loop. Teach them to recognize the loop as a signal that the AI has exhausted its context, and that it’s time to step back. That pause can lead to research, reframing the problem, or providing new information. For example, you might stop and say: &#8220;Notice how it’s circling the same idea? That’s our signal to break out.&#8221; Then demonstrate how to reset: open a new session, consult documentation, or try a narrower prompt. (See “<a href="https://www.oreilly.com/radar/understanding-the-rehash-loop/" target="_blank" rel="noreferrer noopener">Understanding the Rehash Loop</a>.”)</p>
  1574.  
  1575.  
  1576.  
  1577. <p><strong>Research beyond AI.</strong> Help developers learn that when hitting walls, they don’t need to just tweak prompts endlessly. Model the habit of branching out: check official documentation, search Stack Overflow, or review similar patterns in your existing codebase. AI should be one tool among many. Showing developers how to diversify their research keeps them from looping and builds stronger problem-solving instincts.</p>
  1578.  
  1579.  
  1580.  
  1581. <p><strong>Use failed projects as test cases. </strong>Bring in previous projects that ran into trouble with AI-generated code and revisit them with Sens-AI habits. Review what went right and wrong, talk about where it might have helped to break out of the vibe coding loop to do additional research, reframe the problem, and apply critical thinking. Work with the team to write down lessons you learned from the discussion. Holding a retrospective exercise like this lowers the stakes—developers are free to experiment and critique without slowing down current work. It’s also a powerful way to show how reframing, refining, and verifying could have prevented past issues. (See “<a href="https://www.oreilly.com/radar/building-ai-resistant-technical-debt/" target="_blank" rel="noreferrer noopener">Building AI-Resistant Technical Debt</a>.”)</p>
  1582.  
  1583.  
  1584.  
  1585. <p><strong>Make refactoring part of the exercise. </strong>Help developers avoid the habit of deciding the code is finished when it runs and seems to work. Have them work with the AI to clean up variable names, reduce duplication, simplify overly complex logic, apply design patterns, and find other ways to prevent technical debt. By making evaluation and improvement explicit, you can help developers build the muscle memory that prevents passive acceptance of AI output. (See “<a href="https://www.oreilly.com/radar/trust-but-verify/" target="_blank" rel="noreferrer noopener">Trust but Verify</a>.”)</p>
  1586.  
  1587.  
  1588.  
  1589. <h2 class="wp-block-heading"><strong>Common Pitfalls to Address with Teams</strong></h2>
  1590.  
  1591.  
  1592.  
  1593. <p>Even with good intentions, teams often fall into predictable traps. Watch for these patterns and address them explicitly, because otherwise they can slow progress and mask real learning.</p>
  1594.  
  1595.  
  1596.  
  1597. <p><strong>The completionist trap: </strong><em>Trying to read every line of AI output even when you’re about to regenerate it.</em> Teach developers it’s okay to skim, spot problems, and regenerate early. This helps them avoid wasting time carefully reviewing code they’ll never use, and reduces the risk of cognitive overload. The key is to balance thoroughness with pragmatism—they can start to learn when detail matters and when speed matters more.</p>
  1598.  
  1599.  
  1600.  
  1601. <p><strong>The perfection loop: </strong><em>Endless tweaking of prompts for marginal improvements.</em> Try setting a limit on iteration—for example, if refining a prompt doesn’t get good results after three or four attempts, it’s time to step back and rethink. Developers need to learn that diminishing returns are a sign to change strategy, not to keep grinding, so energy that should go toward solving the problem doesn’t get lost in chasing minor refinements.</p>
  1602.  
  1603.  
  1604.  
  1605. <p><strong>Context dumping:</strong> <em>Pasting entire codebases into prompts.</em> Teach scoping—What’s the minimum context needed for this specific problem? Help them anticipate what the AI needs, and provide the minimal context required to solve each problem. Context dumping can be especially problematic with limited context windows, where the AI literally can’t see all the code you’ve pasted, leading to incomplete or contradictory suggestions. Teaching developers to be intentional about scope prevents confusion and makes AI output more reliable.</p>
  1606.  
  1607.  
  1608.  
  1609. <p><strong>Skipping the fundamentals: </strong><em>Using AI for extensive code generation before understanding basic software development concepts and patterns.</em> Ensure learners can solve simple development problems on their own (without the help of AI) before accelerating with AI on more complex ones. This helps reduce the risk of developers building a shallow knowledge platform that collapses under pressure. Fundamentals are what allow them to evaluate AI’s output critically rather than blindly trusting it.</p>
  1610.  
  1611.  
  1612.  
  1613. <h2 class="wp-block-heading"><strong>AI Archaeology: A Practical Team Exercise for Better Judgment</strong></h2>
  1614.  
  1615.  
  1616.  
  1617. <p>Have your team do an <strong>AI archaeology</strong> exercise. Take a piece of AI-generated code from the previous week and analyze it together. More complex or nontrivial code samples work especially well because they tend to surface more assumptions and patterns worth discussing.</p>
  1618.  
  1619.  
  1620.  
  1621. <p>Have each team member independently write down their own answers to these questions:</p>
  1622.  
  1623.  
  1624.  
  1625. <ul class="wp-block-list">
  1626. <li>What assumptions did the AI make?</li>
  1627.  
  1628.  
  1629.  
  1630. <li>What patterns did it use?</li>
  1631.  
  1632.  
  1633.  
  1634. <li>Did it make the right decision for our codebase?</li>
  1635.  
  1636.  
  1637.  
  1638. <li>How would you refactor or simplify this code if you had to maintain it long-term?</li>
  1639. </ul>
  1640.  
  1641.  
  1642.  
  1643. <p>Once everyone has had time to write, bring the group back together—either in a room or virtually—and compare answers. Look for points of agreement and disagreement. When different developers spot different issues, that contrast can spark discussion about standards, best practices, and hidden dependencies. Encourage the group to debate respectfully, with an emphasis on surfacing reasoning rather than just labeling answers as right or wrong.</p>
  1644.  
  1645.  
  1646.  
  1647. <p>This exercise makes developers slow down and compare perspectives, which helps surface hidden assumptions and coding habits. By putting everyone’s observations side by side, the team builds a shared sense of what good AI-assisted code looks like.</p>
  1648.  
  1649.  
  1650.  
  1651. <p>For example, the team might discover the AI consistently uses older patterns your team has moved away from or that it defaults to verbose solutions when simpler ones exist. Discoveries like that become teaching moments about your team’s standards and help calibrate everyone’s “code smell” detection for AI output. The retrospective format makes the whole exercise more friendly and less intimidating than real-time critique, which helps to strengthen everyone’s judgment over time.</p>
  1652.  
  1653.  
  1654.  
  1655. <h2 class="wp-block-heading"><strong>Signs of Success</strong></h2>
  1656.  
  1657.  
  1658.  
  1659. <p>Balancing pitfalls with positive indicators helps teams see what good AI practice looks like. When these habits take hold, you’ll notice developers:</p>
  1660.  
  1661.  
  1662.  
  1663. <p><strong>Reviewing AI code with the same rigor as human-written code—but only when appropriate.</strong> When developers stop saying “the AI wrote it, so it must be fine” and start giving AI code the same scrutiny they’d give a teammate’s pull request, it demonstrates that the habits are sticking.</p>
  1664.  
  1665.  
  1666.  
  1667. <p><strong>Exploring multiple approaches instead of accepting the first answer.</strong> Developers who use AI effectively don’t settle for the initial response. They ask the AI to generate alternatives, compare them, and use that exploration to deepen their understanding of the problem.</p>
  1668.  
  1669.  
  1670.  
  1671. <p><strong>Recognizing rehash loops without frustration.</strong> Instead of endlessly tweaking prompts, developers treat rehash loops as signals to pause and rethink. This shows they’re learning to manage AI’s limitations rather than fight against them.</p>
  1672.  
  1673.  
  1674.  
  1675. <p><strong>Sharing “AI gotchas” with teammates.</strong> Developers start saying things like “I noticed Copilot always tries this approach, but here’s why it doesn’t work in our codebase.” These small observations become collective knowledge that helps the whole team work together and with AI more effectively.</p>
  1676.  
  1677.  
  1678.  
  1679. <p><strong>Asking “Why did the AI choose this pattern?” instead of just asking “Does it work?”</strong> This subtle shift shows developers are moving beyond surface correctness to reasoning about design. It’s a clear sign that critical thinking is active.</p>
  1680.  
  1681.  
  1682.  
  1683. <p><strong>Bringing fundamentals into AI conversations:</strong> Developers who are working positively with AI tools tend to relate AI output back to core principles like readability, separation of concerns, or testability. This shows they’re not letting AI bypass their grounding in software engineering.</p>
  1684.  
  1685.  
  1686.  
  1687. <p><strong>Treating AI failures as learning opportunities:</strong> When something goes wrong, instead of blaming the AI or themselves, developers dig into why. Was it context? Framing? A fundamental limitation? This investigative mindset turns problems into teachable moments.</p>
  1688.  
  1689.  
  1690.  
  1691. <h2 class="wp-block-heading"><strong>Reflective Questions for Teams</strong></h2>
  1692.  
  1693.  
  1694.  
  1695. <p>Encourage developers to ask themselves these reflective questions periodically. They slow the process just enough to surface assumptions and spark discussion. You might use them in training, pairing sessions, or code reviews to prompt developers to explain their reasoning. The goal is to keep the design conversation active, even when the AI seems to offer quick answers.</p>
  1696.  
  1697.  
  1698.  
  1699. <ul class="wp-block-list">
  1700. <li><strong>What does the AI need to know to do this well?</strong> (Ask this before writing any prompt.)</li>
  1701.  
  1702.  
  1703.  
  1704. <li><strong>What context or requirements might be missing here?</strong> (Helps catch gaps early.)</li>
  1705.  
  1706.  
  1707.  
  1708. <li><strong>Do you need to pause here and do some research?</strong> (Promotes branching out beyond AI.)</li>
  1709.  
  1710.  
  1711.  
  1712. <li><strong>How might you reframe this problem more clearly for the AI?</strong> (Encourages clarity in prompts.)</li>
  1713.  
  1714.  
  1715.  
  1716. <li><strong>What assumptions are you making about this AI output?</strong> (Surfaces hidden design risks.)</li>
  1717.  
  1718.  
  1719.  
  1720. <li><strong>If you’re getting frustrated, is that a signal to step back and rethink?</strong> (Normalizes stepping away.)</li>
  1721.  
  1722.  
  1723.  
  1724. <li><strong>Would it help to switch from reading code to writing tests to check behavior?</strong> (Shifts the lens to validation.)</li>
  1725.  
  1726.  
  1727.  
  1728. <li><strong>Do these unit tests reveal any design issues or hidden dependencies?</strong> (Connects testing with design insight.)</li>
  1729.  
  1730.  
  1731.  
  1732. <li><strong>Have you tried starting a new chat session or using a different AI tool for this research?</strong> (Models flexibility with tools.)</li>
  1733. </ul>
  1734.  
  1735.  
  1736.  
  1737. <p>The goal of this toolkit is to help developers build the kind of judgment that keeps them confident with AI while still growing their core skills. When teams learn to pause, review, and refactor AI-generated code, they move quickly without losing sight of design clarity or long-term maintainability. These teaching strategies give developers the habits to stay in control of the process, learn more deeply from the work, and treat AI as a true collaborator in building better software. As AI tools evolve, these fundamental habits—questioning, verifying, and maintaining design judgment—will remain the difference between teams that use AI well and those that get used by it.</p>
  1738. ]]></content:encoded>
  1739. <wfw:commentRss>https://www.oreilly.com/radar/the-ai-teaching-toolkit-practical-guidance-for-teams/feed/</wfw:commentRss>
  1740. <slash:comments>0</slash:comments>
  1741. </item>
  1742. <item>
  1743. <title>Radar Trends to Watch: October 2025</title>
  1744. <link>https://www.oreilly.com/radar/radar-trends-to-watch-october-2025/</link>
  1745. <comments>https://www.oreilly.com/radar/radar-trends-to-watch-october-2025/#respond</comments>
  1746. <pubDate>Tue, 07 Oct 2025 11:17:09 +0000</pubDate>
  1747. <dc:creator><![CDATA[Mike Loukides]]></dc:creator>
  1748. <category><![CDATA[Radar Trends]]></category>
  1749. <category><![CDATA[Commentary]]></category>
  1750.  
  1751. <guid isPermaLink="false">https://www.oreilly.com/radar/?p=17499</guid>
  1752.  
  1753. <media:content
  1754. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2023/06/radar-1400x950-3.png"
  1755. medium="image"
  1756. type="image/png"
  1757. width="1400"
  1758. height="950"
  1759. />
  1760.  
  1761. <media:thumbnail
  1762. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2023/06/radar-1400x950-3-160x160.png"
  1763. width="160"
  1764. height="160"
  1765. />
  1766. <custom:subtitle><![CDATA[Developments in Programming, Operations, Augmented Reality, and More]]></custom:subtitle>
  1767. <description><![CDATA[This month we have two more protocols to learn. Google has announced the Agent Payments Protocol (AP2), which is intended to help agents to engage in ecommerce—it’s largely concerned with authenticating and authorizing parties making a transaction. And the Agent Client Protocol (ACP) is concerned with communications between code editors and coding agents. When implemented, [&#8230;]]]></description>
  1768. <content:encoded><![CDATA[
  1769. <p>This month we have two more protocols to learn. Google has announced the Agent Payments Protocol (AP2), which is intended to help agents to engage in ecommerce—it’s largely concerned with authenticating and authorizing parties making a transaction. And the Agent Client Protocol (ACP) is concerned with communications between code editors and coding agents. When implemented, it would allow any code editor to plug in any compliant agent.</p>
  1770.  
  1771.  
  1772.  
  1773. <p>All hasn’t been quiet on the virtual reality front. Meta has announced its new VR/AR glasses, with the ability to display images on the lenses along with capabilities like live captioning for conversations. They’re much less obtrusive than the previous generation of VR goggles.</p>
  1774.  
  1775.  
  1776.  
  1777. <h2 class="wp-block-heading">AI</h2>
  1778.  
  1779.  
  1780.  
  1781. <ul class="wp-block-list">
  1782. <li>Suno has <a href="https://suno.com/studio-welcome" target="_blank" rel="noreferrer noopener">announced</a> an AI-driven digital audio workstation (DAW), a tool for enabling people to be creative with AI-generated music.</li>
  1783.  
  1784.  
  1785.  
  1786. <li>Ollama has added its own <a href="https://docs.ollama.com/web-search" target="_blank" rel="noreferrer noopener">web search API</a>. Ollama’s search API can be used to augment the information available to models. </li>
  1787.  
  1788.  
  1789.  
  1790. <li>GitHub Copilot now offers a command-line tool, <a href="https://github.blog/changelog/2025-09-25-github-copilot-cli-is-now-in-public-preview/" target="_blank" rel="noreferrer noopener">GitHub CLI</a>. It can use either Claude Sonnet 4 or GPT-5 as the backing model, though other models should be available soon. Claude 4 is the default.</li>
  1791.  
  1792.  
  1793.  
  1794. <li>Alibaba has released <a href="https://qwen.ai/blog?id=87dc93fc8a590dc718c77e1f6e84c07b474f6c5a&amp;from=home.latest-research-list" target="_blank" rel="noreferrer noopener">Qwen3-Max</a>, a trillion-plus parameter model. There are reasoning and nonreasoning variants, though the reasoning variant hasn’t yet been released. Alibaba <a href="https://thesequence.substack.com/p/the-sequence-radar-727-qwens-oneweek" target="_blank" rel="noreferrer noopener">also released</a> models for <a href="https://qwen.ai/blog?id=b4264e11fb80b5e37350790121baf0a0f10daf82&amp;from=research.latest-advancements-list" target="_blank" rel="noreferrer noopener">speech-to-text</a>, <a href="https://qwen.ai/blog?id=99f0335c4ad9ff6153e517418d48535ab6d8afef&amp;from=research.latest-advancements-list" target="_blank" rel="noreferrer noopener">vision-language</a>, <a href="https://qwen.ai/blog?id=4266edf7f3718f2d3fda098b3f4c48f3573215d0&amp;from=home.latest-research-list" target="_blank" rel="noreferrer noopener">live translation</a>, and more. They’ve been busy. </li>
  1795.  
  1796.  
  1797.  
  1798. <li>GitHub has launched its <a href="https://github.blog/ai-and-ml/github-copilot/meet-the-github-mcp-registry-the-fastest-way-to-discover-mcp-servers/" target="_blank" rel="noreferrer noopener">MCP Registry</a> to make it easier to discover MCP servers archived on GitHub. It’s also working with Anthropic and others to build an <a href="https://github.com/modelcontextprotocol/registry/" target="_blank" rel="noreferrer noopener">open source MCP registry</a>, which lists servers regardless of their origin and integrates with GitHub’s registry. </li>
  1799.  
  1800.  
  1801.  
  1802. <li>DeepMind has published <a href="https://storage.googleapis.com/deepmind-media/DeepMind.com/Blog/strengthening-our-frontier-safety-framework/frontier-safety-framework_3.pdf" target="_blank" rel="noreferrer noopener">version 3.0</a> of its <a href="https://deepmind.google/discover/blog/strengthening-our-frontier-safety-framework/" target="_blank" rel="noreferrer noopener">Frontier Safety Framework</a>, a framework for experimenting with AI-human alignment. They’re particularly interested in scenarios where the AI doesn’t follow a user’s directives, and in behaviors that can’t be traced to a specific reasoning chain.</li>
  1803.  
  1804.  
  1805.  
  1806. <li>Alibaba has released the <a href="https://github.com/Alibaba-NLP/DeepResearch" target="_blank" rel="noreferrer noopener">Tongyi DeepResearch</a> reasoning model. Tongyi is a 30.5B parameter mixture-of-experts model, with 3.3B parameters active. More importantly, it’s fully open source, with no restrictions on how it can be used. </li>
  1807.  
  1808.  
  1809.  
  1810. <li><a href="https://locallyai.app/" target="_blank" rel="noreferrer noopener">Locally AI</a> is an iOS app that lets you run large language models on your iPhone or iPad. It works offline; there’s no need for a network connection. </li>
  1811.  
  1812.  
  1813.  
  1814. <li>OpenAI has added <a href="https://www.bleepingcomputer.com/news/artificial-intelligence/chatgpt-now-gives-you-greater-control-over-gpt-5-thinking-model/" target="_blank" rel="noreferrer noopener">control over the “reasoning” process</a> to its GPT-5 models. Users can choose between four levels: Light (Pro users only), Standard, Extended, and Heavy (Pro only). </li>
  1815.  
  1816.  
  1817.  
  1818. <li>Google has announced the <a href="https://cloud.google.com/blog/products/ai-machine-learning/announcing-agents-to-payments-ap2-protocol" target="_blank" rel="noreferrer noopener">Agent Payments Protocol</a> (AP2), which facilitates purchases. It focuses on authorization (proving that it has the authority to make a purchase), authentication (proving that the merchant is legitimate), and accountability (in case of a fraudulent transaction).</li>
  1819.  
  1820.  
  1821.  
  1822. <li><a href="https://www.dbreunig.com/2025/09/15/ai-adoption-at-work-play.html" target="_blank" rel="noreferrer noopener">Bring Your Own AI</a>: Employee adoption of AI greatly exceeds official IT adoption. We’ve seen this before, on technologies as different as the iPhone and open source.</li>
  1823.  
  1824.  
  1825.  
  1826. <li>Alibaba has <a href="https://news.smol.ai/issues/25-09-11-qwen3-next/" target="_blank" rel="noreferrer noopener">released</a> the ponderously named <a href="https://qwen.ai/blog?id=4074cca80393150c248e508aa62983f9cb7d27cd&amp;from=research.latest-advancements-list" target="_blank" rel="noreferrer noopener">Qwen3-Next-80B-A3B-Base</a>. It’s a mixture-of-experts model with a high ratio of active parameters to total parameters (3.75%). Alibaba claims that the model cost 1/10 as much to train and is 10 times faster than its previous models. If this holds up, Alibaba is winning on performance where it counts.</li>
  1827.  
  1828.  
  1829.  
  1830. <li>Anthropic has announced a <a href="https://www.anthropic.com/news/create-files" target="_blank" rel="noreferrer noopener">major upgrade to Claude’s capabilities</a>. It can now execute Python scripts in a sandbox and can create Excel spreadsheets, PowerPoint presentations, PNG files, and other documents. You can upload files for it to analyze. And of course this comes with security risks.</li>
  1831.  
  1832.  
  1833.  
  1834. <li>The <a href="https://guides.lib.uchicago.edu/c.php?g=1241077&amp;p=9082322" target="_blank" rel="noreferrer noopener">SIFT</a> method—stop, investigate the source, find better sources, and trace quotes to their original context—is a way of structuring your use of AI output that will make you less vulnerable to misinformation. Hint: it’s not just for AI.</li>
  1835.  
  1836.  
  1837.  
  1838. <li>OpenAI’s <a href="https://help.openai.com/en/articles/10169521-projects-in-chatgpt" target="_blank" rel="noreferrer noopener">Projects</a> feature is now available to <a href="https://www.bleepingcomputer.com/news/artificial-intelligence/chatgpt-makes-projects-feature-free-adds-a-toggle-to-split-chat/" target="_blank" rel="noreferrer noopener">free</a> accounts. Projects is a set of tools for organizing conversations with the LLM. Projects are separate workspaces with their own custom instructions, independent memory, and context. They can be forked. Projects sounds something like Git for LLMs—a set of features that’s badly needed.</li>
  1839.  
  1840.  
  1841.  
  1842. <li><a href="https://developers.googleblog.com/en/introducing-embeddinggemma/" target="_blank" rel="noreferrer noopener">EmbeddingGemma</a> is a new open weights embedding model (308M parameters) that’s designed to run on devices, requiring as little as 200 MB of memory.</li>
  1843.  
  1844.  
  1845.  
  1846. <li>An <a href="https://arstechnica.com/science/2025/09/these-psychological-tricks-can-get-llms-to-respond-to-forbidden-prompts/" target="_blank" rel="noreferrer noopener">experiment</a> with GPT-4o-mini shows that language models can fall to psychological manipulation. Is this surprising? After all, they are trained on human output.</li>
  1847.  
  1848.  
  1849.  
  1850. <li>“<a href="https://www.lukew.com/ff/entry.asp?2117" target="_blank" rel="noreferrer noopener">Platform Shifts Redefine Apps</a>”: AI is a new kind of platform and demands rethinking what applications mean and how they should work. Failure to do this rethinking may be why so many AI efforts fail.</li>
  1851.  
  1852.  
  1853.  
  1854. <li><a href="https://mcpui.dev/" target="_blank" rel="noreferrer noopener">MCP-UI</a> is a protocol that allows MCP servers to <a href="https://thenewstack.io/how-mcp-ui-powers-shopifys-new-commerce-widgets-in-agents/" target="_blank" rel="noreferrer noopener">send React components</a> or Web Components to agents, allowing the agent to build an appropriate browser-based interface on the fly.</li>
  1855.  
  1856.  
  1857.  
  1858. <li>The <a href="https://agentclientprotocol.com/overview/introduction" target="_blank" rel="noreferrer noopener">Agent Client Protocol</a> (ACP) is a new protocol that standardizes communications between code editors and coding agents. It’s currently supported by the Zed and Neovim editors, and by the Gemini CLI coding agent.</li>
  1859.  
  1860.  
  1861.  
  1862. <li>Gemini 2.5 Flash is now using a <a href="https://blog.google/products/gemini/updated-image-editing-model/" target="_blank" rel="noreferrer noopener">new image generation model</a> that was internally known as “nano banana.” This new model can edit uploaded images, merge images, and maintain visual consistency across a series of images.</li>
  1863. </ul>
  1864.  
  1865.  
  1866.  
  1867. <h2 class="wp-block-heading">Programming</h2>
  1868.  
  1869.  
  1870.  
  1871. <ul class="wp-block-list">
  1872. <li>Anthropic <a href="https://www.anthropic.com/news/enabling-claude-code-to-work-more-autonomously" target="_blank" rel="noreferrer noopener">released Claude Code 2.0</a>. New features include the ability to checkpoint your work, so that if a coding agent wanders off-course, you can return to a previous state. They have also added the ability to run tasks in the background, call hooks, and use subagents.</li>
  1873.  
  1874.  
  1875.  
  1876. <li>Suno has <a href="https://suno.com/studio-welcome" target="_blank" rel="noreferrer noopener">announced</a> an AI-driven digital audio workstation (DAW), a tool for enabling people to be creative with AI-generated music.</li>
  1877.  
  1878.  
  1879.  
  1880. <li>The Wasmer project has <a href="https://wasmer.io/posts/python-on-the-edge-powered-by-webassembly" target="_blank" rel="noreferrer noopener">announced</a> that it now has full Python support in the beta version of Wasmer Edge, its WebAssembly runtime for serverless edge deployment.</li>
  1881.  
  1882.  
  1883.  
  1884. <li>Mitchell Hashimoto, founder of Hashicorp, has <a href="https://mitchellh.com/writing/libghostty-is-coming" target="_blank" rel="noreferrer noopener">promised</a> that a library for Ghostty (libghostty) is coming! This library will make it easy to embed a terminal emulator into an application. Perhaps more important, libghostty might standardize the code for terminal output across applications. </li>
  1885.  
  1886.  
  1887.  
  1888. <li>There’s a new benchmark for agentic coding: <a href="https://quesma.com/blog/introducing-compilebench/" target="_blank" rel="noreferrer noopener">CompileBench</a>. CompileBench tests the ability of models to <a href="https://simonwillison.net/2025/Sep/22/compilebench/" target="_blank" rel="noreferrer noopener">solve complex problems in figuring out how to build code</a>. </li>
  1889.  
  1890.  
  1891.  
  1892. <li>Apple is reportedly <a href="https://medium.com/@yashbatra11111/why-apple-is-quietly-rewriting-ios-in-a-language-youve-never-heard-of-2f70181df3bb" target="_blank" rel="noreferrer noopener">rewriting iOS in a new programming language</a>. Rust would be the obvious choice, but rumors are that it’s something of their own creation. Apple likes languages it can control. </li>
  1893.  
  1894.  
  1895.  
  1896. <li><a href="https://www.oracle.com/news/announcement/oracle-releases-java-25-2025-09-16/" target="_blank" rel="noreferrer noopener">Java 25</a>, the latest long-term support release, has a number of new features that <a href="https://thenewstack.io/java-25-oracle-makes-java-easier-to-learn-ready-for-ai-development/" target="_blank" rel="noreferrer noopener">reduce the boilerplate</a> that makes Java difficult to learn. </li>
  1897.  
  1898.  
  1899.  
  1900. <li><a href="https://luau.org/" target="_blank" rel="noreferrer noopener">Luau</a> is a new scripting language derived from Lua. It claims to be fast, small, and safe. It’s backward compatible with Version 5.1 of Lua.</li>
  1901.  
  1902.  
  1903.  
  1904. <li>OpenAI has <a href="https://www.latent.space/p/gpt5-codex" target="_blank" rel="noreferrer noopener">launched</a> <a href="https://openai.com/index/introducing-upgrades-to-codex/" target="_blank" rel="noreferrer noopener">GPT-5 Codex</a>, its generation model trained specifically for software engineering. Codex is now available both in the CLI tool and through the API. It’s clearly intended to challenge Anthropic’s dominant coding tool, Claude Code.</li>
  1905.  
  1906.  
  1907.  
  1908. <li>Do prompts belong in code repositories? We’ve argued that prompts should be archived. But <a href="https://towardsdatascience.com/why-your-prompts-dont-belong-in-git/" target="_blank" rel="noreferrer noopener">they don’t belong in a source code repo</a> like Git. There are better tools available.</li>
  1909.  
  1910.  
  1911.  
  1912. <li>This is cool and different. A developer has <a href="https://joshfonseca.com/blogs/animal-crossing-llm" target="_blank" rel="noreferrer noopener">hacked</a> the 2001 game <em>Animal Crossing</em> so that the dialog is generated by LLM rather than coming from the game’s memory.</li>
  1913.  
  1914.  
  1915.  
  1916. <li>There’s a new programming language, vibe-coded in its entirety with Claude. <a href="https://simonwillison.net/2025/Sep/9/cursed/" target="_blank" rel="noreferrer noopener">Cursed</a> is similar to Claude, but all the keywords are Gen Z slang. It’s not yet on the list, but it’s a worthy addition to <a href="https://esolangs.org/wiki/Main_Page" target="_blank" rel="noreferrer noopener">Esolang</a>. </li>
  1917.  
  1918.  
  1919.  
  1920. <li>Claude Code is now integrated into the Zed editor (beta), using the <a href="https://agentclientprotocol.com/overview/introduction" target="_blank" rel="noreferrer noopener">Agent Client Protocol</a> <a href="https://agentclientprotocol.com/overview/introduction" target="_blank" rel="noreferrer noopener">(ACP)</a>. </li>
  1921.  
  1922.  
  1923.  
  1924. <li>Ida Bechtle’s <a href="https://www.youtube.com/watch?v=GfH4QL4VqJ0" target="_blank" rel="noreferrer noopener">documentary on the history of Python</a>, complete with many interviews with Guido van Rossum, is a must-watch.</li>
  1925. </ul>
  1926.  
  1927.  
  1928.  
  1929. <h2 class="wp-block-heading">Security</h2>
  1930.  
  1931.  
  1932.  
  1933. <ul class="wp-block-list">
  1934. <li>The first <a href="https://www.koi.security/blog/postmark-mcp-npm-malicious-backdoor-email-theft" target="_blank" rel="noreferrer noopener">malicious MCP server</a> has been found in the wild. Postmark-MCP, an MCP server for interacting with the Postmark application, suddenly (version 1.0.16) started sending copies of all the email it handles to its developer.</li>
  1935.  
  1936.  
  1937.  
  1938. <li>I doubt this is the first time, but <a href="https://www.bleepingcomputer.com/news/security/malicious-rust-packages-on-cratesio-steal-crypto-wallet-keys/" target="_blank" rel="noreferrer noopener">supply chain security vulnerabilities have now hit Rust’s package management system, Crates.io</a>. Two packages that steal keys for cryptocurrency wallets have been found. It’s time to be careful about what you download.</li>
  1939.  
  1940.  
  1941.  
  1942. <li><a href="https://embracethered.com/blog/posts/2025/cross-agent-privilege-escalation-agents-that-free-each-other/" target="_blank" rel="noreferrer noopener">Cross-agent privilege escalation</a> is a new kind of vulnerability in which a compromised intelligent agent uses indirect prompt injection to cause a victim agent to overwrite its configuration, granting it additional privileges. </li>
  1943.  
  1944.  
  1945.  
  1946. <li>GitHub is taking a number of measures to <a href="https://www.bleepingcomputer.com/news/security/github-tightens-npm-security-with-mandatory-2fa-access-tokens/" target="_blank" rel="noreferrer noopener">improve software supply chain security</a>, including requiring two-factor authentication (2FA), expanding <a href="https://repos.openssf.org/trusted-publishers-for-all-package-repositories" target="_blank" rel="noreferrer noopener">trusted publishing</a>, and more.</li>
  1947.  
  1948.  
  1949.  
  1950. <li>A compromised npm package uses a <a href="https://www.bleepingcomputer.com/news/security/npm-package-caught-using-qr-code-to-fetch-cookie-stealing-malware/" target="_blank" rel="noreferrer noopener">QR code to encode malware</a>. The malware is apparently downloaded in the QR code (which is valid, but too dense to be read by a normal camera), unpacked by the software, and used to steal cookies from the victim’s browser. </li>
  1951.  
  1952.  
  1953.  
  1954. <li>Node.js and its package manager npm have been in the news because of an ongoing series of supply chain attacks. Here’s the <a href="https://www.bleepingcomputer.com/news/security/self-propagating-supply-chain-attack-hits-187-npm-packages/" target="_blank" rel="noreferrer noopener">latest report</a>.</li>
  1955.  
  1956.  
  1957.  
  1958. <li>A <a href="https://blogs.cisco.com/security/detecting-exposed-llm-servers-shodan-case-study-on-ollama" target="_blank" rel="noreferrer noopener">study by Cisco</a> has discovered over a thousand unsecured LLM servers running on Ollama. Roughly 20% were actively serving requests. The rest may have been idle Ollama instances, waiting to be exploited. </li>
  1959.  
  1960.  
  1961.  
  1962. <li>Anthropic has announced that <a href="https://old.reddit.com/r/LocalLLaMA/comments/1n2ubjx/if_you_have_a_claude_personal_account_they_are/" target="_blank" rel="noreferrer noopener">Claude will train on data from personal accounts</a>, effective September 28. This includes Free, Pro, and Max plans. Work plans are exempted. While the company says that training on personal data is opt-in, it’s (currently) enabled by default, so it’s opt-out.</li>
  1963.  
  1964.  
  1965.  
  1966. <li>We now have “<a href="https://www.bleepingcomputer.com/news/security/malware-devs-abuse-anthropics-claude-ai-to-build-ransomware/" target="_blank" rel="noreferrer noopener">vibe hacking</a>,” the use of AI to develop malware. Anthropic has reported several instances in which Claude was used to create malware that the authors could not have created themselves. Anthropic is banning threat actors and implementing classifiers to detect illegal use.</li>
  1967.  
  1968.  
  1969.  
  1970. <li>Zero trust is basic to modern security. But groups implementing zero trust have to realize that it’s a project that’s <a href="https://www.bleepingcomputer.com/news/security/why-zero-trust-is-never-done-and-is-an-ever-evolving-process/" target="_blank" rel="noreferrer noopener">never finished</a>. Threats change, people change, systems change.</li>
  1971.  
  1972.  
  1973.  
  1974. <li>There’s a new technique for jailbreaking LLMs: write prompts with <a href="https://www.theregister.com/2025/08/26/breaking_llms_for_fun/" target="_blank" rel="noreferrer noopener">bad grammar and run-on sentences</a>. These seem to prevent guardrails from taking effect. </li>
  1975.  
  1976.  
  1977.  
  1978. <li>In an attempt to minimize the propagation of malware on the Android platform, Google <a href="https://www.bleepingcomputer.com/news/security/google-to-verify-all-android-devs-to-block-malware-on-google-play/" target="_blank" rel="noreferrer noopener">plans</a> to block “sideloading” apps for Android devices and require developer ID verification for apps installed through Google Play.</li>
  1979.  
  1980.  
  1981.  
  1982. <li>A <a href="https://research.checkpoint.com/2025/zipline-phishing-campaign/" target="_blank" rel="noreferrer noopener">new phishing attack called ZipLine</a> targets companies using their own “contact us” pages. The attacker then engages in an extended dialog with the company, often posing as a potential business partner, before eventually delivering a malware payload.</li>
  1983. </ul>
  1984.  
  1985.  
  1986.  
  1987. <h2 class="wp-block-heading">Operations</h2>
  1988.  
  1989.  
  1990.  
  1991. <ul class="wp-block-list">
  1992. <li>The <a href="https://blog.google/technology/developers/dora-report-2025/" target="_blank" rel="noreferrer noopener">2025 DORA report</a> is out! DORA may be the most detailed summary of the state of the IT industry. DORA’s authors note that AI is everywhere and that the use of AI now improves end-to-end productivity, something that was ambiguous in last year’s report.</li>
  1993.  
  1994.  
  1995.  
  1996. <li>Microsoft has <a href="https://www.bleepingcomputer.com/news/microsoft/microsoft-word-will-save-your-files-to-the-cloud-by-default/" target="_blank" rel="noreferrer noopener">announced</a> that Word will save files to the cloud (OneDrive) by default. This (so far) appears to apply only when using Windows. The feature is currently in beta.</li>
  1997. </ul>
  1998.  
  1999.  
  2000.  
  2001. <h2 class="wp-block-heading">Web</h2>
  2002.  
  2003.  
  2004.  
  2005. <ul class="wp-block-list">
  2006. <li>Do we need another browser? <a href="https://helium.computer/" target="_blank" rel="noreferrer noopener">Helium</a> is a Chromium-based browser that is private by default. </li>
  2007.  
  2008.  
  2009.  
  2010. <li>Are scientists <a href="https://www.psypost.org/scientists-say-x-formerly-twitter-has-lost-its-professional-edge-and-bluesky-is-taking-its-place/" target="_blank" rel="noreferrer noopener">moving from Twitter to Bluesky</a>?</li>
  2011. </ul>
  2012.  
  2013.  
  2014.  
  2015. <h2 class="wp-block-heading">Virtual and Augmented Reality</h2>
  2016.  
  2017.  
  2018.  
  2019. <ul class="wp-block-list">
  2020. <li>Meta has announced a pair of <a href="https://arstechnica.com/gadgets/2025/09/metas-799-ray-ban-display-is-the-companys-first-big-step-from-vr-to-ar/" target="_blank" rel="noreferrer noopener">augmented reality glasses</a> with a small display on one of the lenses, bringing it to the edge of AR. In addition to displaying apps from your phone, the glasses can do “live captioning” for conversations. The display is controlled by a wristband.</li>
  2021. </ul>
  2022. ]]></content:encoded>
  2023. <wfw:commentRss>https://www.oreilly.com/radar/radar-trends-to-watch-october-2025/feed/</wfw:commentRss>
  2024. <slash:comments>0</slash:comments>
  2025. </item>
  2026. <item>
  2027. <title>Mapping the Design Space of AI Coding Assistants</title>
  2028. <link>https://www.oreilly.com/radar/from-autocomplete-to-agents-mapping-the-design-space-of-ai-coding-assistants/</link>
  2029. <comments>https://www.oreilly.com/radar/from-autocomplete-to-agents-mapping-the-design-space-of-ai-coding-assistants/#respond</comments>
  2030. <pubDate>Mon, 06 Oct 2025 11:09:27 +0000</pubDate>
  2031. <dc:creator><![CDATA[Sam Lau and Philip Guo]]></dc:creator>
  2032. <category><![CDATA[AI & ML]]></category>
  2033. <category><![CDATA[Research]]></category>
  2034.  
  2035. <guid isPermaLink="false">https://www.oreilly.com/radar/?p=17493</guid>
  2036.  
  2037. <media:content
  2038. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/Analysis_of_AI_assistants.jpg"
  2039. medium="image"
  2040. type="image/jpeg"
  2041. width="2304"
  2042. height="1792"
  2043. />
  2044.  
  2045. <media:thumbnail
  2046. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/Analysis_of_AI_assistants-160x160.jpg"
  2047. width="160"
  2048. height="160"
  2049. />
  2050. <custom:subtitle><![CDATA[From Autocomplete to Agents: Analyzing 90 Tools from Industry and Academia]]></custom:subtitle>
  2051. <description><![CDATA[Just a few years ago, AI coding assistants were little more than autocomplete curiosities—tools that could finish your variable names or suggest a line of boilerplate. Today, they’ve become an everyday part of millions of developers’ workflows, with entire products and startups built around them. Depending on who you ask, they represent either the dawn [&#8230;]]]></description>
  2052. <content:encoded><![CDATA[
  2053. <p>Just a few years ago, AI coding assistants were little more than autocomplete curiosities—tools that could finish your variable names or suggest a line of boilerplate. Today, they’ve become an everyday part of millions of developers’ workflows, with entire products and startups built around them. Depending on who you ask, they represent either the dawn of a new programming era or the end of programming as we know it. Amid the hype and skepticism, one thing is clear: The landscape of coding assistants is expanding rapidly, and it can be hard to zoom out and see the bigger picture.</p>
  2054.  
  2055.  
  2056.  
  2057. <p>I’m <a href="https://lau.ucsd.edu/" target="_blank" rel="noreferrer noopener">Sam Lau</a> from UC San Diego, and my colleague <a href="https://pg.ucsd.edu/" target="_blank" rel="noreferrer noopener">Philip Guo</a> and I are presenting a <a href="https://lau.ucsd.edu/pubs/2025_analysis-of-90-genai-coding-tools_VLHCC.pdf" target="_blank" rel="noreferrer noopener">research paper</a> at the Visual Languages and Human-Centric Computing conference (VL/HCC) on this very topic. We wanted to know: <strong>How have AI coding assistants evolved over the past few years, and where is the field headed?</strong></p>
  2058.  
  2059.  
  2060.  
  2061. <p>To answer this question, we analyzed <strong>90 AI coding assistants</strong> created between 2021 and 2025: 58 industry products and 32 academic prototypes. Some were widely used commercial assistants, while others were experimental research systems that explored entirely new ways of working with AI. Rather than focusing on who was “best” or which system was most powerful, we took a different approach. We built a <strong>design space framework</strong>: a kind of map that highlights the major choices designers and researchers make when building coding assistants. By comparing industry and academic systems side by side, we hoped to uncover both patterns and blind spots in how these tools are being shaped.</p>
  2062.  
  2063.  
  2064.  
  2065. <p>The result is the first comprehensive snapshot of the space at this critical moment in 2025 when AI coding assistants are starting to mature but their future directions remain very much in flux.</p>
  2066.  
  2067.  
  2068.  
  2069. <p>Here’s a summary of our findings:</p>
  2070.  
  2071.  
  2072.  
  2073. <figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1600" height="1332" src="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/design_space-1600x1332.png" alt="Overview of findings" class="wp-image-17494" srcset="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/design_space-1600x1332.png 1600w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/design_space-300x250.png 300w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/design_space-768x640.png 768w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/design_space-1536x1279.png 1536w, https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/10/design_space-2048x1705.png 2048w" sizes="(max-width: 1600px) 100vw, 1600px" /></figure>
  2074.  
  2075.  
  2076.  
  2077. <h2 class="wp-block-heading"><strong>10 Dimensions That Define These Tools</strong></h2>
  2078.  
  2079.  
  2080.  
  2081. <p>What makes one coding assistant feel like a helpful copilot and another feel like a clunky distraction? In our analysis, we identified 10 dimensions of design, grouped into four broad themes:</p>
  2082.  
  2083.  
  2084.  
  2085. <ol class="wp-block-list">
  2086. <li>Interface: How the assistant shows up (inline autocomplete, proactive suggestions, full IDEs).</li>
  2087.  
  2088.  
  2089.  
  2090. <li>Inputs: What you can feed it (text, design files, code analysis, custom project rules).</li>
  2091.  
  2092.  
  2093.  
  2094. <li>Capabilities: What it can do (self-correct, run code, call external tools).</li>
  2095.  
  2096.  
  2097.  
  2098. <li>Outputs: How it delivers results (code blocks, interactive outputs, reasoning traces, references).</li>
  2099. </ol>
  2100.  
  2101.  
  2102.  
  2103. <p>For example, some assistants like GitHub Copilot are optimized for speed and minimal friction: autocomplete a few keystrokes, press tab, keep coding. Academic projects like WaitGPT and DBox are designed for exploration and learning by slowing users down to reflect on trade-offs, offering explanations, or scaffolding programming concepts for beginners. (Links to all 90 projects are in our <a href="https://lau.ucsd.edu/pubs/2025_analysis-of-90-genai-coding-tools_VLHCC.pdf" target="_blank" rel="noreferrer noopener">paper PDF</a>.)</p>
  2104.  
  2105.  
  2106.  
  2107. <p>One of the clearest findings from our survey is a split between industry and academia.</p>
  2108.  
  2109.  
  2110.  
  2111. <ul class="wp-block-list">
  2112. <li>Industry products focus on speed, efficiency, and seamless integration. Their pitch is simple: write code faster, with fewer errors. Think of tools like Cursor, Claude Code, or GitHub Copilot, which promise “coding at the speed of thought.”</li>
  2113.  
  2114.  
  2115.  
  2116. <li>Academic prototypes, by contrast, diverge in many directions. Some deliberately slow down the coding process to encourage reflection. Others focus on scaffolding learning for students, supporting accessibility, or enabling entirely new ways of prompting, like letting users sketch a UI instead of writing a text-based prompt.</li>
  2117. </ul>
  2118.  
  2119.  
  2120.  
  2121. <p>This divergence reflects two different priorities: one optimized for productivity in professional software engineering, the other for exploring what programming could be or should be. Both approaches have value, and to us the most interesting question is whether the two cultures might eventually converge, or at least learn from each other.</p>
  2122.  
  2123.  
  2124.  
  2125. <h2 class="wp-block-heading"><strong>Six Personas, Six Ways of Coding with AI</strong></h2>
  2126.  
  2127.  
  2128.  
  2129. <p>Another way to make sense of the space is to ask: Who are these tools really for? We identified six user personas that kept reappearing across systems:</p>
  2130.  
  2131.  
  2132.  
  2133. <ul class="wp-block-list">
  2134. <li>Software engineers, who seek tools to accelerate professional workflows</li>
  2135.  
  2136.  
  2137.  
  2138. <li>HCI researchers and hobbyists, who create prototypes and new ways of working with AI</li>
  2139.  
  2140.  
  2141.  
  2142. <li>UX designers, who use assistants to quickly prototype and iterate on interface ideas</li>
  2143.  
  2144.  
  2145.  
  2146. <li><a href="https://pg.ucsd.edu/publications/conversational-programmers-in-industry_CHI-2016.pdf" target="_blank" rel="noreferrer noopener">Conversational programmers</a>, who are nontechnical professionals that engage in vibe coding by describing ideas in natural language</li>
  2147.  
  2148.  
  2149.  
  2150. <li>Data scientists, who need explainability and quick iterations on code-driven experiments</li>
  2151.  
  2152.  
  2153.  
  2154. <li>Students learning to code, who benefit from scaffolding, guidance, and explanations</li>
  2155. </ul>
  2156.  
  2157.  
  2158.  
  2159. <p>Each persona requires different designs, which we highlight within our design space. For example, tools designed for software engineers like Claude Code and Aider are integrated into their existing code editors and terminals, support a high degree of customization, and have autonomy to write and run code without human intervention. In contrast, tools for designers like Lovable and Vercel v0 are browser-based and can create applications using a visual mockup like a Figma design file.</p>
  2160.  
  2161.  
  2162.  
  2163. <h2 class="wp-block-heading"><strong><strong>What Comes After Autocomplete, Chat, and Agents?</strong></strong></h2>
  2164.  
  2165.  
  2166.  
  2167. <p>So where does this leave us? Coding assistants are no longer experimental toys. They’re woven into production workflows, classrooms, design studios, and research labs. But their future is far from settled.</p>
  2168.  
  2169.  
  2170.  
  2171. <p>From our perspective, the central challenge is that academia and industry are innovating in parallel yet rarely in conversation with one another. While industry tools optimize for speed, generating lots of code quickly is not the same as building good software. In fact, recent studies have shown that although AI coding assistants have claimed to boost productivity by 10x, reality so far is closer to incremental improvements. (See <a href="https://addyo.substack.com/p/the-reality-of-ai-assisted-software" target="_blank" rel="noreferrer noopener">Addy Osmani’s recent blog post</a> for a summary.) <strong>What if academia and industry could work together to combine rigorous study of real barriers to productivity with the practical experience of scaling tools in production?</strong> If this could happen, we might move beyond simply making code faster to write toward making software development itself more rapid and sustainable.</p>
  2172.  
  2173.  
  2174.  
  2175. <p>Check out our paper <a href="https://lau.ucsd.edu/pubs/2025_analysis-of-90-genai-coding-tools_VLHCC.pdf" target="_blank" rel="noreferrer noopener">here</a> and email us if you&#8217;d like to discuss anything related to it!</p>
  2176. ]]></content:encoded>
  2177. <wfw:commentRss>https://www.oreilly.com/radar/from-autocomplete-to-agents-mapping-the-design-space-of-ai-coding-assistants/feed/</wfw:commentRss>
  2178. <slash:comments>0</slash:comments>
  2179. </item>
  2180. <item>
  2181. <title>Generative AI in the Real World: Emmanuel Ameisen on LLM Interpretability</title>
  2182. <link>https://www.oreilly.com/radar/podcast/generative-ai-in-the-real-world-emmanuel-ameisen-on-llm-interpretability/</link>
  2183. <comments>https://www.oreilly.com/radar/podcast/generative-ai-in-the-real-world-emmanuel-ameisen-on-llm-interpretability/#respond</comments>
  2184. <pubDate>Thu, 02 Oct 2025 14:31:22 +0000</pubDate>
  2185. <dc:creator><![CDATA[Ben Lorica and Emmanuel Ameisen]]></dc:creator>
  2186. <category><![CDATA[Podcast]]></category>
  2187.  
  2188. <guid isPermaLink="false">https://www.oreilly.com/radar/?post_type=podcast&#038;p=17488</guid>
  2189.  
  2190. <enclosure url="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3" length="0" type="audio/mpeg" />
  2191. <media:content
  2192. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2024/01/Podcast_Cover_GenAI_in_the_Real_World-scaled.png"
  2193. medium="image"
  2194. type="image/png"
  2195. width="2560"
  2196. height="2560"
  2197. />
  2198.  
  2199. <media:thumbnail
  2200. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2024/01/Podcast_Cover_GenAI_in_the_Real_World-160x160.png"
  2201. width="160"
  2202. height="160"
  2203. />
  2204. <description><![CDATA[In this episode, Ben Lorica and Anthropic interpretability researcher Emmanuel Ameisen get into the work Emmanuel’s team has been doing to better understand how LLMs like Claude work. Listen in to find out what they’ve uncovered by taking a microscopic look at how LLMs function—and just how far the analogy to the human brain holds. [&#8230;]]]></description>
  2205. <content:encoded><![CDATA[
  2206. <p>In this episode, Ben Lorica and Anthropic interpretability researcher Emmanuel Ameisen get into the work Emmanuel’s team has been doing to better understand how LLMs like Claude work. Listen in to find out what they’ve uncovered by taking a microscopic look at how LLMs function—and just how far the analogy to the human brain holds.</p>
  2207.  
  2208.  
  2209.  
  2210. <p><strong>About the <em>Generative AI in the Real World </em>podcast</strong>: In 2023, ChatGPT put AI on everyone’s agenda. In 2025, the challenge will be turning those agendas into reality. In <em>Generative AI in the Real World</em>, Ben Lorica interviews leaders who are building with AI. Learn from their experience to help put AI to work in your enterprise.</p>
  2211.  
  2212.  
  2213.  
  2214. <p>Check out <a href="https://learning.oreilly.com/playlists/42123a72-1108-40f1-91c0-adbfb9f4983b/?_gl=1*m7f70i*_ga*MTYyODYzMzQwMi4xNzU4NTY5ODYz*_ga_092EL089CH*czE3NTkxNzAwODUkbzE0JGcwJHQxNzU5MTcwMDg1JGo2MCRsMCRoMA.." target="_blank" rel="noreferrer noopener">other episodes</a> of this podcast on the O’Reilly learning platform.</p>
  2215.  
  2216.  
  2217.  
  2218. <h2 class="wp-block-heading"><strong>Transcript</strong></h2>
  2219.  
  2220.  
  2221.  
  2222. <p><em>This transcript was created with the help of AI and has been lightly edited for clarity.</em></p>
  2223.  
  2224.  
  2225.  
  2226. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=0" target="_blank" rel="noreferrer noopener">00.00</a><br><strong>Today we have Emmanuel Ameisen. He works at Anthropic on interpretability research. And he also authored an O&#8217;Reilly book called </strong><a href="https://learning.oreilly.com/library/view/building-machine-learning/9781492045106/"><strong><em>Building Machine Learning Powered Applications</em></strong></a><strong>. So welcome to the podcast, Emmanuel. </strong></p>
  2227.  
  2228.  
  2229.  
  2230. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=22" target="_blank" rel="noreferrer noopener">00.22</a><br>Thanks, man. I&#8217;m glad to be here. </p>
  2231.  
  2232.  
  2233.  
  2234. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=24" target="_blank" rel="noreferrer noopener">00.24</a><br><strong>As I go through what you and your team do, it&#8217;s almost like biology, right? You&#8217;re studying these models, but increasingly they look like biological systems. Why do you think that&#8217;s useful as an analogy? And am I actually accurate in calling this out?</strong></p>
  2235.  
  2236.  
  2237.  
  2238. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=50" target="_blank" rel="noreferrer noopener">00.50</a><br>Yeah, that&#8217;s right. Our team&#8217;s mandate is to basically understand how the models work, right? And one fact about language models is that they&#8217;re not really written like a program, where somebody sort of by hand described what should happen in that logical branch or this logical branch. Really the way we think about it is they&#8217;re almost grown. But what that means is, they&#8217;re trained over a large dataset, and on that dataset, they learn to adjust their parameters. They have many, many parameters—often, you know, billions—in order to perform well. And so the result of that is that when you get the trained model back, it&#8217;s sort of unclear to you how that model does what it does, because all you&#8217;ve done to create it is show it tasks and have it improve at how it does these tasks.</p>
  2239.  
  2240.  
  2241.  
  2242. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=108" target="_blank" rel="noreferrer noopener">01.48</a><br>And so it feels similar to biology. I think the analogy is apt because for analyzing this, you kind of resort to the tools that you would use in that context, where you try to look inside the model [and] see which parts seem to light up in different contexts. You poke and prod in different parts to try to see, “Ah, I think this part of the model does this.” If I just turn it off, does the model stop doing the thing that I think it&#8217;s doing? It&#8217;s very much not what you would do in most cases if you were analyzing a program, but it is what you would do if you&#8217;re trying to understand how a mouse works. </p>
  2243.  
  2244.  
  2245.  
  2246. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=142" target="_blank" rel="noreferrer noopener">02.22</a><br><strong>You and your team have discovered surprising ways as to how these models do problem-solving, the strategies they employ. What are some examples of these surprising problem-solving patterns? </strong></p>
  2247.  
  2248.  
  2249.  
  2250. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=160" target="_blank" rel="noreferrer noopener">02.40</a><br>We&#8217;ve spent a bunch of time studying these models. And again I should say, whether it&#8217;s surprising or not depends on what you were expecting. So maybe there&#8217;s a few ways in which they’re surprising. </p>
  2251.  
  2252.  
  2253.  
  2254. <p>There&#8217;s various bits of common knowledge about, for example, how models predict one token at a time. And it turns out if you actually look inside the model and try to see how it&#8217;s sort of doing its job of predicting text, you&#8217;ll find that actually a lot of the time it&#8217;s predicting multiple tokens ahead of time. It&#8217;s sort of deciding what it&#8217;s going to say in a few tokens and presumably in a few sentences to decide what it says now. That might be surprising to people who have heard that [models] are predicting one token at a time.&nbsp;</p>
  2255.  
  2256.  
  2257.  
  2258. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=208" target="_blank" rel="noreferrer noopener">03.28</a><br>Maybe another one that&#8217;s sort of interesting to people is that if you look inside these models and you try to understand what they represent in their artificial neurons, you’ll find that there are general concepts they represent.</p>
  2259.  
  2260.  
  2261.  
  2262. <p>So one example I like is you can say, “Somebody is tall,” and then, inside the model, you can find neurons activating for the concept of something being tall. And you can have them all read the same text, but translated in French: “Quelqu&#8217;un est grand.” And then you&#8217;ll find the same neurons that represent the concept of somebody being tall or active.</p>
  2263.  
  2264.  
  2265.  
  2266. <p>So you have these concepts that are shared across languages and that the model represents in one way, which is again, maybe surprising, maybe not surprising, in the sense that that&#8217;s clearly the optimal thing to do, or that&#8217;s the way that.&nbsp;.&nbsp;. You don&#8217;t want to repeat all of your concepts; like in your brain, you don&#8217;t want to have a separate French brain, an English brain, ideally. But surprising if you think that these models are mostly doing pattern matching. Then it is surprising that, when they&#8217;re processing English text or French text, they&#8217;re actually using the same representations rather than leveraging different patterns.&nbsp;</p>
  2267.  
  2268.  
  2269.  
  2270. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=281" target="_blank" rel="noreferrer noopener">04.41</a><br><strong>[In] the text you just described, is there a material difference between the reasoning and nonreasoning models? </strong></p>
  2271.  
  2272.  
  2273.  
  2274. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=291" target="_blank" rel="noreferrer noopener">04.51</a><br>We haven&#8217;t studied that in depth. I will say that the thing that&#8217;s interesting about reasoning models is that when you ask them a question, instead of answering right away for a while, they write some text thinking through the problem, saying oftentimes, “Are you using math or code?” You know, trying to think: “Ah, well, maybe this is the answer. Let me try to prove it. Oh no, it&#8217;s wrong.” And so they&#8217;ve proven to be good at a variety of tasks that models which immediately answer aren’t good at. </p>
  2275.  
  2276.  
  2277.  
  2278. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=322" target="_blank" rel="noreferrer noopener">05.22</a><br>And one thing that you might think if you look at reasoning models is that you could just read their reasoning and you would understand how they think. But it turns out that one thing that we did find is that you can look at a model&#8217;s reasoning, that it writes down, that it samples, the text it&#8217;s writing, right? It&#8217;s saying, “I&#8217;m now going to do this calculation,” and in some cases when for example, the calculation is too hard, if at the same time you look inside the model&#8217;s brain inside its weights, you&#8217;ll find that actually it could be lying to you.</p>
  2279.  
  2280.  
  2281.  
  2282. <p>It&#8217;s not at all doing the math that it says it&#8217;s doing. It&#8217;s just kind of doing its best guess. It&#8217;s taking a stab at it, just based on either context clues from the rest or what it thinks is probably the right answer—but it&#8217;s totally not doing the computation. And so one thing that we found is that you can&#8217;t quite always trust the reasoning that is output by reasoning models.</p>
  2283.  
  2284.  
  2285.  
  2286. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=379" target="_blank" rel="noreferrer noopener">06.19</a><br><strong>Obviously one of the frequent complaints is around hallucination. So based on what you folks have been learning, are we getting close to a, I guess, much more principled mechanistic explanation for hallucination at this point? </strong></p>
  2287.  
  2288.  
  2289.  
  2290. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=399" target="_blank" rel="noreferrer noopener">06.39</a><br>Yeah. I mean, I think we&#8217;re making progress. We study that in our recent paper, and we found something that&#8217;s pretty neat. So hallucinations are cases where the model will confidently say something&#8217;s wrong. You might ask the model about some person. You&#8217;ll say, “Who&#8217;s Emmanuel Ameisen?” And it&#8217;ll be like “Ah, it’s the famous basketball player” or something. So it will say something where instead it should have said, “I don&#8217;t quite know. I&#8217;m not sure who you&#8217;re talking about.” And we looked inside the model’s neurons while it&#8217;s processing these kinds of questions, and we did a simple test: We asked the model, “Who&#8217;s Michael Jordan?” And then we made up some name. We asked it, “Who&#8217;s Michael Batkin?” (which it doesn&#8217;t know).</p>
  2291.  
  2292.  
  2293.  
  2294. <p>And if you look inside there&#8217;s something really interesting that happens, which is that basically these models by default—because they&#8217;ve been trained to try not to hallucinate—they have this default set of neurons that is just: If you ask me about anyone, I&#8217;ll just say no. I&#8217;ll just say, “I don&#8217;t know.” And the way that the models actually choose to answer is if you mentioned somebody famous enough, like Michael Jordan, there&#8217;s neurons for like, “Oh, this person is famous; I definitely know them” that activate and that turns off the neurons that were going to promote the answer for, “Hey, I&#8217;m not too sure.” And so that&#8217;s why the model answers in the Michael Jordan case. And that&#8217;s why it doesn&#8217;t answer by default in the Michael Batkin case.</p>
  2295.  
  2296.  
  2297.  
  2298. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=489" target="_blank" rel="noreferrer noopener">08.09</a><br>But what happens if instead now you force the neurons for “Oh, this is a famous person” to turn on even when the person isn’t famous, the model is just going to answer the question. And in fact, what we found is in some hallucination cases, this is exactly what happens. It&#8217;s that basically there&#8217;s a separate part of the model&#8217;s brain, essentially, that&#8217;s making the determination of “Hey, do I know this person or not?” And then that part can be wrong. And if it&#8217;s wrong, the model&#8217;s just going to go on and yammer about that person. And so it&#8217;s almost like you have a split mechanism here, where, “Well I guess the part of my brain that&#8217;s in charge of telling me I know says, ‘I know.’ So I&#8217;m just gonna go ahead and say stuff about this person.” And that’s, at least in some cases, how you get a hallucination. </p>
  2299.  
  2300.  
  2301.  
  2302. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=534" target="_blank" rel="noreferrer noopener">08.54</a><br><strong>That&#8217;s interesting because a person would go, “I know this person. Yes, I know this person.” But then if you actually don&#8217;t know this person, you have nothing more to say, right? It&#8217;s almost like you forget. Okay, so I&#8217;m supposed to know Emmanuel, but I guess I don&#8217;t have anything else to say. </strong></p>
  2303.  
  2304.  
  2305.  
  2306. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=555" target="_blank" rel="noreferrer noopener">09.15</a><br>Yeah, exactly. So I think the way I&#8217;ve thought about it is there&#8217;s definitely a part of my brain that feels similar to this thing, where you might ask me, you know, “Who was the actor in the second movie of that series?” and I know I know; I just can&#8217;t quite recall it at the time. Like, “Ah, you know, this is how they look; they were also in that other movie”—but I can&#8217;t think of the name. But the difference is, if that happens, I&#8217;m going to say, “Well, listen, man, I think I know, but at the moment I just can&#8217;t quite recall it.” Whereas the models are like, “I think I know.” And so I guess I&#8217;m just going to say stuff. It&#8217;s not that the “Oh, I know” [and] “I don&#8217;t know” parts [are] separate. That&#8217;s not the problem. It&#8217;s that they don&#8217;t catch themselves sometimes early enough like you would, where, to your point exactly, you&#8217;d just be like, “Well, look, I think I know who this is, but honestly at this moment, I can&#8217;t really tell you. So let&#8217;s move on.” </p>
  2307.  
  2308.  
  2309.  
  2310. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=610" target="_blank" rel="noreferrer noopener">10.10</a><br><strong>By the way, this is part of a bigger topic now in the AI space around reliability and predictability, the idea being, I can have a model that&#8217;s 95% [or] 99% accurate. And if I don&#8217;t know when the 5% or the 1% is inaccurate, it&#8217;s quite scary. Right? So I&#8217;d rather have a model that&#8217;s 60% accurate, but I know exactly when that 60% is. </strong></p>
  2311.  
  2312.  
  2313.  
  2314. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=645" target="_blank" rel="noreferrer noopener">10.45</a><br>Models are getting better at hallucinations for that reason. That&#8217;s pretty important. People are training them to just be better calibrated. If you look at the rates of hallucinations for most models today, they&#8217;re so much lower than the previous models. But yeah, I agree. And I think in a sense maybe like there&#8217;s a hard question there, which is at least in some of these examples that we looked at, it&#8217;s not necessarily that, insofar as what we&#8217;ve seen, that you can clearly see just from looking at the inside of the model, oh, the model is hallucinating. What we can see is the model thinks it knows who this person is, and then it&#8217;s saying some stuff about this person. And so I think the key bit that would be interesting to do future work on is then try to understand, well, when it&#8217;s saying things about people, when it&#8217;s saying, you know, this person won this championship or whatever, is there a way there that we can kind of tell whether those are real facts or those are sort of confabulated in a way? And I think that&#8217;s still an active area of research. </p>
  2315.  
  2316.  
  2317.  
  2318. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=711" target="_blank" rel="noreferrer noopener">11.51</a><br><strong>So in the case where you hook up Claude to web search, presumably there&#8217;s some sort of citation trail where at least you can check, right? The model is saying it knows Emmanuel and then says who Emmanuel is and gives me a link. I can check, right? </strong></p>
  2319.  
  2320.  
  2321.  
  2322. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=732" target="_blank" rel="noreferrer noopener">12.12</a><br>Yeah. And in fact, I feel like it&#8217;s even more fun than that sometimes. I had this experience yesterday where I was asking the model about some random detail, and it confidently said, “This is how you do this thing.” I was asking how to change the time on a device—it&#8217;s not important. And it was like, “This is how you do it.” And then it did a web search and it said, “Oh, actually, I was wrong. You know, according to the search results, that&#8217;s how you do it. The initial advice I gave you is wrong.” And so, yeah, I think grounding results in search is definitely helpful for hallucinations. Although, of course, then you have the other problem of making sure that the model doesn&#8217;t trust sources that are unreliable. But it does help. </p>
  2323.  
  2324.  
  2325.  
  2326. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=770" target="_blank" rel="noreferrer noopener">12.50</a><br><strong>Case in point: science. There&#8217;s tons and tons of scientific papers now that get retracted. So just because it does a web search, what it should do is also cross-verify that search with whatever database there is for retracted papers.</strong></p>
  2327.  
  2328.  
  2329.  
  2330. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=788" target="_blank" rel="noreferrer noopener">13:08</a><br>And you know, as you think about these things, I think you get an answer like effort-level questions where right now, if you go to Claude, there&#8217;s a research mode where you can send it off on a quest and it&#8217;ll do research for a long time. It&#8217;ll cross-reference tens and tens and tens of sources.</p>
  2331.  
  2332.  
  2333.  
  2334. <p>But that will take I don&#8217;t know, it depends. Sometimes 10 minutes, sometimes 20 minutes. And so there&#8217;s a question like, when you&#8217;re asking, “Should I buy these running shoes?” you don&#8217;t care, [but] when you&#8217;re asking about something serious or you&#8217;re going to make an important life decision, maybe you do. I always feel like as the models get better, we also want them to get better at knowing when they should spend 10 seconds or 10 minutes on something.&nbsp;</p>
  2335.  
  2336.  
  2337.  
  2338. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=827" target="_blank" rel="noreferrer noopener">13.47</a><br><strong>There&#8217;s a surprisingly growing number of people who go to these models to ask help in medical questions. And as anyone who uses these models knows, a lot of it comes down to your problem, right? A neurosurgeon will prompt this model about brain surgery very differently than you and me, right? </strong></p>
  2339.  
  2340.  
  2341.  
  2342. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=848" target="_blank" rel="noreferrer noopener">14:08</a><br>Of course. In fact, that was one of the cases that we studied actually, where we prompted the model with a case that&#8217;s similar to one that a doctor would see. Not in the language that you or I would use, but in the sort of like “This patient is age 35 presenting symptoms A, B, and C,” because we wanted to try to understand how the model arrives to an answer. And so the question had all these symptoms. And then we asked the model, “Based on all these symptoms, answer in only one word: What other tests should we run?” Just to force it to do all of its reasoning in its head. I can&#8217;t write anything down. </p>
  2343.  
  2344.  
  2345.  
  2346. <p>And what we found is that there were groups of neurons that were activating for each of the symptoms. And then they were two different groups of neurons that were activating for two potential diagnoses, two potential diseases. And then those were promoting a specific test to run, which is sort of a practitioner and a differential diagnosis: The person either has A or B, and you want to run a test to know which one it is. And then the model suggested the test that would help you decide between A and B. And I found that quite striking because I think again, outside of the question of reliability for a second, there&#8217;s a depth of richness to just the internal representations of them all as it does all of this in one word.&nbsp;</p>
  2347.  
  2348.  
  2349.  
  2350. <p>This makes me excited about continuing down this path of trying to understand the model, like the model&#8217;s done a full round of diagnosing someone and proposing something to help with the diagnostic just in one forward pass in its head. As we use these models in a bunch of places, I sure really want to understand all of the complex behavior like this that happens in its weights.&nbsp;</p>
  2351.  
  2352.  
  2353.  
  2354. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=961" target="_blank" rel="noreferrer noopener">16.01</a><br><strong>In traditional software, we have debuggers and profilers. Do you think as interpretability matures our tools for building AI applications, we could have kind of the equivalent of debuggers that flag when a model is going off the rails?</strong></p>
  2355.  
  2356.  
  2357.  
  2358. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=984" target="_blank" rel="noreferrer noopener">16.24</a><br>Yeah. I mean, that&#8217;s the hope. I think debuggers are a good comparison actually, because debuggers mostly get used by the person building the application. If I go to, I don&#8217;t know, claude.ai or something, I can&#8217;t really use the debugger to understand what&#8217;s going on in the backend. And so that&#8217;s the first state of debuggers, and the people building the models use it to understand the models better. We&#8217;re hoping that we&#8217;re going to get there at some point. We&#8217;re making progress. I don&#8217;t want to be too optimistic, but, I think, we&#8217;re on a path here where this work I’ve been describing, the vision was to build this big microscope, basically where the model is doing something, it&#8217;s answering a question, and you just want to look inside. And just like a debugger will show you basically the states of all of the variables in your program, we want to see the state of all of the neurons in this model.</p>
  2359.  
  2360.  
  2361.  
  2362. <p>It&#8217;s like, okay. The “I definitely know this person” neuron is on and the “This person is a basketball player” neuron is on—that&#8217;s kind of interesting. How do they affect each other? <em>Should</em> they affect each other in that way? So I think in many ways we&#8217;re sort of getting to something close where at least you can inspect the execution of your running program like you would with a debugger. You&#8217;re inspecting the execution learning model.&nbsp;</p>
  2363.  
  2364.  
  2365.  
  2366. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1066" target="_blank" rel="noreferrer noopener">17.46</a><br>Of course, then there&#8217;s a question of, What do you do with it? That I think is another active area of research where, if you spend some time looking at your debugger, you can say, “Ah, okay, I get it. I initialized this variable the wrong way. Let me fix it.”</p>
  2367.  
  2368.  
  2369.  
  2370. <p>We&#8217;re not there yet with models, right? Even if I tell you “This is exactly how this is happening and it’s wrong,” then the way that we make them again is we train them. So really, you have to think, “Ah, can we give it other examples that <em>I</em> would learn to do that way?”&nbsp;</p>
  2371.  
  2372.  
  2373.  
  2374. <p>It&#8217;s almost like we&#8217;re doing neuroscience on a developing child or something. But then our only way to actually improve them is to change the curriculum of their school. So we have to translate from what we saw in their brain to “Maybe they need a little more math. Or maybe they need a little more English class.” I think we&#8217;re on that path. I&#8217;m pretty excited about it.&nbsp;</p>
  2375.  
  2376.  
  2377.  
  2378. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1113" target="_blank" rel="noreferrer noopener">18.33</a><br>We also open-sourced the tools to do this a couple months back. And so, you know, this is something that can now be run on open source models. And people have been doing a bunch of experiments with them trying to see if they behave the same way as some of the behaviors that we saw in the Claud models that we studied. And so I think that also is promising. And there&#8217;s room for people to contribute if they want to. </p>
  2379.  
  2380.  
  2381.  
  2382. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1136" target="_blank" rel="noreferrer noopener">18.56</a><br><strong>Do you folks internally inside Anthropic have special interpretability tools—not that the interpretability team uses but [that] now you can push out to other people in Anthropic as they&#8217;re using these models? I don&#8217;t know what these tools would be. Could be what you describe, some sort of UX or some sort of microscope towards a model. </strong></p>
  2383.  
  2384.  
  2385.  
  2386. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1162" target="_blank" rel="noreferrer noopener">19.22</a><br>Right now we&#8217;re sort of at the stage where the interpretability team is doing most of the microscopic exploration, and we&#8217;re building all these tools and doing all of this research, and it mostly happens on the team for now. I think there&#8217;s a dream and a vision to have this. . . You know, I think the debugger metaphor is really apt. But we&#8217;re still in the early days. </p>
  2387.  
  2388.  
  2389.  
  2390. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1186" target="_blank" rel="noreferrer noopener">19.46</a><br><strong>You used the example earlier [where] the part of the model “That is a basketball player” lights up. Is that what you would call a concept? And from what I understand, you folks have a lot of these concepts. And by the way, is a concept something that you have to consciously identify, or do you folks have an automatic way of, “Here&#8217;s millions and millions of concepts that we&#8217;ve identified and we don&#8217;t have actual names for some of them yet”?</strong></p>
  2391.  
  2392.  
  2393.  
  2394. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1221" target="_blank" rel="noreferrer noopener">20.21</a><br>That&#8217;s right, that&#8217;s right. The latter one is the way to think about it. The way that I like to describe it is basically, the model has a bunch of neurons. And for a second let&#8217;s just imagine that we can make the comparison to the human brain, [which] also has a bunch of neurons.</p>
  2395.  
  2396.  
  2397.  
  2398. <p>Usually it&#8217;s groups of neurons that mean something. So it&#8217;s like I have these five neurons around. That means that the model’s reading text about basketball or something. And so we want to find all of these groups. And the way that we find them basically is in an automated, unsupervised way.</p>
  2399.  
  2400.  
  2401.  
  2402. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1255" target="_blank" rel="noreferrer noopener">20.55</a><br>The way you can think about it, in terms of how we try to understand what they mean, is maybe the same way that you do in a human brain, where if I had full access to your brain, I could record all of your neurons. And [if] I wanted to know where the basketball neuron was, probably what I would do is I would put you in front of a screen and I would play some basketball videos, and I would see which part of your brain lights up, you know? And then I would play some videos of football and I&#8217;d hopefully see some common parts, like the sports part and then the football part would be different. And then I play a video of an apple and then it&#8217;d be a completely different part of the brain. </p>
  2403.  
  2404.  
  2405.  
  2406. <p>And that&#8217;s basically exactly what we do to understand what these concepts mean in Claude is we just run a bunch of text through and see which part of its weight matrices light up, and that tells us, okay, this is the basketball concept probably.&nbsp;</p>
  2407.  
  2408.  
  2409.  
  2410. <p>The other way we can confirm that we&#8217;re right is just we can then turn it off and see if Claude then stops talking about basketball, for example.</p>
  2411.  
  2412.  
  2413.  
  2414. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1312" target="_blank" rel="noreferrer noopener">21.52</a><br><strong>Does the nature of the neurons change between model generations or between types of models—reasoning, nonreasoning, multimodal, nonmultimodal?</strong></p>
  2415.  
  2416.  
  2417.  
  2418. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1323" target="_blank" rel="noreferrer noopener">22.03</a><br>Yeah. I mean, at the base level all the weights of the model are different, so all of the neurons are going to be different. So the sort of trivial answer to your question [is] yes, everything&#8217;s changed. </p>
  2419.  
  2420.  
  2421.  
  2422. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1334" target="_blank" rel="noreferrer noopener">22.14</a><br><strong>But you know, it&#8217;s kind of like [in] the brain, the basketball concept is close to the Michael Jordan concept.</strong></p>
  2423.  
  2424.  
  2425.  
  2426. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1341" target="_blank" rel="noreferrer noopener">22.21</a><br>Yeah, exactly. There&#8217;s basically commonalities, and you see things like that. We don&#8217;t at all have an in-depth understanding of anything like you&#8217;d have for the human brain, where it’s like “Ah, this is a map of where the concepts are in the model.” However, you do see that, provided that the models are trained on and doing kind of the same “being a helpful assistant” stuff, they&#8217;ll have similar concepts. They’ll all have the basketball concept, and they&#8217;ll have a concept for Michael Jordan. And these concepts will be using similar groups of neurons. So there&#8217;s a lot of overlap between the basketball concept and the Michael Jordan concept. You&#8217;re going to see similar overlap in most models.</p>
  2427.  
  2428.  
  2429.  
  2430. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1383" target="_blank" rel="noreferrer noopener">23.03</a><br><strong>So channeling your previous self, if I were to give you a keynote at a conference and I give you three slides—this is in front of developers, mind you, not ML researchers—what are the one to three things about interpretability research that developers should know about or potentially even implement or do something about today?</strong></p>
  2431.  
  2432.  
  2433.  
  2434. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1410" target="_blank" rel="noreferrer noopener">23.30</a><br>Oh man, it&#8217;s a good question. My first slide would say something like models, language models in particular, are complicated, interesting, and they can be understood, and it&#8217;s worth spending time to understand them. The point here being, we don&#8217;t have to treat them as this mysterious thing. We don&#8217;t have to use approximate, “Oh, they&#8217;re just next-token predictors or they’re just pattern matters. They’re black boxes.” We can look inside, and we can make progress on understanding them, and we can find a lot of rich structure. That would be slide one.</p>
  2435.  
  2436.  
  2437.  
  2438. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1450" target="_blank" rel="noreferrer noopener">24.10</a><br>Slide two would be the stuff that we talked about at the start of this conversation, which would be, “Here&#8217;s three ways your intuitions are wrong.” You know, oftentimes this is, “Look at this example of a model planning many tokens ahead, not just waiting for the next token. And look at this example of the model having these rich representations showing that it&#8217;s sort of like actually doing multistep reasoning in its weights rather than just kind of matching to some training data example.” And then I don&#8217;t know what my third example would be. Maybe this universal language example we talked about. Complicated, interesting stuff. </p>
  2439.  
  2440.  
  2441.  
  2442. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1484" target="_blank" rel="noreferrer noopener">24.44</a><br>And then, three: What can you do about it? That&#8217;s the third slide. It&#8217;s an early research area. There&#8217;s not anything that you can take that will make anything that you&#8217;re building better today. Hopefully if I&#8217;m viewing this presentation in six months or a year, maybe this third slide is different. But for now, that&#8217;s what it is.</p>
  2443.  
  2444.  
  2445.  
  2446. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1501" target="_blank" rel="noreferrer noopener">25.01</a><br>If you&#8217;re interested about this stuff, there are these open source libraries that let you do this tracing and open source models. Just go grab some small open source model, ask it some weird question, and then just look inside his brain and see what happens.</p>
  2447.  
  2448.  
  2449.  
  2450. <p>I think the thing that I respect the most and identify [with] the most about just being an engineer or developer is this willingness to understand all this stubbornness, to understand your program has a bug. Like, I&#8217;m going to figure out what it is, and it doesn&#8217;t matter what level of abstraction it&#8217;s at.</p>
  2451.  
  2452.  
  2453.  
  2454. <p>And I would encourage people to use that same level of curiosity and tenacity to look inside these very weird models that are everywhere. Now, those would be my three slides.&nbsp;</p>
  2455.  
  2456.  
  2457.  
  2458. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1549" target="_blank" rel="noreferrer noopener">25.49</a><br><strong>Let me ask a follow up question. As you know, most teams are not going to be doing much pretraining. A lot of teams will do some form of posttraining, whatever that might be—fine-tuning, some form of reinforcement learning for the more advanced teams, a lot of prompt engineering, prompt optimization, prompt tuning, some sort of context grounding like RAG or GraphRAG.</strong></p>
  2459.  
  2460.  
  2461.  
  2462. <p><strong>You know more about how these models work than a lot of people. How would you approach these various things in a toolbox for a team? You’ve got prompt engineering, some fine-tuning, maybe distillation, I don&#8217;t know. So put on your posttraining hat, and based on what you know about interpretability or how these models work, how would you go about, systematically or in a principled way, approaching posttraining?&nbsp;</strong></p>
  2463.  
  2464.  
  2465.  
  2466. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1614" target="_blank" rel="noreferrer noopener">26.54</a><br>Lucky for you, I also used to work on the posttraining team at Anthropic. So I have some experience as well. I think it&#8217;s funny, what I&#8217;m going to say is the same thing I would have said before I studied these model internals, but maybe I&#8217;ll say it in a different way or something. The key takeaway I keep on having from looking at model internals is, “God, there&#8217;s a lot of complexity.” And that means they&#8217;re able to do very complex reasoning just in latent space inside their weights. There&#8217;s a lot of processing that can happen—more than I think most people have an intuition for. And two, that also means that usually, they&#8217;re doing a bunch of different algorithms at once for everything they do.</p>
  2467.  
  2468.  
  2469.  
  2470. <p>So they&#8217;re solving problems in three different ways. And a lot of times, the weird mistakes you might see when you&#8217;re looking at your fine-tuning or just looking at the results model is, “Ah, well, there&#8217;s three different ways to solve this thing. And the model just kind of picked the wrong one this time.”&nbsp;</p>
  2471.  
  2472.  
  2473.  
  2474. <p>Because these models are already so complicated, I find that the first thing to do is just pretty much always to build some sort of eval suite. That&#8217;s the thing that people fail at the most. It doesn&#8217;t take that long—it usually takes an afternoon. You just write down 100 examples of what you want and what you don&#8217;t want. And then you can get incredibly far by just prompt engineering and context engineering, or just giving the model the right context.</p>
  2475.  
  2476.  
  2477.  
  2478. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1714" target="_blank" rel="noreferrer noopener">28.34</a><br>That’s my experience, having worked on fine-tuning models that you only want to resort to if everything else fails. I mean, it&#8217;s pretty rare that everything else fails, especially with the models getting better. And so, yeah, understanding that, in principle, the models have an immense amount of capacity and it&#8217;s just your job to tease that capacity out is the first thing I would say. Or the second thing, I guess, after just, build some evals.</p>
  2479.  
  2480.  
  2481.  
  2482. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1740" target="_blank" rel="noreferrer noopener">29.00</a><br><strong>And with that, thank you, Emmanuel. </strong></p>
  2483.  
  2484.  
  2485.  
  2486. <p><a href="https://cdn.oreillystatic.com/radar/generative-ai-real-world-podcast/GenAI_in_the_Real_World_with_Emmanuel_Ameisen.mp3#t=1743" target="_blank" rel="noreferrer noopener">29.03</a><br>Thanks, man.</p>
  2487. ]]></content:encoded>
  2488. <wfw:commentRss>https://www.oreilly.com/radar/podcast/generative-ai-in-the-real-world-emmanuel-ameisen-on-llm-interpretability/feed/</wfw:commentRss>
  2489. <slash:comments>0</slash:comments>
  2490. </item>
  2491. <item>
  2492. <title>The Cognitive Shortcut Paradox</title>
  2493. <link>https://www.oreilly.com/radar/the-cognitive-shortcut-paradox/</link>
  2494. <pubDate>Wed, 01 Oct 2025 11:07:04 +0000</pubDate>
  2495. <dc:creator><![CDATA[Andrew Stellman]]></dc:creator>
  2496. <category><![CDATA[AI & ML]]></category>
  2497. <category><![CDATA[Commentary]]></category>
  2498.  
  2499. <guid isPermaLink="false">https://www.oreilly.com/radar/?p=17489</guid>
  2500.  
  2501. <media:content
  2502. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/08/Abstract-colors-1.jpg"
  2503. medium="image"
  2504. type="image/jpeg"
  2505. width="2304"
  2506. height="1792"
  2507. />
  2508.  
  2509. <media:thumbnail
  2510. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/08/Abstract-colors-1-160x160.jpg"
  2511. width="160"
  2512. height="160"
  2513. />
  2514. <description><![CDATA[This article is part of a series on the Sens-AI Framework—practical habits for learning and coding with AI. AI gives novice developers the ability to skip the slow, messy parts of learning. For experienced developers, that can mean getting to a working solution faster. Developers early in their learning path, however, face what I call [&#8230;]]]></description>
  2515. <content:encoded><![CDATA[
  2516. <p class="has-cyan-bluish-gray-background-color has-background"><em>This article is part of a series on the </em><a href="https://www.oreilly.com/radar/the-sens-ai-framework/" target="_blank" rel="noreferrer noopener"><em>Sens-AI Framework</em></a><em>—practical habits for learning and coding with AI.</em></p>
  2517.  
  2518.  
  2519.  
  2520. <p>AI gives novice developers the ability to skip the slow, messy parts of learning. For experienced developers, that can mean getting to a working solution faster. Developers early in their learning path, however, face what I call the <strong>cognitive shortcut paradox</strong>: they need coding experience to use AI tools well, because experience builds the judgment required to evaluate, debug, and improve AI-generated code—but leaning on AI too much in those first stages can keep them from ever gaining that experience.</p>
  2521.  
  2522.  
  2523.  
  2524. <p>I saw this firsthand when adapting <em><a href="https://www.oreilly.com/library/view/head-first-c/9781098141776/" target="_blank" rel="noreferrer noopener">Head First C#</a></em> to include AI exercises. The book’s exercises are built to teach specific development concepts like object-oriented programming, separation of concerns, and refactoring. If new learners let AI generate the code before they’ve learned the fundamentals, they miss the problem-solving work that leads to those “aha!” moments where understanding really clicks.</p>
  2525.  
  2526.  
  2527.  
  2528. <p>With AI, it’s easy for new learners to bypass the learning process completely by pasting the exercise instructions into a coding assistant, getting a complete program in seconds, and running it without ever working through the design or debugging. When the AI produces the right output, it feels like progress to the learner. But the goal was never just to have a running program; it was to understand the requirements and craft a solution that reinforced a specific concept or technique that was taught earlier in the book. The problem is that to the novice, the work still looks right—code that compiles and produces the expected results—so the missing skills stay hidden until the gap is too wide to close.</p>
  2529.  
  2530.  
  2531.  
  2532. <p>Evidence is emerging that AI chatbots can boost productivity for experienced workers but have little measurable impact on skill growth for beginners. In practice, the tool that speeds mastery for seniors can slow it for juniors, because it hands over a polished answer before they’ve had the chance to build the skills needed to use that answer effectively.</p>
  2533.  
  2534.  
  2535.  
  2536. <p>The cognitive shortcut paradox isn’t just a classroom issue. In real projects, the most valuable engineering work often involves understanding ambiguous requirements, making architectural calls when nothing is certain, and tracking down the kind of bugs that don’t have obvious fixes. Those abilities come from wrestling with problems that don’t have a quick path to “done.” If developers turn to AI at the first sign of difficulty, they skip the work that builds the pattern recognition and systematic thinking senior engineers depend on.</p>
  2537.  
  2538.  
  2539.  
  2540. <p>Over time, the effect compounds. A new developer might complete early tickets through vibe coding, feel the satisfaction of shipping working code, and gain confidence in their abilities. Months later, when they’re asked to debug a complex system or refactor code they didn’t write, the gap shows. By then, their entire approach to development may depend on AI to fill in every missing piece, making it much harder to develop independent problem-solving skills.</p>
  2541.  
  2542.  
  2543.  
  2544. <p>The cognitive shortcut paradox presents a fundamental challenge for how we teach and learn programming in the AI era. The traditional path of building skills through struggle and iteration hasn&#8217;t become obsolete; it&#8217;s become more critical than ever, because those same skills are what allow developers to use AI tools effectively. The question isn&#8217;t whether to use AI in learning, but how to use it in ways that build rather than bypass the critical thinking abilities that separate effective developers from code generators. This requires a more deliberate approach to AI-assisted development, one that preserves the essential learning experiences while harnessing AI&#8217;s capabilities.</p>
  2545. ]]></content:encoded>
  2546. </item>
  2547. <item>
  2548. <title>The Java Developer’s Dilemma: Part 1</title>
  2549. <link>https://www.oreilly.com/radar/the-java-developers-dilemma-part-1/</link>
  2550. <pubDate>Tue, 30 Sep 2025 11:09:21 +0000</pubDate>
  2551. <dc:creator><![CDATA[Markus Eisele]]></dc:creator>
  2552. <category><![CDATA[AI & ML]]></category>
  2553. <category><![CDATA[Deep Dive]]></category>
  2554.  
  2555. <guid isPermaLink="false">https://www.oreilly.com/radar/?p=17484</guid>
  2556.  
  2557. <media:content
  2558. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/09/A-human-with-a-laptop-races-a-humanoid-robot.jpg"
  2559. medium="image"
  2560. type="image/jpeg"
  2561. width="2304"
  2562. height="1792"
  2563. />
  2564.  
  2565. <media:thumbnail
  2566. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/09/A-human-with-a-laptop-races-a-humanoid-robot-160x160.jpg"
  2567. width="160"
  2568. height="160"
  2569. />
  2570. <description><![CDATA[This is the first of a three-part series by Markus Eisele. Stay tuned for the follow-up posts. AI is everywhere right now. Every conference, keynote, and internal meeting has someone showing a prototype powered by a large language model. It looks impressive. You ask a question, and the system answers in natural language. But if [&#8230;]]]></description>
  2571. <content:encoded><![CDATA[
  2572. <figure class="wp-block-table"><table class="has-cyan-bluish-gray-background-color has-background has-fixed-layout"><tbody><tr><td><em>This is the first of a three-part series by Markus Eisele. Stay tuned for the follow-up posts.</em></td></tr></tbody></table></figure>
  2573.  
  2574.  
  2575.  
  2576. <p>AI is everywhere right now. Every conference, keynote, and internal meeting has someone showing a prototype powered by a large language model. It looks impressive. You ask a question, and the system answers in natural language. But if you are an enterprise Java developer, you probably have mixed feelings. You know how hard it is to build reliable systems that scale, comply with regulations, and run for years. You also know that what looks good in a demo often falls apart in production. That’s the dilemma we face. How do we make sense of AI and apply it to our world without giving up the qualities that made Java the standard for enterprise software?</p>
  2577.  
  2578.  
  2579.  
  2580. <h2 class="wp-block-heading">The History of Java in the Enterprise</h2>
  2581.  
  2582.  
  2583.  
  2584. <p>Java became the backbone of enterprise systems for a reason. It gave us strong typing, memory safety, portability across operating systems, and an ecosystem of frameworks that codified best practices. Whether you used <a href="https://jakarta.ee/" target="_blank" rel="noreferrer noopener">Jakarta EE</a>, <a href="http://spring.io/" target="_blank" rel="noreferrer noopener">Spring</a>, or later, <a href="https://quarkus.io/" target="_blank" rel="noreferrer noopener">Quarkus</a> and <a href="https://micronaut.io/" target="_blank" rel="noreferrer noopener">Micronaut</a>, the goal was the same: build systems that are stable, predictable, and maintainable. Enterprises invested heavily because they knew Java applications would still be running years later with minimal surprises.</p>
  2585.  
  2586.  
  2587.  
  2588. <p>This history matters when we talk about AI. Java developers are used to deterministic behavior. If a method returns a result, you can rely on that result as long as your inputs are the same. Business processes depend on that predictability. AI does not work like that. Outputs are probabilistic. The same input might give different results. That alone challenges everything we know about enterprise software.</p>
  2589.  
  2590.  
  2591.  
  2592. <h2 class="wp-block-heading">The Prototype Versus Production Gap</h2>
  2593.  
  2594.  
  2595.  
  2596. <p>Most AI work today starts with prototypes. A team connects to an API, wires up a chat interface, and demonstrates a result. Prototypes are good for exploration. They aren’t good for production. Once you try to run them at scale you discover problems.</p>
  2597.  
  2598.  
  2599.  
  2600. <p>Latency is one issue. A call to a remote model may take several seconds. That’s not acceptable in systems where a two-second delay feels like forever. Cost is another issue. Calling hosted models is not free, and repeated calls across thousands of users quickly adds up. Security and compliance are even bigger concerns. Enterprises need to know where data goes, how it’s stored, and whether it leaks into a shared model. A quick demo rarely answers those questions.</p>
  2601.  
  2602.  
  2603.  
  2604. <p>The result is that many prototypes never make it into production. The gap between a demo and a production system is large, and most teams underestimate the effort required to close it.</p>
  2605.  
  2606.  
  2607.  
  2608. <h2 class="wp-block-heading">Why This Matters for Java Developers</h2>
  2609.  
  2610.  
  2611.  
  2612. <p>Java developers are often the ones who receive these prototypes and are asked to “make them real.” That means dealing with all the issues left unsolved. How do you handle unpredictable outputs? How do you log and monitor AI behavior? How do you validate responses before they reach downstream systems? These are not trivial questions.</p>
  2613.  
  2614.  
  2615.  
  2616. <p>At the same time, business stakeholders expect results. They see the promise of AI and want it integrated into existing platforms. The pressure to deliver is strong. The dilemma is that we cannot ignore AI, but we also cannot adopt it naively. Our responsibility is to bridge the gap between experimentation and production.</p>
  2617.  
  2618.  
  2619.  
  2620. <h2 class="wp-block-heading">Where the Risks Show Up</h2>
  2621.  
  2622.  
  2623.  
  2624. <p>Let’s make this concrete. Imagine an AI-powered customer support tool. The prototype connects a chat interface to a hosted LLM. It works in a demo with simple questions. Now imagine it deployed in production. A customer asks about account balances. The model hallucinates and invents a number. The system has just broken compliance rules. Or imagine a user submits malicious input and the model responds with something harmful. Suddenly you’re facing a security incident. These are real risks that go beyond “the model sometimes gets it wrong.”</p>
  2625.  
  2626.  
  2627.  
  2628. <p>For Java developers, this is the dilemma. We need to preserve the qualities we know matter: correctness, security, and maintainability. But we also need to embrace a new class of technologies that behave very differently from what we’re used to.</p>
  2629.  
  2630.  
  2631.  
  2632. <h2 class="wp-block-heading">The Role of Java Standards and Frameworks</h2>
  2633.  
  2634.  
  2635.  
  2636. <p>The good news is that the Java ecosystem is already moving to help. Standards and frameworks are emerging that make AI integration less of a wild west. The OpenAI API turns into a standard, providing a way to access models in a standard form, regardless of vendor. That means code you write today won&#8217;t be locked in to a single provider. The Model Context Protocol (MCP) is another step, defining how tools and models can interact in a consistent way.</p>
  2637.  
  2638.  
  2639.  
  2640. <p>Frameworks are also evolving. Quarkus has <a href="https://docs.quarkiverse.io/quarkus-langchain4j/dev/index.html" target="_blank" rel="noreferrer noopener">extensions for LangChain4j</a>, making it possible to define AI services as easily as you define REST endpoints. Spring has introduced <a href="https://spring.io/projects/spring-ai" target="_blank" rel="noreferrer noopener">Spring AI</a>. These projects bring the discipline of dependency injection, configuration management, and testing into the AI space. In other words, they give Java developers familiar tools for unfamiliar problems.</p>
  2641.  
  2642.  
  2643.  
  2644. <h2 class="wp-block-heading">The Standards Versus Speed Dilemma</h2>
  2645.  
  2646.  
  2647.  
  2648. <p>A common argument against Java and enterprise standards is that they move too slowly. The AI world changes every month, with new models and APIs appearing at a pace that no standards body can match. At first glance, it looks like standards are a barrier to progress. The reality is different. In enterprise software, standards are not the anchors holding us back. They’re the foundation that makes long-term progress possible.</p>
  2649.  
  2650.  
  2651.  
  2652. <p>Standards define a shared vocabulary. They ensure that knowledge is transferable across projects and teams. If you hire a developer who knows JDBC, you can expect them to work with any database supported by the driver ecosystem. If you rely on Jakarta REST, you can swap frameworks or vendors without rewriting every service. This is not slow. This is what allows enterprises to move fast without constantly breaking things.</p>
  2653.  
  2654.  
  2655.  
  2656. <p>AI will be no different. Proprietary APIs and vendor-specific SDKs can get you started quickly, but they come with hidden costs. You risk locking yourself in to one provider, or building a system that only a small set of specialists understands. If those people leave, or if the vendor changes terms, you’re stuck. Standards avoid that trap. They make sure that today’s investment remains useful years from now.</p>
  2657.  
  2658.  
  2659.  
  2660. <p>Another advantage is the support horizon. Enterprises don’t think in terms of weeks or hackathon demos. They think in years. Standards bodies and established frameworks commit to supporting APIs and specifications over the long term. That stability is critical for applications that process financial transactions, manage healthcare data, or run supply chains. Without standards, every system becomes a one-off, fragile and dependent on whoever built it.</p>
  2661.  
  2662.  
  2663.  
  2664. <p>Java has shown this again and again. Servlets, CDI, JMS, JPA: These standards secured decades of business-critical development. They allowed millions of developers to build applications without reinventing core infrastructure. They also made it possible for vendors and open source projects to compete on quality, not just lock-in. The same will be true for AI. Emerging efforts like LangChain4j and the Java SDK for the <a href="https://modelcontextprotocol.io/sdk/java/mcp-overview" target="_blank" rel="noreferrer noopener">Model Context Protocol</a> or the <a href="https://github.com/a2aproject/a2a-java" target="_blank" rel="noreferrer noopener">Agent2Agent Protocol SDK</a> will not slow us down. They’ll enable enterprises to adopt AI at scale, safely and sustainably.</p>
  2665.  
  2666.  
  2667.  
  2668. <p>In the end, speed without standards leads to short-lived prototypes. Standards with speed lead to systems that survive and evolve. Java developers should not see standards as a constraint. They should see them as the mechanism that allows us to bring AI into production, where it actually matters.</p>
  2669.  
  2670.  
  2671.  
  2672. <h2 class="wp-block-heading">Performance and Numerics: Java’s Catching Up</h2>
  2673.  
  2674.  
  2675.  
  2676. <p>One more part of the dilemma is performance. Python became the default language for AI not because of its syntax, but because of its libraries. NumPy, SciPy, PyTorch, and TensorFlow all rely on highly optimized C and C++ code. Python is mostly a frontend wrapper around these math kernels. Java, by contrast, has never had numerics libraries of the same adoption or depth. JNI made calling native code possible, but it was awkward and unsafe.</p>
  2677.  
  2678.  
  2679.  
  2680. <p>That is changing. The Foreign Function &amp; Memory (FFM) API (<a href="https://openjdk.org/jeps/454" target="_blank" rel="noreferrer noopener">JEP 454</a>) makes it possible to call native libraries directly from Java without the boilerplate of JNI. It’s safer, faster, and easier to use. This opens the door for Java applications to integrate with the same optimized math libraries that power Python. Alongside FFM, the Vector API (<a href="https://openjdk.org/jeps/508" target="_blank" rel="noreferrer noopener">JEP 508</a>) introduces explicit support for SIMD operations on modern CPUs. It allows developers to write vectorized algorithms in Java that run efficiently across hardware platforms. Together, these features bring Java much closer to the performance profile needed for AI and machine learning workloads.</p>
  2681.  
  2682.  
  2683.  
  2684. <p>For enterprise architects, this matters because it changes the role of Java in AI systems. Java isn’t the only orchestration layer that calls external services. With projects like <a href="https://github.com/tjake/Jlama" target="_blank" rel="noreferrer noopener">Jlama</a>, models can run inside the JVM. With FFM and the Vector API, Java can take advantage of native math libraries and hardware acceleration. That means AI inference can move closer to where the data lives, whether in the data center or at the edge, while still benefiting from the standards and discipline of the Java ecosystem.</p>
  2685.  
  2686.  
  2687.  
  2688. <h2 class="wp-block-heading">The Testing Dimension</h2>
  2689.  
  2690.  
  2691.  
  2692. <p>Another part of the dilemma is testing. Enterprise systems are only trusted when they’re tested. Java has a long tradition of unit testing and integration testing, supported by standards and frameworks that every developer knows: JUnit, TestNG, Testcontainers, Jakarta EE testing harnesses, and more recently, <a href="https://quarkus.io/guides/dev-services" target="_blank" rel="noreferrer noopener">Quarkus Dev Services</a> for spinning up dependencies in integration tests. These practices are a core reason Java applications are considered production-grade. Hamel Husain’s work on evaluation frameworks is directly relevant here. He describes three levels of evaluation: unit tests, model/human evaluation, and <a href="https://hamel.dev/blog/posts/evals?utm_source=chatgpt.com" target="_blank" rel="noreferrer noopener">production-facing A/B tests</a>. For Java developers treating models as black boxes, the first two levels map neatly onto our existing practice: unit tests for deterministic components and black-box evaluations with curated prompts for system behavior.</p>
  2693.  
  2694.  
  2695.  
  2696. <p>AI-infused applications bring new challenges. How do you write a unit test for a model that gives slightly different answers each time? How do you validate that an AI component works correctly when the definition of “correct” is fuzzy? The answer is not to give up testing but to extend it.</p>
  2697.  
  2698.  
  2699.  
  2700. <p>At the unit level, you still test deterministic components around the AI service: context builders, data retrieval pipelines, validation, and guardrail logic. These remain classic unit test targets. For the AI service itself, you can use schema validation tests, golden datasets, and bounded assertions. For example, you may assert that the model returns valid JSON, contains required fields, or produces a result within an acceptable range. The exact words may differ, but the structure and boundaries must hold.</p>
  2701.  
  2702.  
  2703.  
  2704. <p>At the integration level, you can bring AI into the picture. Dev Services can spin up a local Ollama container or mock inference API for repeatable test runs. Testcontainers can manage vector databases like PostgreSQL with pgvector or Elasticsearch. Property-based testing libraries such as <a href="https://jqwik.net/" target="_blank" rel="noreferrer noopener">jqwik</a> can generate varied inputs to expose edge cases in AI pipelines. These tools are already familiar to Java developers; they simply need to be applied to new targets.</p>
  2705.  
  2706.  
  2707.  
  2708. <p>The key insight is that AI testing must complement, not replace, the testing discipline we already have. Enterprises cannot put untested AI into production and hope for the best. By extending unit and integration testing practices to AI-infused components, we give stakeholders the confidence that these systems behave within defined boundaries. Even when individual model outputs are probabilistic.</p>
  2709.  
  2710.  
  2711.  
  2712. <p>This is where Java’s culture of testing becomes an advantage. Teams already expect comprehensive test coverage before deploying. Extending that mindset to AI ensures that these applications meet enterprise standards, not just demo requirements. Over time, testing patterns for AI outputs will mature into the same kind of de facto standards that JUnit brought to unit tests and Arquillian brought to integration tests. We should expect evaluation frameworks for AI-infused applications to become as normal as JUnit in the enterprise stack.</p>
  2713.  
  2714.  
  2715.  
  2716. <h2 class="wp-block-heading">A Path Forward</h2>
  2717.  
  2718.  
  2719.  
  2720. <p>So what should we do? The first step is to acknowledge that AI is not going away. Enterprises will demand it, and customers will expect it. The second step is to be realistic. Not every prototype deserves to become a product. We need to evaluate use cases carefully, ask whether AI adds real value, and design with risks in mind.</p>
  2721.  
  2722.  
  2723.  
  2724. <p>From there, the path forward looks familiar. Use standards to avoid lock-in. Use frameworks to manage complexity. Apply the same discipline you already use for transactions, messaging, and observability. The difference is that now you also need to handle probabilistic behavior. That means adding validation layers, monitoring AI outputs, and designing systems that fail gracefully when the model is wrong.</p>
  2725.  
  2726.  
  2727.  
  2728. <p>The Java developer’s dilemma is not about choosing whether to use AI. It’s about how to use it responsibly. We cannot treat AI like a library we drop into an application and forget about. We need to integrate it with the same care we apply to any critical system. The Java ecosystem is giving us the tools to do that. Our challenge is to learn quickly, apply those tools, and keep the qualities that made Java the enterprise standard in the first place.</p>
  2729.  
  2730.  
  2731.  
  2732. <p>This is the beginning of a larger conversation. In the next article we will look at new types of applications that emerge when AI is treated as a core part of the architecture, not just an add-on. That’s where the real transformation happens.</p>
  2733. ]]></content:encoded>
  2734. </item>
  2735. <item>
  2736. <title>Flow State to Free Fall: An AI Coding Cautionary Tale</title>
  2737. <link>https://www.oreilly.com/radar/flow-state-to-free-fall-an-ai-coding-cautionary-tale/</link>
  2738. <pubDate>Mon, 29 Sep 2025 10:59:37 +0000</pubDate>
  2739. <dc:creator><![CDATA[Sreeram Venkatasubramanian]]></dc:creator>
  2740. <category><![CDATA[AI & ML]]></category>
  2741. <category><![CDATA[Commentary]]></category>
  2742.  
  2743. <guid isPermaLink="false">https://www.oreilly.com/radar/?p=17481</guid>
  2744.  
  2745. <media:content
  2746. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/09/Robot-free-falling-down-a-waterfall.jpg"
  2747. medium="image"
  2748. type="image/jpeg"
  2749. width="2304"
  2750. height="1792"
  2751. />
  2752.  
  2753. <media:thumbnail
  2754. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/09/Robot-free-falling-down-a-waterfall-160x160.jpg"
  2755. width="160"
  2756. height="160"
  2757. />
  2758. <custom:subtitle><![CDATA[Learning to Hammer Pitons in the Age of AI]]></custom:subtitle>
  2759. <description><![CDATA[When I was eight years old, I watched a mountaineering documentary while waiting for the cricket match to start. I remember being incredibly frustrated watching these climbers inch their way up a massive rock face, stopping every few feet to hammer what looked like giant nails into the mountain. “Why don’t they just climb faster?” [&#8230;]]]></description>
  2760. <content:encoded><![CDATA[
  2761. <p>When I was eight years old, I watched a mountaineering documentary while waiting for the cricket match to start. I remember being incredibly frustrated watching these climbers inch their way up a massive rock face, stopping every few feet to hammer what looked like giant nails into the mountain.</p>
  2762.  
  2763.  
  2764.  
  2765. <p>“Why don’t they just climb faster?” I asked my father. “They&#8217;re wasting so much time with those metal things!”</p>
  2766.  
  2767.  
  2768.  
  2769. <p>“Those are safety anchors, son. If they fall, they don’t want to tumble all the way back to the bottom.”</p>
  2770.  
  2771.  
  2772.  
  2773. <p>I found this logic deeply unsatisfying. Clearly, the solution was simple: don&#8217;t fall. Just climb faster and more carefully.</p>
  2774.  
  2775.  
  2776.  
  2777. <p>Thirty years later, debugging AI-generated code at 2 AM in my Chennai office, I finally understood what those mountaineers were doing.</p>
  2778.  
  2779.  
  2780.  
  2781. <h2 class="wp-block-heading">The Intoxicating Rush of AI-Powered Flow</h2>
  2782.  
  2783.  
  2784.  
  2785. <p>Last month, I was working on a revenue analysis project for my manager—the kind of perfectionist who notices when PowerPoint slides have inconsistent font sizes. The task seemed straightforward: slice and dice our quarterly revenue across multiple dimensions. Normally, this would have been a three-day slog of SQL queries, CSV exports, and fighting with chart libraries.</p>
  2786.  
  2787.  
  2788.  
  2789. <p>But this time, I had my AI assistant. And it was like having a data visualization superhero as my personal coding buddy.</p>
  2790.  
  2791.  
  2792.  
  2793. <p>”Create a stacked bar chart showing quarterly revenue by contract type,” I typed. Thirty seconds later: a beautiful, publication-quality chart.</p>
  2794.  
  2795.  
  2796.  
  2797. <p>I was in what psychologists call “flow state,” supercharged by AI assistance. Chart after chart materialized on my screen. For three glorious hours, I was completely absorbed. I generated seventeen different visualizations, created an interactive dashboard, and even added animated transitions that made the data dance.</p>
  2798.  
  2799.  
  2800.  
  2801. <p>I was so caught up in the momentum that the thought of stopping to commit changes never even crossed my mind. Why interrupt this beautiful flow?</p>
  2802.  
  2803.  
  2804.  
  2805. <p>That should have been my first clue that I was about to learn a very expensive lesson about the value of safety anchors.</p>
  2806.  
  2807.  
  2808.  
  2809. <h2 class="wp-block-heading">When the Mountain Crumbles</h2>
  2810.  
  2811.  
  2812.  
  2813. <p>At 1:47 AM, disaster struck. I asked my AI assistant to ”optimize the color palette for color-blind accessibility” across all my charts. It was a reasonable request—the kind of thoughtful enhancement that makes software better.</p>
  2814.  
  2815.  
  2816.  
  2817. <p>What happened next was like watching a controlled demolition, except there was nothing controlled about it.</p>
  2818.  
  2819.  
  2820.  
  2821. <p>The AI didn&#8217;t just change colors. It restructured my entire charting library. It modified the data processing pipeline. It altered the component architecture. It even changed the CSS framework ”for better accessibility compliance.”</p>
  2822.  
  2823.  
  2824.  
  2825. <p>Suddenly, my beautiful dashboard looked like it had been designed by someone having a heated argument with their computer. Charts overlapped, data disappeared, and the color scheme now resembled a medical diagram of various internal organs.</p>
  2826.  
  2827.  
  2828.  
  2829. <p>”No problem,” I thought. ”I&#8217;ll just ask it to undo those changes.”</p>
  2830.  
  2831.  
  2832.  
  2833. <p>This is where I learned that AI assistants, despite their impressive capabilities, have the rollback skills of a three-year-old trying to unscramble an egg.</p>
  2834.  
  2835.  
  2836.  
  2837. <p>I spent the next two hours in what can only be described as a negotiation with a well-meaning but entirely confused digital assistant. By 4 AM, I had given up and reverted to the last committed version of my code—from six hours earlier. Three hours of brilliant AI-generated visualizations vanished into the digital equivalent of that mountainside I would have tumbled down as an impatient eight-year-old.</p>
  2838.  
  2839.  
  2840.  
  2841. <h2 class="wp-block-heading">The Wisdom of Slow Climbing</h2>
  2842.  
  2843.  
  2844.  
  2845. <p>The next morning, over coffee and the particular kind of wisdom that comes from watching your colleague&#8217;s spectacular failure, my teammate Mohan delivered his verdict.</p>
  2846.  
  2847.  
  2848.  
  2849. <p>”You know what you did wrong?” he said. ”You forgot to use pitons.”</p>
  2850.  
  2851.  
  2852.  
  2853. <p>”Pitons?”</p>
  2854.  
  2855.  
  2856.  
  2857. <p>”Like mountain climbers. They hammer those metal spikes into the rock every few feet and attach their safety rope. If they fall, they only drop back to the last piton, not all the way to the bottom.”</p>
  2858.  
  2859.  
  2860.  
  2861. <p>”Your pitons are your commits, your tests, your version control. Every time you get a working feature, you hammer in a piton. Test it, commit it, make sure you can get back to that exact spot if something goes wrong.”</p>
  2862.  
  2863.  
  2864.  
  2865. <p>”But the AI was so fast,” I protested. ”Stopping to commit felt like it would break my flow.”</p>
  2866.  
  2867.  
  2868.  
  2869. <p>”Flow is great until you flow right off a cliff,” Mohan replied. ”The AI doesn&#8217;t understand your safety rope. It just keeps climbing higher and higher, making bigger and bigger changes. You&#8217;re the one who has to decide when to stop and secure your position.”</p>
  2870.  
  2871.  
  2872.  
  2873. <p>As much as I hated to admit it, Mohan was right. I had been so mesmerized by the AI&#8217;s speed that I had abandoned every good software engineering practice I knew. No incremental commits, no systematic testing, no architectural planning—just pure, reckless velocity.</p>
  2874.  
  2875.  
  2876.  
  2877. <h2 class="wp-block-heading">The Art of Strategic Impatience</h2>
  2878.  
  2879.  
  2880.  
  2881. <p>But this isn&#8217;t just about my late-night coding disaster. This challenge is baked into how AI assistants work.</p>
  2882.  
  2883.  
  2884.  
  2885. <p>AI assistants are incredibly good at making us feel productive. They generate code so quickly and confidently that it&#8217;s easy to mistake output for outcomes. But productivity without sustainability is just a fancy way of creating technical debt.</p>
  2886.  
  2887.  
  2888.  
  2889. <p>This isn&#8217;t an argument against AI-assisted development—it&#8217;s an argument for getting better at it. The mountaineers in that documentary weren&#8217;t slow because they were incompetent; they were methodical because they understood the consequences of failure.</p>
  2890.  
  2891.  
  2892.  
  2893. <p>The AI doesn&#8217;t care about your codebase either. It doesn&#8217;t understand your architecture, your business constraints, or your technical debt. It&#8217;s a powerful tool, but it&#8217;s not a substitute for engineering judgment. And engineering judgment, it turns out, is largely about knowing when to slow down.</p>
  2894.  
  2895.  
  2896.  
  2897. <p>Which brings us back to those mountaineers and their methodical approach. In my revenue dashboard disaster, I was going incredibly fast, but I ended up arriving at the same place I started, six hours later and significantly more exhausted. The irony is that if I had spent 15 minutes every hour committing working code and running tests, I would have finished the project faster, not slower.</p>
  2898.  
  2899.  
  2900.  
  2901. <p>My experience isn&#8217;t unique. Across the industry, developers are discovering that AI-powered productivity comes with hidden costs.</p>
  2902.  
  2903.  
  2904.  
  2905. <h2 class="wp-block-heading">The Future Is Methodical</h2>
  2906.  
  2907.  
  2908.  
  2909. <p>We&#8217;re living through the most significant shift in software development productivity since the invention of high-level programming languages. AI assistants are genuinely transformative tools that can accelerate development in ways that seemed impossible just a few years ago.</p>
  2910.  
  2911.  
  2912.  
  2913. <p>But they don&#8217;t eliminate the need for good engineering practices; they make those practices more important. The faster you can generate code, the more crucial it becomes to have reliable ways of validating, testing, and versioning that code. This might disappoint the eight-year-old in all of us who just wants to climb faster. But it should encourage the part of us that wants to actually reach the summit. Building software with AI assistance is a high-risk activity. You&#8217;re generating code faster than you can fully understand it, integrating libraries you didn&#8217;t choose, and implementing patterns you might not have had time to fully vet.</p>
  2914.  
  2915.  
  2916.  
  2917. <p>In that environment, safety anchors aren&#8217;t overhead—they&#8217;re essential infrastructure. The future of AI-assisted development isn&#8217;t about eliminating the methodical practices that make software engineering work. It&#8217;s about getting better at them, because we&#8217;re going to need them more than ever.</p>
  2918.  
  2919.  
  2920.  
  2921. <p>Now if you&#8217;ll excuse me, I have some commits to catch up on. And this time, I&#8217;m setting a timer.</p>
  2922. ]]></content:encoded>
  2923. </item>
  2924. <item>
  2925. <title>Why AI Efficiency May Be Making Your Organization More Fragile</title>
  2926. <link>https://www.oreilly.com/radar/why-ai-efficiency-may-be-making-your-organization-more-fragile/</link>
  2927. <pubDate>Thu, 25 Sep 2025 11:00:38 +0000</pubDate>
  2928. <dc:creator><![CDATA[Brinda Sarathy and Rajeshwari Ganesan]]></dc:creator>
  2929. <category><![CDATA[AI & ML]]></category>
  2930. <category><![CDATA[Commentary]]></category>
  2931.  
  2932. <guid isPermaLink="false">https://www.oreilly.com/radar/?p=17473</guid>
  2933.  
  2934. <media:content
  2935. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/09/Humanoid-robot-lumberjacks-chopping-trees-in-a-sunny-forest.-746312.jpg"
  2936. medium="image"
  2937. type="image/jpeg"
  2938. width="2304"
  2939. height="1792"
  2940. />
  2941.  
  2942. <media:thumbnail
  2943. url="https://www.oreilly.com/radar/wp-content/uploads/sites/3/2025/09/Humanoid-robot-lumberjacks-chopping-trees-in-a-sunny-forest.-746312-160x160.jpg"
  2944. width="160"
  2945. height="160"
  2946. />
  2947. <description><![CDATA[The productivity gains from AI tools are undeniable. Development teams are shipping faster, marketing campaigns are launching quicker, and deliverables are more polished than ever. But if you’re a technology leader watching these efficiency improvements, you might want to ask yourself a harder question: Are we building a more capable organization, or are we unintentionally [&#8230;]]]></description>
  2948. <content:encoded><![CDATA[
  2949. <p>The productivity gains from AI tools are undeniable. Development teams are shipping faster, marketing campaigns are launching quicker, and deliverables are more polished than ever. But if you’re a technology leader watching these efficiency improvements, you might want to ask yourself a harder question: Are we building a more capable organization, or are we unintentionally creating a more fragile one?</p>
  2950.  
  2951.  
  2952.  
  2953. <p>If you’re a humanist (or anyone in public higher education), you may be wondering: How will AI compromise the ability of newer generations of scholars and students to think critically, to engage in nuance and debate, and to experience the <em>benefits</em> born out of human friction?</p>
  2954.  
  2955.  
  2956.  
  2957. <p>This article itself is a testament to serendipitous encounters—and to taking more meandering paths instead of, always, the optimized fast track.</p>
  2958.  
  2959.  
  2960.  
  2961. <p>There&#8217;s a pattern emerging among AI-augmented teams—whether in tech firms or on college campuses—that should concern anyone responsible for long-term organizational health and human well-being. In the AI arms race, we&#8217;re seeing what ecologists would recognize as a classic monoculture problem—and the tech industry and early AI-adopters in higher education might learn a lesson from nature’s playbook gone wrong.</p>
  2962.  
  2963.  
  2964.  
  2965. <h2 class="wp-block-heading"><strong>The Forestry Parallel</strong></h2>
  2966.  
  2967.  
  2968.  
  2969. <p>Consider how industrial forestry approached &#8220;inefficient&#8221; old-growth forests in the mid-20th century. Faced with complex ecosystems full of fallen logs, competing species, and seemingly “decadent” and “unproductive” old-growth trees, American foresters could only see waste. For these technocrats, waste represented unharnessed value. With the gospel of conservation efficiency as their guiding star, foresters in the US clear-cut complexity and replaced it with monocultures: uniform rows of fast-growing trees optimized for rapid timber yield, a productive and profitable cash crop.</p>
  2970.  
  2971.  
  2972.  
  2973. <p>By the narrow metric of board feet of timber per acre per year, it worked brilliantly. But the ecological costs only emerged later. Without biodiversity, these forests became vulnerable to pests, diseases, and catastrophic fires. It turns out that less complex systems are also less resilient and are limited in their ability to absorb shocks or adapt to a changing climate. What looked like optimization to the foresters of yesterday was actually a system designed for fragility.</p>
  2974.  
  2975.  
  2976.  
  2977. <p>This pattern mirrors what ecological and environmental justice research has revealed about resource management policies more broadly: When we optimize for single metrics while ignoring systemic complexity, we often create the very vulnerabilities we&#8217;re trying to avoid, including decimating systems linked to fostering resilience and well-being. The question is: Are we repeating this pattern in knowledge work? The early warning signs suggest we are.</p>
  2978.  
  2979.  
  2980.  
  2981. <h2 class="wp-block-heading"><strong>The Real Cost of Frictionless Workflows</strong></h2>
  2982.  
  2983.  
  2984.  
  2985. <p>Today&#8217;s AI tools excel at what managers have long considered inefficiency: the messy, time-consuming parts of knowledge work. (There are also considerable environmental and social justice concerns about AI, but we will save them for a future post.) But something more concerning is happening beneath the surface. We&#8217;re seeing a dangerous homogenization of skills across traditional role boundaries.</p>
  2986.  
  2987.  
  2988.  
  2989. <p>Junior developers, for instance, can generate vast quantities of code, but this speed often comes at the expense of quality and maintainability. Product managers generate specifications without working through edge cases but also find themselves writing marketing copy and creating user documentation. Marketing teams craft campaign content without wrestling with audience psychology, yet they increasingly handle tasks that once required dedicated UX researchers or data analysts.</p>
  2990.  
  2991.  
  2992.  
  2993. <p>This role convergence might seem like efficiency, but it&#8217;s actually skill flattening at scale. When everyone can do everything adequately with AI assistance, the deep specialization that creates organizational resilience starts to erode. More pointedly, when AI becomes both the first and last pass in project conception, problem identification, and product generation, we lose out on examining core assumptions, ideologies, and systems with baked-in practices—and that critical engagement is very much what we need when adopting a technology as fundamentally transformative as AI. AI sets the table for conversations, and our engagement with one another is potentially that much less robust as a result.</p>
  2994.  
  2995.  
  2996.  
  2997. <p>For organizations and individuals, role convergence and faster workflows may feel like liberation and lead to a more profitable bottom line. But at the individual level, “cognitive offloading” can lead to significant losses in critical thinking, cognitive retention, and the ability to work without the crutch of technology. Depending heavily on AI to generate ideas or find “solutions” may be seductive in the short run—especially for a generation already steeped in social anxiety and social isolation—but it risks further corroding problem-solving in collaboration with others. Organizationally, we&#8217;re accumulating what we call &#8220;cognitive debt&#8221;—the hidden costs of optimization that compound over time.</p>
  2998.  
  2999.  
  3000.  
  3001. <p>The symptoms are emerging faster than expected:</p>
  3002.  
  3003.  
  3004.  
  3005. <ul class="wp-block-list">
  3006. <li>Junior team members report anxiety about their value-add when AI can produce their typical deliverables faster.</li>
  3007.  
  3008.  
  3009.  
  3010. <li>Critical thinking skills atrophy when problem framing is outsourced to large language models.</li>
  3011.  
  3012.  
  3013.  
  3014. <li>Team discussions become thinner when AI provides the first draft of everything, reducing the productive friction that generates new insights.</li>
  3015.  
  3016.  
  3017.  
  3018. <li>Decision-making processes accelerate but become more brittle when faced with novel situations.</li>
  3019.  
  3020.  
  3021.  
  3022. <li>Deep domain expertise gets diluted as everyone becomes a generalist with AI assistance.</li>
  3023. </ul>
  3024.  
  3025.  
  3026.  
  3027. <h2 class="wp-block-heading"><strong>What Productive Friction Actually Does</strong></h2>
  3028.  
  3029.  
  3030.  
  3031. <p>The most successful knowledge workers have always been those who could synthesize disparate perspectives, ask better questions, and navigate ambiguity. These capabilities develop through what we might call &#8220;productive friction&#8221;—the discomfort of reconciling conflicting viewpoints, the struggle of articulating half-formed ideas, and the hard work of building understanding from scratch and in relationship with other people. This is wisdom born out of experience, not algorithm.</p>
  3032.  
  3033.  
  3034.  
  3035. <p>AI can eliminate this friction, but friction isn&#8217;t just drag—the slowing down of process may have its own benefits. The contained friction sometimes produced through working collectively is like the biodiverse and ostensibly “messy” forest understory where there are many layers of interdependence. This is the rich terrain in which assumptions break down, where edge cases lurk, and where real innovation opportunities hide. From an enterprise AI architecture perspective, friction often reveals the most valuable insights about system boundaries and integration challenges.</p>
  3036.  
  3037.  
  3038.  
  3039. <p>When teams default to AI-assisted workflows for most thinking tasks, they become cognitively brittle. They optimize for output velocity at the expense of the adaptability they&#8217;ll need when the next paradigm shift arrives.</p>
  3040.  
  3041.  
  3042.  
  3043. <h2 class="wp-block-heading"><strong>Cultivating Organizational Resilience</strong></h2>
  3044.  
  3045.  
  3046.  
  3047. <p>The solution isn&#8217;t to abandon AI tools—that would be both futile and counterproductive. Instead, technology leaders need to design for long-term capability building rather than short-term output maximization. The efficiency granted by AI should create an opportunity not just to build faster, but to think deeper—to finally invest the time needed to truly understand the problems we claim to solve, a task the technology industry has historically sidelined in its pursuit of speed. The goal is creating organizational ecosystems that can adapt and thrive and be more humane, not just optimize. It may mean <em>slowing down</em> to ask even more difficult questions: Just because we can do it, should it be done? What are the ethical, social, and environmental implications of unleashing AI? Simply saying AI will solve these thorny questions is like foresters of yore who only focused on the cash crop and were blind to the longer-term negative externalities of ravaged ecosystems.</p>
  3048.  
  3049.  
  3050.  
  3051. <p><strong>Here are four strategies that preserve cognitive diversity alongside algorithmic efficiency:</strong></p>
  3052.  
  3053.  
  3054.  
  3055. <ol class="wp-block-list">
  3056. <li><strong>Make process visible, not just outcomes</strong><br>Instead of presenting AI-generated deliverables as finished products, require teams to identify the problems they&#8217;re solving, alternatives they considered, and assumptions they&#8217;re making before AI assistance kicks in. This preserves the reasoning layer that&#8217;s getting lost and maintains the interpretability that&#8217;s crucial for organizational learning.<br></li>
  3057.  
  3058.  
  3059.  
  3060. <li><strong>Schedule cognitive cross-training</strong><br>Institute regular &#8220;AI-free zones&#8221; where teams work through problems without algorithmic assistance. Treat these as skill-building exercises, not productivity drains. They are also crucial to maintaining human sociality. Like physical cross-training, the goal is maintaining cognitive fitness and preventing the skill atrophy we&#8217;re observing in AI-augmented workflows.<br></li>
  3061.  
  3062.  
  3063.  
  3064. <li><strong>Scale apprenticeship models</strong><br>Pair junior team members with seniors on problems that require building understanding from scratch. AI can assist with implementation, but humans should own problem framing, approach selection, and decision rationale. This counters the dangerous trend toward skill homogenization.<br></li>
  3065.  
  3066.  
  3067.  
  3068. <li><strong>Institutionalize productive dissent</strong><br>Every team of &#8220;true believers&#8221; needs some skeptics to avoid being blindsided. For every AI-assisted recommendation, designate someone to argue the opposite case or identify failure modes. Rotate this role to normalize productive disagreement and prevent groupthink. This mirrors the natural checks and balances that make diverse ecosystems resilient.</li>
  3069. </ol>
  3070.  
  3071.  
  3072.  
  3073. <h2 class="wp-block-heading"><strong>The Organizational Radar Question</strong></h2>
  3074.  
  3075.  
  3076.  
  3077. <p>The critical question for technology leaders isn&#8217;t whether AI will increase productivity—it will. But at what cost and for whom? The question is whether your organization—and your people—will emerge from this transition more capable or more fragile.</p>
  3078.  
  3079.  
  3080.  
  3081. <p>Like those foresters measuring only timber yield, we risk optimizing for metrics that feel important but miss systemic health. The organizations that thrive in the AI era won&#8217;t be those that adopted the tools fastest, but those that figured out how to preserve and cultivate uniquely human capabilities alongside algorithmic efficiency.</p>
  3082.  
  3083.  
  3084.  
  3085. <p>Individual optimization matters less than collective intelligence. As we stand at the threshold of truly transformative AI capabilities, perhaps it&#8217;s time to learn from the forests: Diversity, not efficiency, is the foundation of antifragile systems.</p>
  3086.  
  3087.  
  3088.  
  3089. <p><em>What steps are your organization taking to preserve cognitive diversity? The decisions you make in the next 12 months about how to integrate AI tools may determine whether you&#8217;re building a resilient ecosystem or a mundane monoculture.</em></p>
  3090. ]]></content:encoded>
  3091. </item>
  3092. </channel>
  3093. </rss>
  3094.  
  3095. <!--
  3096. Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/
  3097.  
  3098. Object Caching 233/234 objects using Memcached
  3099. Page Caching using Disk: Enhanced (Page is feed)
  3100. Minified using Memcached
  3101.  
  3102. Served from: www.oreilly.com @ 2025-10-16 11:18:35 by W3 Total Cache
  3103. -->
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda