<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Open-Source LLMs: Closing the Gap or Forever Second to Closed Giants?]]></title><description><![CDATA[Open-Source LLMs: Closing the Gap or Forever Second to Closed Giants?]]></description><link>https://satyaki-mandal.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/69d9d24dc8e5007ddb496599/a603f7e8-4d10-475a-89db-a84bb1e08829.png</url><title>Open-Source LLMs: Closing the Gap or Forever Second to Closed Giants?</title><link>https://satyaki-mandal.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 08:37:46 GMT</lastBuildDate><atom:link href="https://satyaki-mandal.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Beyond Prompting: Why “Harness Engineering” Is the Missing Layer in AI (And Why Most Agents Fail Without It)]]></title><description><![CDATA[The Illusion That Trapped Everyone
Let’s be honest.
If you’ve built even one AI agent, you’ve experienced this exact emotional rollercoaster:

You write a clean system prompt

Add tools, APIs, maybe a]]></description><link>https://satyaki-mandal.hashnode.dev/beyond-prompting-why-harness-engineering-is-the-missing-layer-in-ai-and-why-most-agents-fail-without-it</link><guid isPermaLink="true">https://satyaki-mandal.hashnode.dev/beyond-prompting-why-harness-engineering-is-the-missing-layer-in-ai-and-why-most-agents-fail-without-it</guid><dc:creator><![CDATA[Satyaki Mandal]]></dc:creator><pubDate>Fri, 17 Apr 2026 12:27:40 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/69d9d24dc8e5007ddb496599/7edfb96f-9af7-4e40-aa49-ab4756fc4d6b.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>The Illusion That Trapped Everyone</h2>
<p>Let’s be honest.</p>
<p>If you’ve built even one AI agent, you’ve experienced this exact emotional rollercoaster:</p>
<ul>
<li><p>You write a clean system prompt</p>
</li>
<li><p>Add tools, APIs, maybe a vector database</p>
</li>
<li><p>Hit run</p>
</li>
</ul>
<p>And for a moment… it feels like magic.</p>
<p>It <em>works</em>.</p>
<p>You sit there thinking:</p>
<blockquote>
<p>“This is insane. This is the future.”</p>
</blockquote>
<p>Then, slowly, things start breaking.</p>
<ul>
<li><p>It calls the wrong API with confident nonsense</p>
</li>
<li><p>It loops the same action like it’s stuck in a bad dream</p>
</li>
<li><p>It confidently declares success… after doing absolutely nothing useful</p>
</li>
</ul>
<p>And suddenly you’re debugging a system that feels less like software and more like… chaos.</p>
<hr />
<h2>The Lie We All Believed</h2>
<p>For a long time, the industry had a convenient excuse:</p>
<blockquote>
<p>“The models just aren’t good enough yet.”</p>
</blockquote>
<p>So we waited.</p>
<p>Then better models came.</p>
<p>Then even better ones.</p>
<p>And something uncomfortable happened:</p>
<p><strong>The agents didn’t improve proportionally.</strong></p>
<p>Same bugs. Same loops. Same fake confidence.</p>
<p>At that point, the honest question became:</p>
<blockquote>
<p>What if the problem isn’t the model?</p>
</blockquote>
<hr />
<h2>The Real Problem (That Nobody Wanted to Admit)</h2>
<p>When serious benchmarks started testing agents in real workflows (not toy demos), the results were… embarrassing.</p>
<p>Not because the models lacked knowledge.</p>
<p>But because the systems lacked <strong>control</strong>.</p>
<p>Failures came from:</p>
<ul>
<li><p>No memory of progress</p>
</li>
<li><p>No structured execution</p>
</li>
<li><p>No validation of outputs</p>
</li>
<li><p>No guardrails that actually enforce anything</p>
</li>
</ul>
<p>In other words:</p>
<blockquote>
<p>We gave intelligence to systems that had zero discipline.</p>
</blockquote>
<hr />
<h2>The Shift That Changes Everything</h2>
<p>This is where the mental model flips.</p>
<p><strong>Reliability is not an intelligence problem. It’s a systems design problem.</strong></p>
<p>And that realization leads to one concept:</p>
<h1>Harness Engineering</h1>
<hr />
<h2>What is Harness Engineering (in one brutal sentence)</h2>
<blockquote>
<p>Stop trying to make the model behave. Start controlling it.</p>
</blockquote>
<hr />
<h2>Why Prompt Engineering Was Always Doomed</h2>
<h3>Phase 1: Prompt Engineering (2022–2024)</h3>
<p>We treated LLMs like smart interns.</p>
<p>We tried:</p>
<ul>
<li><p>Better instructions</p>
</li>
<li><p>Role assignments</p>
</li>
<li><p>Few-shot examples</p>
</li>
</ul>
<p>And yeah—it worked.</p>
<p><strong>For simple tasks.</strong></p>
<p>But prompts are fundamentally limited:</p>
<ul>
<li><p>They don’t enforce behavior</p>
</li>
<li><p>They don’t track progress</p>
</li>
<li><p>They don’t prevent failure loops</p>
</li>
</ul>
<p>You can’t “prompt” reliability into a long-running system.</p>
<p>That’s like writing a motivational speech and expecting it to replace a production pipeline.</p>
<hr />
<h2>Context Engineering Didn’t Fix It Either</h2>
<h3>Phase 2: Context Engineering (2025)</h3>
<p>Then we said:</p>
<blockquote>
<p>“Okay, the model just needs more context.”</p>
</blockquote>
<p>So we added:</p>
<ul>
<li><p>RAG pipelines</p>
</li>
<li><p>Docs, logs, history</p>
</li>
<li><p>External knowledge</p>
</li>
</ul>
<p>Now the model <em>knew more</em>.</p>
<p>But did it execute better?</p>
<p>Not really.</p>
<p>Because knowing ≠ doing.</p>
<p>The model still:</p>
<ul>
<li><p>Didn’t track state</p>
</li>
<li><p>Didn’t verify results</p>
</li>
<li><p>Didn’t know when it failed</p>
</li>
</ul>
<p>We upgraded memory… but not control.</p>
<hr />
<h2>Harness Engineering: The Missing Layer</h2>
<h3>Phase 3: Harness Engineering (2026 →)</h3>
<p>This is where things get serious.</p>
<p>Instead of improving the <strong>brain</strong>, we build the <strong>system around the brain</strong>.</p>
<hr />
<h2>The Mental Model That Will Save You Months</h2>
<p>If you don’t internalize this, you’ll keep building fragile agents.</p>
<p>Think of it like this:</p>
<table>
<thead>
<tr>
<th>Component</th>
<th>Role</th>
</tr>
</thead>
<tbody><tr>
<td>Model</td>
<td>CPU</td>
</tr>
<tr>
<td>Context</td>
<td>RAM</td>
</tr>
<tr>
<td>Harness</td>
<td>Operating System</td>
</tr>
<tr>
<td>Agent</td>
<td>Application</td>
</tr>
</tbody></table>
<p>Now ask yourself:</p>
<blockquote>
<p>Would you run applications on a CPU without an OS?</p>
</blockquote>
<p>Exactly.</p>
<p>That’s what most “AI agents” are right now.</p>
<hr />
<h2>What a Harness Actually Does (This is the real value)</h2>
<p>A harness is not a wrapper.</p>
<p>It’s a <strong>control system</strong>.</p>
<p>It:</p>
<ul>
<li><p>Tracks state across steps</p>
</li>
<li><p>Controls what the model can do</p>
</li>
<li><p>Validates outputs before accepting them</p>
</li>
<li><p>Forces retries when things break</p>
</li>
<li><p>Separates thinking from execution</p>
</li>
</ul>
<p>Most importantly:</p>
<blockquote>
<p>It removes decision-making power from the model where it shouldn't exist.</p>
</blockquote>
<hr />
<h2>The Biggest Insight Most People Miss</h2>
<p>Here’s the uncomfortable truth:</p>
<blockquote>
<p>LLMs are terrible at judging their own correctness.</p>
</blockquote>
<p>They will:</p>
<ul>
<li><p>Approve broken code</p>
</li>
<li><p>Miss obvious errors</p>
</li>
<li><p>Declare success prematurely</p>
</li>
</ul>
<p>So if your system relies on:</p>
<blockquote>
<p>“The model will check its own work”</p>
</blockquote>
<p>You’ve already lost.</p>
<hr />
<h2>The Architecture That Actually Works</h2>
<p>Real systems follow a loop like this:</p>
<ol>
<li><p>Model generates a plan</p>
</li>
<li><p>System executes deterministically</p>
</li>
<li><p>External validation checks results</p>
</li>
<li><p>Failures are fed back</p>
</li>
<li><p>Loop continues until valid</p>
</li>
</ol>
<p>This is not “AI magic”.</p>
<p>This is just <strong>good engineering</strong>.</p>
<hr />
<h2>The Core Components of a Strong Harness</h2>
<p>Let’s go deeper—this is where things separate beginners from people who actually ship.</p>
<hr />
<h3>1. Context Firewalls (Stop Context Pollution)</h3>
<p>More context ≠ better performance.</p>
<p>In fact, more context often makes agents worse.</p>
<p>Why?</p>
<p>Because models:</p>
<ul>
<li><p>Get distracted</p>
</li>
<li><p>Pick irrelevant info</p>
</li>
<li><p>Lose focus</p>
</li>
</ul>
<p>Solution:</p>
<p><strong>Split responsibilities.</strong></p>
<p>Example:</p>
<ul>
<li><p>One agent reads logs → returns clean summary</p>
</li>
<li><p>Main agent never sees raw noise</p>
</li>
</ul>
<p>You’re not giving more data.</p>
<p>You’re giving <strong>cleaner data</strong>.</p>
<hr />
<h3>2. Progressive Disclosure (Stop Overloading the Model)</h3>
<p>Dumping:</p>
<ul>
<li><p>20 tools</p>
</li>
<li><p>Full API docs</p>
</li>
<li><p>Huge schemas</p>
</li>
</ul>
<p>…is basically sabotage.</p>
<p>Better approach:</p>
<ul>
<li><p>Start minimal</p>
</li>
<li><p>Let the agent <em>request</em> more</p>
</li>
</ul>
<p>This mirrors how humans work.</p>
<p>No one reads the entire documentation before writing code.</p>
<hr />
<h3>3. Execution Engine (Separate Thinking from Doing)</h3>
<p>This is critical.</p>
<p>The model should:</p>
<ul>
<li>Suggest actions</li>
</ul>
<p>The system should:</p>
<ul>
<li><p>Execute them</p>
</li>
<li><p>Validate them</p>
</li>
</ul>
<p>Never let the model directly control execution outcomes.</p>
<p>That’s like letting a student grade their own exam.</p>
<hr />
<h3>4. Deterministic Guardrails (Real Safety, Not Vibes)</h3>
<p>This is where most people get lazy.</p>
<p>They write:</p>
<blockquote>
<p>“Do not delete important data.”</p>
</blockquote>
<p>Congrats. You wrote a suggestion.</p>
<p>The model does not care.</p>
<p>Instead:</p>
<ul>
<li><p>Restrict commands</p>
</li>
<li><p>Validate inputs</p>
</li>
<li><p>Enforce rules in code</p>
</li>
</ul>
<p>If it <em>must not happen</em>, it should be <strong>impossible</strong>, not discouraged.</p>
<hr />
<h2>The Code That Explains Everything</h2>
<p>This tiny pattern explains more than 100 blog posts:</p>
<ul>
<li><p>Model plans</p>
</li>
<li><p>System executes</p>
</li>
<li><p>Validation decides</p>
</li>
<li><p>Loop continues</p>
</li>
</ul>
<p>The model is not in charge.</p>
<p>And that’s exactly why it works.</p>
<hr />
<h2>Why Most AI Startups Will Fail (Hot Take)</h2>
<p>Here’s the uncomfortable prediction:</p>
<blockquote>
<p>Most “AI agent startups” today are just prompt engineering with better UI.</p>
</blockquote>
<p>They:</p>
<ul>
<li><p>Overestimate model intelligence</p>
</li>
<li><p>Underestimate system design</p>
</li>
<li><p>Ship demos, not systems</p>
</li>
</ul>
<p>And when reliability matters…</p>
<p>They break.</p>
<hr />
<h2>When You Actually Don’t Need This</h2>
<p>Let’s not over-engineer everything.</p>
<p>You <strong>don’t need a harness</strong> if:</p>
<ul>
<li><p>It’s simple Q&amp;A</p>
</li>
<li><p>It’s formatting or rewriting</p>
</li>
<li><p>Latency matters more than correctness</p>
</li>
</ul>
<p>But the moment you need:</p>
<ul>
<li><p>Multi-step workflows</p>
</li>
<li><p>Real-world actions</p>
</li>
<li><p>High reliability</p>
</li>
</ul>
<p>You <em>need</em> this layer.</p>
<p>No shortcuts.</p>
<hr />
<h2>Where This Is Going</h2>
<p>Two things are becoming inevitable:</p>
<h3>1. Self-Improving Systems</h3>
<ul>
<li><p>Systems that learn from failures</p>
</li>
<li><p>Add constraints automatically</p>
</li>
<li><p>Improve execution over time</p>
</li>
</ul>
<h3>2. Standardized Protocols</h3>
<ul>
<li><p>Structured tool interaction</p>
</li>
<li><p>Defined execution flows</p>
</li>
<li><p>Less “hacky agent glue code”</p>
</li>
</ul>
<p>We’re moving from:</p>
<blockquote>
<p>“AI experiments”</p>
</blockquote>
<p>To:</p>
<blockquote>
<p>“AI infrastructure”</p>
</blockquote>
<hr />
<h2>Final Takeaway (Read This Twice)</h2>
<p>For the last 2 years, everyone focused on:</p>
<blockquote>
<p>Making models smarter.</p>
</blockquote>
<p>The real winners will focus on:</p>
<blockquote>
<p>Making systems more reliable.</p>
</blockquote>
<p>Because:</p>
<blockquote>
<p>Intelligence is probabilistic. Reliability is engineered.</p>
</blockquote>
<hr />
<h2>The Line That Matters</h2>
<p>If you remember nothing else, remember this:</p>
<blockquote>
<p><strong>A powerful model without a harness is a demo. A controlled system with a harness is a product.</strong></p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Open-Source LLMs: Closing the Gap or Forever Second to Closed Giants?]]></title><description><![CDATA[A year ago, this wasn’t even a debate.
If you wanted the best performance, you used a closed model. If you cared about flexibility, you experimented with open models.
Simple.
That line is getting blur]]></description><link>https://satyaki-mandal.hashnode.dev/open-source-llms-closing-the-gap-or-forever-second-to-closed-giants</link><guid isPermaLink="true">https://satyaki-mandal.hashnode.dev/open-source-llms-closing-the-gap-or-forever-second-to-closed-giants</guid><category><![CDATA[AI]]></category><category><![CDATA[agentic AI]]></category><category><![CDATA[generative ai]]></category><category><![CDATA[llm]]></category><dc:creator><![CDATA[Satyaki Mandal]]></dc:creator><pubDate>Sat, 11 Apr 2026 06:12:35 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/69d9d24dc8e5007ddb496599/0249aafd-91ec-436d-b26d-5674cc8340dc.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A year ago, this wasn’t even a debate.</p>
<p>If you wanted the best performance, you used a closed model. If you cared about flexibility, you experimented with open models.</p>
<p>Simple.</p>
<p>That line is getting blurry now.</p>
<hr />
<h2>The shift nobody is talking about properly</h2>
<p>Something weird has happened over the last 12–18 months.</p>
<p>Open models didn’t just improve — they <strong>caught up quietly</strong>.</p>
<p>Not in a “Twitter hype thread” way. Not in a “look at this cherry-picked demo” way.</p>
<p>But in actual benchmarks:</p>
<ul>
<li><p>reasoning</p>
</li>
<li><p>coding</p>
</li>
<li><p>general knowledge</p>
</li>
</ul>
<p>They’re… close. Uncomfortably close.</p>
<p>And that changes how you think about building.</p>
<hr />
<h2>But let’s not pretend the gap is gone</h2>
<p>This is where most people get it wrong.</p>
<p>They see one benchmark and go:</p>
<blockquote>
<p>“Yeah open models are basically the same now”</p>
</blockquote>
<p>Not really.</p>
<p>There are two different conversations happening:</p>
<ul>
<li><p><em>Benchmark performance</em></p>
</li>
<li><p><em>Production behavior</em></p>
</li>
</ul>
<p>And those are not the same thing.</p>
<p>Closed models still feel:</p>
<ul>
<li><p>more stable</p>
</li>
<li><p>more consistent</p>
</li>
<li><p>less likely to randomly break when things get complex</p>
</li>
</ul>
<p>If you’ve actually built something beyond a demo, you’ve seen this.</p>
<hr />
<h2>The real advantage of closed models isn’t the model</h2>
<p>This took me a while to understand.</p>
<p>The real advantage is not:</p>
<ul>
<li><p>better weights</p>
</li>
<li><p>smarter architecture</p>
</li>
</ul>
<p>It’s everything <em>around</em> the model.</p>
<p>Things like:</p>
<ul>
<li><p>massive compute</p>
</li>
<li><p>optimized inference</p>
</li>
<li><p>better tooling</p>
</li>
<li><p>constant updates</p>
</li>
</ul>
<p>You’re not just calling a model.</p>
<p>You’re calling an entire <strong>system that has been engineered at insane scale</strong>.</p>
<p>That’s very hard to compete with.</p>
<hr />
<h2>Open models are winning somewhere else</h2>
<p>And this is the part that actually matters.</p>
<p>Open models are not trying to win the same game.</p>
<p>They’re winning on:</p>
<ul>
<li><p>control</p>
</li>
<li><p>cost</p>
</li>
<li><p>flexibility</p>
</li>
</ul>
<p>If you’re building:</p>
<ul>
<li><p>internal tools</p>
</li>
<li><p>RAG pipelines</p>
</li>
<li><p>AI agents</p>
</li>
</ul>
<p>You don’t always need “the smartest model on Earth”.</p>
<p>You need:</p>
<blockquote>
<p>something that works, is predictable, and doesn’t bankrupt you.</p>
</blockquote>
<p>And that’s where open models shine.</p>
<hr />
<h2>A very practical example</h2>
<p>Let’s say you’re building a simple backend for answering questions.</p>
<p>You have two choices.</p>
<hr />
<h3>Option 1: Run an open model yourself</h3>
<pre><code class="language-python">from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_name = "mistralai/Mistral-7B-Instruct-v0.2"

tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.float16,
    device_map="auto"
)

def generate_answer(prompt):
    inputs = tokenizer(prompt, return_tensors="pt").to("cuda")

    outputs = model.generate(
        **inputs,
        max_new_tokens=200
    )

    return tokenizer.decode(outputs[0], skip_special_tokens=True)
</code></pre>
<p>You now:</p>
<ul>
<li><p>control everything</p>
</li>
<li><p>own your data</p>
</li>
<li><p>pay for infrastructure, not tokens</p>
</li>
</ul>
<p>But also:</p>
<ul>
<li><p>you manage deployment</p>
</li>
<li><p>you handle scaling</p>
</li>
<li><p>you debug weird issues at 2 AM</p>
</li>
</ul>
<hr />
<h3>Option 2: Just call an API</h3>
<pre><code class="language-python">from openai import OpenAI

client = OpenAI(api_key="YOUR_API_KEY")

def generate_answer(prompt):
    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": prompt}]
    )

    return response.choices[0].message.content
</code></pre>
<p>Done.</p>
<p>No infra. No headache.</p>
<p>But:</p>
<ul>
<li><p>you pay per request</p>
</li>
<li><p>you depend on a provider</p>
</li>
<li><p>you don’t control the system</p>
</li>
</ul>
<hr />
<h2>This is the actual trade-off</h2>
<p>Not performance vs performance.</p>
<p>It’s:</p>
<blockquote>
<p>control vs convenience</p>
</blockquote>
<p>Once you see it like this, the decision becomes clearer.</p>
<hr />
<h2>So… which one should you use?</h2>
<p>There’s no universal answer, but here’s how I think about it.</p>
<p>Use open models when:</p>
<ul>
<li><p>you care about cost at scale</p>
</li>
<li><p>you need data privacy</p>
</li>
<li><p>you want to customize behavior</p>
</li>
</ul>
<p>Use closed models when:</p>
<ul>
<li><p>you need reliability</p>
</li>
<li><p>you want to move fast</p>
</li>
<li><p>you don’t want to deal with infra</p>
</li>
</ul>
<p>And honestly, most real systems use both.</p>
<hr />
<h2>Where things are heading</h2>
<p>We’re not going toward a world where open replaces closed.</p>
<p>We’re going toward a world where:</p>
<ul>
<li><p>open models power the backbone</p>
</li>
<li><p>closed models handle the edge cases</p>
</li>
</ul>
<p>A hybrid stack.</p>
<hr />
<h2>Final thought</h2>
<p>The most interesting shift isn’t that open models are getting better.</p>
<p>It’s that they are now <strong>good enough to force a decision</strong>.</p>
<p>Before, you didn’t really have a choice.</p>
<p>Now you do.</p>
<p>And knowing <em>when to use what</em> is slowly becoming a real engineering skill.</p>
<hr />
<p><strong>Tags:</strong> LLM, Open Source, AI Systems, GenAI, Backend, Engineering</p>
]]></content:encoded></item></channel></rss>