<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bo Romir</title>
    <description>The latest articles on DEV Community by Bo Romir (@bo_romir).</description>
    <link>https://dev.to/bo_romir</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3862867%2Fb4c1e920-d3b7-45d0-a417-b13acfc9b495.png</url>
      <title>DEV Community: Bo Romir</title>
      <link>https://dev.to/bo_romir</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bo_romir"/>
    <language>en</language>
    <item>
      <title>Two Kinds of AI Agents (And Why You Need Both)</title>
      <dc:creator>Bo Romir</dc:creator>
      <pubDate>Sun, 05 Apr 2026 23:11:16 +0000</pubDate>
      <link>https://dev.to/bo_romir/two-kinds-of-ai-agents-and-why-you-need-both-3158</link>
      <guid>https://dev.to/bo_romir/two-kinds-of-ai-agents-and-why-you-need-both-3158</guid>
      <description>&lt;p&gt;&lt;em&gt;Persistent context agents vs. stateless decision functions. When to build which, how to evaluate each, and why the industry is conflating two fundamentally different problems.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Andrej Karpathy ended his 2025 Year in Review with this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"I don't think the industry has realized anywhere near 10% of their potential even at present capability."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I think the reason is that we're treating "AI agent" as one category when it's actually two. And the evaluation strategies, architectures, and failure modes are completely different for each.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Two Agent Archetypes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Type 1: The Persistent Context Agent
&lt;/h3&gt;

&lt;p&gt;This is an AI that lives alongside you. It has memory. It knows your codebase, your preferences, your ongoing projects, what happened yesterday. It accumulates context over time and uses that context to be more helpful.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Code running on your machine with access to your files, git history, and environment&lt;/li&gt;
&lt;li&gt;A Slack-integrated ops assistant that knows your team's systems, reads channels, tracks tasks across days&lt;/li&gt;
&lt;li&gt;Cursor, which maintains a model of your entire project and evolves its understanding as you code&lt;/li&gt;
&lt;li&gt;An executive assistant that manages your calendar, email, and knows your contacts and preferences&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Karpathy described this paradigm in his 2025 review when discussing Claude Code:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"It runs on your computer and with your private environment, data and context... it's not just a website you go to like Google, it's a little spirit/ghost that 'lives' on your computer."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The key insight: the value of a Type 1 agent is proportional to the context it has accumulated. A fresh instance with no memory is dramatically less useful than one that has been running for weeks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Type 2: The Stateless Decision Function
&lt;/h3&gt;

&lt;p&gt;This is an AI that receives structured input, makes one decision, and returns. No memory. No ongoing context. No personality. It runs identically the thousandth time as the first.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A content moderation classifier: takes a post, returns APPROVE or FLAG&lt;/li&gt;
&lt;li&gt;A loan underwriting decision: takes applicant data, returns APPROVE/DENY with confidence&lt;/li&gt;
&lt;li&gt;A code review checker: takes a diff, returns a list of issues&lt;/li&gt;
&lt;li&gt;A fraud detection function: takes a transaction, returns LEGITIMATE or SUSPICIOUS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anthropic described this pattern in "Building Effective Agents":&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"For many applications, optimizing single LLM calls with retrieval and in-context examples is usually enough."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The key insight: the value of a Type 2 agent is proportional to its accuracy at volume. It doesn't need to remember anything. It needs to be right 97%+ of the time on the same input every time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Distinction Matters
&lt;/h2&gt;

&lt;p&gt;The industry is collapsing these into one concept called "agents" and that's causing real problems.&lt;/p&gt;

&lt;p&gt;When OpenAI announced their Agents SDK and Responses API, they described agents as "systems that independently accomplish tasks on behalf of users." That definition covers both types. But the evaluation strategies, failure modes, and architectural decisions are completely different:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Type 1: Persistent Context&lt;/th&gt;
&lt;th&gt;Type 2: Stateless Decision&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Value source&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Accumulated context&lt;/td&gt;
&lt;td&gt;Per-decision accuracy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;State&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Massive, evolving&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Failure mode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Context drift, stale memory, wrong associations&lt;/td&gt;
&lt;td&gt;Classification error, hallucinated reasoning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Evaluation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Hard. Qualitative + long-horizon.&lt;/td&gt;
&lt;td&gt;Easy. Ground truth comparison at scale.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Improvement loop&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Human feedback, memory curation&lt;/td&gt;
&lt;td&gt;Automated tournament, A/B testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cost profile&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High per-instance (long context, many calls)&lt;/td&gt;
&lt;td&gt;Low per-decision ($0.001-0.01 each)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Scaling&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;One per user/team&lt;/td&gt;
&lt;td&gt;Millions of identical calls&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Always-on, stateful&lt;/td&gt;
&lt;td&gt;Stateless API endpoint&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The mistake most teams make: building a Type 1 agent when they need a Type 2 function, or vice versa.&lt;/p&gt;




&lt;h2&gt;
  
  
  Karpathy's Frameworks Applied
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The "Verifiability" Lens
&lt;/h3&gt;

&lt;p&gt;Karpathy's "Verifiability" post (Nov 2025) gives us the sharpest tool for deciding between types:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Software 1.0 easily automates what you can specify. Software 2.0 easily automates what you can verify."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Type 2 agents thrive where you can verify.&lt;/strong&gt; The transaction was fraudulent or it wasn't. The code compiles or it doesn't. The answer is right or it's wrong. Verification enables optimization: you can build a harness, run 300,000 evaluations, and find the prompt that maximizes your business-weighted scoring function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type 1 agents operate where you can't fully verify.&lt;/strong&gt; Was that Slack summary helpful? Did the assistant make the right judgment call about which emails to flag? Was the memory it retained actually the important part of yesterday's meeting? These are judgment calls, not classification tasks. You can't score them with a simple function.&lt;/p&gt;

&lt;p&gt;This connects to Karpathy's insight about RLVR (Reinforcement Learning from Verifiable Rewards):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"By training LLMs against automatically verifiable rewards... the LLMs spontaneously develop strategies that look like 'reasoning' to humans."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Type 2 agents benefit directly from verifiability: you can build your own mini-RLVR at the prompt level using a tournament harness. Type 1 agents can't, because their value emerges over time from accumulated context, not from any single verifiable output.&lt;/p&gt;

&lt;h3&gt;
  
  
  The "Jagged Intelligence" Lens
&lt;/h3&gt;

&lt;p&gt;Karpathy's "Ghosts vs Animals" framing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"LLMs display amusingly jagged performance characteristics - they are at the same time a genius polymath and a confused and cognitively challenged grade schooler."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This jaggedness manifests differently in each type:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type 2:&lt;/strong&gt; Jaggedness shows up as subclass failures. The model correctly classifies 99% of one category but only 60% of another edge case category. You can find these jagged edges through automated testing and smooth them with better context data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type 1:&lt;/strong&gt; Jaggedness shows up as unpredictable context failures. The agent remembers a detail from three weeks ago but forgets something from yesterday. It handles one person's communication style brilliantly and completely misreads another. You can't find these edges through automated testing because they depend on the accumulated state.&lt;/p&gt;

&lt;h3&gt;
  
  
  The "Context Engineering" Lens
&lt;/h3&gt;

&lt;p&gt;From Karpathy's YC talk on the new LLM app layer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"LLM apps like Cursor bundle and orchestrate LLM calls for specific verticals. They do the 'context engineering.'"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Both types need context engineering, but it means something completely different for each:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type 2 context engineering:&lt;/strong&gt; What structured data do you put in the context window to maximize decision accuracy? Historical outcomes, similar past cases, entity-specific patterns. This is optimizable: you can A/B test different context configurations and measure which one improves accuracy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type 1 context engineering:&lt;/strong&gt; What does the agent need to remember? How does it decide what's important? How does it structure its memory? How does it retrieve the right context for the current moment? This is closer to cognitive architecture than optimization. It's about building good systems for information management, not about finding the optimal input for a single call.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to Evaluate Each Type
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Evaluating Type 2: The Harness
&lt;/h3&gt;

&lt;p&gt;For Type 2 agents, evaluation is a solved problem (at least in principle). You need:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Labeled ground truth data&lt;/strong&gt; (&amp;gt;1,000 examples, ideally &amp;gt;5,000)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A scoring function&lt;/strong&gt; that reflects business value (dollar-weighted, not just accuracy)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A tournament loop&lt;/strong&gt; that tests prompt variants against the data&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Jason Wei (OpenAI):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"It's critical to have a single-number metric."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For Type 2, this works. Your single number is the business-weighted score. Run the tournament. Ship the winner.&lt;/p&gt;

&lt;p&gt;The tooling landscape:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Data volume&lt;/th&gt;
&lt;th&gt;Error symmetry&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;1,000 examples&lt;/td&gt;
&lt;td&gt;Symmetric&lt;/td&gt;
&lt;td&gt;Promptfoo, DSPy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;gt;1,000&lt;/td&gt;
&lt;td&gt;Symmetric&lt;/td&gt;
&lt;td&gt;DSPy with custom metric&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;gt;1,000&lt;/td&gt;
&lt;td&gt;Dollar-weighted&lt;/td&gt;
&lt;td&gt;Custom harness&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;DSPy (Stanford) is particularly interesting here. From the paper:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"DSPy modules are parameterized, meaning they can learn how to apply compositions of prompting, finetuning, augmentation, and reasoning techniques."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It automates prompt search using typed signatures. If your task fits cleanly into a typed input/output contract and standard metrics suffice, DSPy is likely all you need.&lt;/p&gt;

&lt;p&gt;But the moment your scoring involves dollars, domain-specific weights, or subclass analysis, you're building custom. No off-the-shelf tool handles "this $5,000 error is 500x worse than this $10 error" natively.&lt;/p&gt;

&lt;h3&gt;
  
  
  Evaluating Type 1: The Hard Problem
&lt;/h3&gt;

&lt;p&gt;Type 1 evaluation is genuinely unsolved. Here's why:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The evaluation window is too long.&lt;/strong&gt; The value of a Type 1 agent emerges over days and weeks. A single-turn eval tells you almost nothing. You need to evaluate trajectories, not outputs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The state space is enormous.&lt;/strong&gt; The agent's behavior depends on everything it has seen and remembered. Two identical inputs can produce different (and both correct) outputs depending on accumulated context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The ground truth is subjective.&lt;/strong&gt; Was that a good summary? Was that the right thing to remember? Was that an appropriate time to interrupt the user? These are judgment calls.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The failure modes are subtle.&lt;/strong&gt; A Type 1 agent doesn't fail by producing a wrong classification. It fails by slowly drifting: accumulating stale context, developing incorrect associations, missing important signals while retaining unimportant ones.&lt;/p&gt;

&lt;p&gt;What works (imperfectly):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Human evaluation at checkpoints.&lt;/strong&gt; Periodically review the agent's memory, decisions, and outputs. Does it still have the right context? Is it making good judgment calls?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Regression testing on known scenarios.&lt;/strong&gt; Feed the agent known situations and check if its behavior is reasonable. This doesn't test accumulated context but catches gross regressions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-consistency checks.&lt;/strong&gt; Does the agent contradict itself? Does its memory match reality?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User behavior signals.&lt;/strong&gt; Are users correcting the agent more often? Asking the same question twice? Overriding its suggestions? These are implicit failure signals.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hamel Husain's observation applies differently here:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Success with AI hinges on how fast you can iterate."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For Type 2, iteration means running more prompt variants through the harness. For Type 1, iteration means watching the agent operate in the real world and tuning its memory architecture, retrieval logic, and decision boundaries based on observed failures.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Complementary Architecture
&lt;/h2&gt;

&lt;p&gt;The real insight: production systems usually need both types working together.&lt;/p&gt;

&lt;p&gt;Consider a fintech company processing loan applications. They need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A Type 1 agent&lt;/strong&gt; that lives in their Slack, reads channels, tracks ongoing customer escalations, knows the team's history, understands each analyst's expertise, and can answer "what's the status of Account X?" based on weeks of accumulated context.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A Type 2 agent&lt;/strong&gt; that processes 10,000 loan applications per day, making APPROVE/DENY/REVIEW decisions at 97% accuracy with a dollar-weighted scoring function.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Type 1 agent can't do the Type 2 task at the required accuracy and volume. It doesn't need to be 97% right on a narrow classification. It needs to be broadly helpful with deep context.&lt;/p&gt;

&lt;p&gt;The Type 2 agent can't do the Type 1 task at all. It has no memory, no ongoing context, no understanding of relationships or history.&lt;/p&gt;

&lt;p&gt;But they can feed each other:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Type 1 agent notices a pattern in team chats ("three analysts mentioned the same fraud vector this week") and flags it for investigation&lt;/li&gt;
&lt;li&gt;The Type 2 agent's accuracy data reveals that applications from region Y have a 40% false positive rate, suggesting a rule adjustment&lt;/li&gt;
&lt;li&gt;The Type 1 agent routes that insight to the right person with full context about why it matters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dario Amodei's "complementary factors to intelligence" framework is useful here. Each agent type provides a factor that's complementary to the other:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Type 2 provides &lt;strong&gt;reliability at scale&lt;/strong&gt; (the Type 1 agent's weakness)&lt;/li&gt;
&lt;li&gt;Type 1 provides &lt;strong&gt;accumulated context and judgment&lt;/strong&gt; (the Type 2 agent's impossibility)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Karpathy Corollary
&lt;/h2&gt;

&lt;p&gt;Karpathy's "Power to the People" essay (Apr 2025) makes a point about LLM impact that maps onto this framework:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"LLMs offer a very specific profile of capability - that of merely quasi-expert knowledge/performance, but simultaneously across a very wide variety of domains."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Type 1 agents&lt;/strong&gt; exploit the breadth. They're the "quasi-expert across many domains" that helps a single person or team operate across more surface area than they could alone. Breadth + context = a really good generalist assistant.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Type 2 agents&lt;/strong&gt; exploit the depth. On a narrow, well-defined task with good context data, they're not quasi-expert. They're better than the median human expert because they have access to historical patterns that no individual human can hold in memory. Depth + data = a specialist that outperforms.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;His observation from "Animals vs Ghosts" also applies:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Animals experience pressure for a lot more 'general' intelligence because of the highly multi-task and even actively adversarial multi-agent self-play environments they are min-max optimized within."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Type 1 agents are more animal-like: they need general intelligence across many tasks, adaptive behavior, social awareness. Type 2 agents are more ghost-like: spiky, narrow, optimized hard on a single verifiable dimension.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Decision Framework
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;START
  |
  v
Does the task require memory across sessions?
Does value accumulate over time?
Is the task multi-domain and judgment-heavy?
  |
  YES to any --&amp;gt; TYPE 1: Persistent Context Agent
  |               Focus on: memory architecture, retrieval,
  |               context management, qualitative eval
  |
  NO to all
  |
  v
Is the task verifiable? (clear right/wrong)
Is it high volume? (&amp;gt;500/day)
Can errors be quantified in dollars?
  |
  YES to all --&amp;gt; TYPE 2: Stateless Decision Function
  |               Focus on: tournament harness, ground truth
  |               data, dollar-weighted scoring, A/B testing
  |
  YES to some --&amp;gt; TYPE 2 with simpler eval
  |               (DSPy, Promptfoo, standard metrics)
  |
  NO to all --&amp;gt; TYPE 1 (probably)
                or reconsider if you need an agent at all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Anthropic's advice remains the sanity check:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"We recommend finding the simplest solution possible, and only increasing complexity when needed. This might mean not building agentic systems at all."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What's Missing From the Ecosystem
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Type 1 eval frameworks.&lt;/strong&gt; Almost nonexistent. We have rich tooling for Type 2 (ground truth comparison) and almost nothing for evaluating persistent context agents over long horizons.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Memory architecture patterns.&lt;/strong&gt; Type 1 agents need standardized approaches to: what to remember, when to forget, how to retrieve, how to update. Right now every team reinvents this.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hybrid orchestration.&lt;/strong&gt; Systems that let a Type 1 agent delegate to Type 2 functions seamlessly. The persistent agent handles context and judgment; the stateless function handles high-volume decisions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Context search optimization.&lt;/strong&gt; For Type 2, the biggest gains come from optimizing what data goes in the context window (not the prompt text). DSPy optimizes prompts beautifully. Nobody has built the equivalent for context window configuration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost-aware deployment patterns.&lt;/strong&gt; Type 1 agents are expensive per-instance (always-on, long context). Type 2 agents are cheap per-call. Understanding the cost structure determines what to automate and what to leave to humans.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;The industry keeps asking "how do I build an AI agent?" as if it's one question.&lt;/p&gt;

&lt;p&gt;It's two questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;How do I build a reliable, testable decision function that can process thousands of identical decisions per day?&lt;/strong&gt; Answer: a stateless Type 2 agent with a tournament eval harness.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;How do I build an AI that accumulates context, exercises judgment, and gets more useful over time?&lt;/strong&gt; Answer: a persistent Type 1 agent with memory architecture and qualitative evaluation.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;They're different architectures, different eval strategies, different failure modes, different cost structures.&lt;/p&gt;

&lt;p&gt;You probably need both. Know which one you're building.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Bo Romir writes about applied AI architecture and the infrastructure decisions that determine whether AI systems actually work in production.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Karpathy, A. &lt;a href="https://karpathy.bearblog.dev/year-in-review-2025/" rel="noopener noreferrer"&gt;"2025 LLM Year in Review"&lt;/a&gt; (2025)&lt;/li&gt;
&lt;li&gt;Karpathy, A. &lt;a href="https://karpathy.bearblog.dev/verifiability/" rel="noopener noreferrer"&gt;"Verifiability"&lt;/a&gt; (2025)&lt;/li&gt;
&lt;li&gt;Karpathy, A. &lt;a href="https://karpathy.bearblog.dev/animals-vs-ghosts/" rel="noopener noreferrer"&gt;"Animals vs Ghosts"&lt;/a&gt; (2025)&lt;/li&gt;
&lt;li&gt;Karpathy, A. &lt;a href="https://karpathy.bearblog.dev/the-space-of-minds/" rel="noopener noreferrer"&gt;"The Space of Minds"&lt;/a&gt; (2025)&lt;/li&gt;
&lt;li&gt;Karpathy, A. &lt;a href="https://karpathy.bearblog.dev/power-to-the-people/" rel="noopener noreferrer"&gt;"Power to the People"&lt;/a&gt; (2025)&lt;/li&gt;
&lt;li&gt;Karpathy, A. &lt;a href="https://karpathy.medium.com/software-2-0-a64152b37c35" rel="noopener noreferrer"&gt;"Software 2.0"&lt;/a&gt; (2017)&lt;/li&gt;
&lt;li&gt;Karpathy, A. &lt;a href="https://www.youtube.com/watch?v=LCEmiRjPEtQ" rel="noopener noreferrer"&gt;"Software Is Changing (Again)" - YC Talk&lt;/a&gt; (2025)&lt;/li&gt;
&lt;li&gt;Amodei, D. &lt;a href="https://darioamodei.com/essay/machines-of-loving-grace" rel="noopener noreferrer"&gt;"Machines of Loving Grace"&lt;/a&gt; (2024)&lt;/li&gt;
&lt;li&gt;Anthropic. &lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;"Building Effective Agents"&lt;/a&gt; (2024)&lt;/li&gt;
&lt;li&gt;Husain, H. &lt;a href="https://hamel.dev/blog/posts/evals/" rel="noopener noreferrer"&gt;"Your AI Product Needs Evals"&lt;/a&gt; (2024)&lt;/li&gt;
&lt;li&gt;Wei, J. &lt;a href="https://www.jasonwei.net/blog/evals" rel="noopener noreferrer"&gt;"Successful Language Model Evals"&lt;/a&gt; (2024)&lt;/li&gt;
&lt;li&gt;Khattab, O. et al. &lt;a href="https://arxiv.org/abs/2310.03714" rel="noopener noreferrer"&gt;"DSPy"&lt;/a&gt; (Stanford, 2023)&lt;/li&gt;
&lt;li&gt;OpenAI. &lt;a href="https://openai.com/index/new-tools-for-building-agents/" rel="noopener noreferrer"&gt;"New Tools for Building Agents"&lt;/a&gt; (2025)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>llm</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
