<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>AI Programming on Yanmu</title>
        <link>https://AkuamT.github.io/en/tags/ai-programming/</link>
        <description>Recent content in AI Programming on Yanmu</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Fri, 20 Mar 2026 02:00:15 +0800</lastBuildDate><atom:link href="https://AkuamT.github.io/en/tags/ai-programming/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>The Evolution of AI Programming</title>
            <link>https://AkuamT.github.io/en/p/the-evolution-of-ai-programming/</link>
            <pubDate>Fri, 20 Mar 2026 02:00:15 +0800</pubDate>
            <guid>https://AkuamT.github.io/en/p/the-evolution-of-ai-programming/</guid>
            <description>&lt;img src=&#34;https://AkuamT.github.io/p/ai%E7%BC%96%E7%A8%8B%E8%BF%9B%E5%8C%96%E5%8F%B2/cover.svg&#34; alt=&#34;Featured image of post The Evolution of AI Programming&#34; /&gt;&lt;h1 id=&#34;-the-evolution-of-ai-programming-from-prompts-and-context-engineering-to-harness&#34;&gt;🤖 The Evolution of AI Programming: From Prompts and Context Engineering to Harness&#xA;&lt;/h1&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;As models with comparable capabilities become increasingly common, the gap in user experience between different products is actually widening.&#xA;Some products write code that can be deployed directly, while others produce code that is hard to maintain—why?&#xA;&lt;strong&gt;Because the models are the same; the difference lies in how they are used, and how to use them stably.&lt;/strong&gt;&#xA;In the AI industry, this is known as &lt;strong&gt;Harness Engineering&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;-harness-engineering-deconstructing-the-agent-into-three-layers&#34;&gt;🧠 Harness Engineering: Deconstructing the Agent into Three Layers&#xA;&lt;/h2&gt;&lt;p&gt;We divide programming Agents into three levels:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Scaffolding&lt;/strong&gt;&#xA;Responsible for all preparatory work before the AI executes a task, including the tools provisioned by the system.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Harness (Runtime Orchestration, The Core)&lt;/strong&gt;&#xA;The central dispatching hub of the entire agent.&#xA;Responsible for managing the AI&amp;rsquo;s core reasoning loop, coordinating tool calls, context management, runtime security control, and persistent storage of session data.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Context Engineering&lt;/strong&gt;&#xA;Responsible for managing the resource allocation of tokens—the smallest unit of computation for large language models processing text.&#xA;Determines which information should be retained and which should be discarded during the AI&amp;rsquo;s operation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;A stable and capable AI coding agent = One or more LLMs called + A robust Harness system.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;-harness-is-crucial-why-is-it-only-getting-popular-now&#34;&gt;⏳ Harness is Crucial, Why is it Only Getting Popular Now?&#xA;&lt;/h2&gt;&lt;h3 id=&#34;-phase-1-prompt-engineering&#34;&gt;① Phase 1: Prompt Engineering&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Core Focus: How to write a good instruction.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Role Setting&lt;/strong&gt;: Defining clear identities and responsibility boundaries for the AI.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Providing Examples&lt;/strong&gt;: Using Few-shot prompting to make the AI generate content according to a specific format and style.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Chain-of-Thought&lt;/strong&gt;: Asking the AI in the instruction to break down the problem step-by-step and deduce logically, reducing logical leaps and errors.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;-phase-2-context-engineering&#34;&gt;② Phase 2: Context Engineering&#xA;&lt;/h3&gt;&lt;p&gt;A single prompt is no longer enough—we need to &lt;strong&gt;dynamically construct the entire context environment&lt;/strong&gt; for the model.&#xA;Ensuring that every time the model makes a decision, it can accurately see all the information it needs: task files, conversation history, tool rules, knowledge base entries&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Core Concept: &lt;strong&gt;Show the model what it needs to see, and block what it shouldn&amp;rsquo;t.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;-phase-3-harness-engineering&#34;&gt;③ Phase 3: Harness Engineering&#xA;&lt;/h3&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Whenever you find the Agent making a mistake, you spend time engineering a solution so it won&amp;rsquo;t make the same mistake again.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;The model&amp;rsquo;s capabilities are sufficient, but it just won&amp;rsquo;t listen. What do we do?&#xA;&lt;strong&gt;The answer is—Harness Engineering.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Real-world Cases:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Experiment&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Condition&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Result&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;strong&gt;LangChain&lt;/strong&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Same model, optimized Harness only&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Terminal Bench 2.0: &lt;strong&gt;52.8 → 66.5&lt;/strong&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;strong&gt;Nate B Jones&lt;/strong&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Same model, same prompt, changed runtime environment only&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Coding benchmark win rate: &lt;strong&gt;42% → 78%&lt;/strong&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;strong&gt;OpenAI&lt;/strong&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Started from an empty git repo, 5 months, entirely AI Agent driven&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Produced &lt;strong&gt;~1 million lines of code&lt;/strong&gt;, &lt;strong&gt;1500 PRs&lt;/strong&gt;, zero human intervention&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;The Agent isn&amp;rsquo;t hard; the Harness is.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;-why-do-ai-tasks-fail-so-frequently&#34;&gt;💥 Why Do AI Tasks Fail So Frequently?&#xA;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;1. Trying to do it all at once&lt;/strong&gt;&#xA;Trying to finish all features in a single window results in the context window rapidly depleting, causing a steep drop in quality towards the latter half.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;2. Declaring victory too early&lt;/strong&gt;&#xA;In the later stages of complex project development, once the AI agent completes the core functions and has visible output, it directly determines the task is complete and actively terminates—even if a large number of features are unimplemented and core requirements are unmet, it will still stop.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;3. Marking features as complete too early&lt;/strong&gt;&#xA;As soon as the AI agent finishes writing a feature, it marks it as complete. It will not actively perform end-to-end full functional tests, nor will it verify whether this feature is actually usable in a real environment. &lt;strong&gt;It looks like it runs, but in reality, it&amp;rsquo;s full of hidden bugs.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;4. Mechanically copying code patterns&lt;/strong&gt;&#xA;AI will mechanically follow existing code patterns (architectural style, coding conventions), even if the pattern is wrong, and continuously amplify it throughout the project. An unconstrained AI agent will accumulate a &lt;strong&gt;massive amount of technical debt&lt;/strong&gt; in a project at extreme speeds.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;-the-four-guardrails-of-harness&#34;&gt;🛡️ The Four Guardrails of Harness&#xA;&lt;/h2&gt;&lt;h3 id=&#34;-1-context-engineering&#34;&gt;🔹 1. Context Engineering&#xA;&lt;/h3&gt;&lt;p&gt;The longer and more redundant the &lt;strong&gt;AGENTS.MD&lt;/strong&gt; file is, the lower the Agent&amp;rsquo;s task success rate, while the inference cost becomes higher.&#xA;The AGENTS.MD file should be strictly kept &lt;strong&gt;under 60 lines&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Context is a scarce resource; too much guidance will crowd out the truly important task code.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;-2-architectural-constraints-the-core&#34;&gt;🔹 2. Architectural Constraints (The Core)&#xA;&lt;/h3&gt;&lt;p&gt;Implement a &lt;strong&gt;strict layered architecture&lt;/strong&gt;—not by telling the agent &amp;ldquo;please follow the architecture&amp;rdquo; via a prompt, but by mechanically enforcing it using &lt;strong&gt;deterministic Linters and structured tests&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Embed repair guidelines directly into the Linter error messages, telling the agent how it should be fixed. &lt;strong&gt;Constraints are more effective than instructions.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;-3-feedback-loop&#34;&gt;🔹 3. Feedback Loop&#xA;&lt;/h3&gt;&lt;p&gt;In Harness, code review becomes an &lt;strong&gt;Agent-to-Agent&lt;/strong&gt; process.&#xA;Forming a standardized closed loop: &lt;strong&gt;Plan &amp;amp; Discover → Build → Verify → Fix&lt;/strong&gt;, cycling continuously to consistently purify code quality.&lt;/p&gt;&#xA;&lt;h3 id=&#34;-4-entropy-management&#34;&gt;🔹 4. Entropy Management&#xA;&lt;/h3&gt;&lt;p&gt;Over time, AI-generated code accumulates numerous issues: outdated documentation, architectural drift, styling deviations, accumulation of dead code&amp;hellip;&#xA;Letting an &lt;strong&gt;Agent maintain documentation for the Agent&lt;/strong&gt; continuously fights against entropy increase and prevents project rot.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;-conclusion&#34;&gt;🧭 Conclusion&#xA;&lt;/h2&gt;&lt;p&gt;The evolution of AI programming is essentially a &lt;strong&gt;paradigm shift from &amp;ldquo;writing good prompts&amp;rdquo; to &amp;ldquo;building good systems&amp;rdquo;&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Prompt Engineering&lt;/strong&gt; solves &amp;ldquo;how to say it&amp;rdquo;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Context Engineering&lt;/strong&gt; solves &amp;ldquo;what information to give&amp;rdquo;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Harness Engineering&lt;/strong&gt; solves &amp;ldquo;how to manage/control it&amp;rdquo;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;These three paths are not mutually exclusive but rather &lt;strong&gt;additive and progressive&lt;/strong&gt;—each layer builds on the foundation of the previous one. A truly capable AI programming product that stably outputs high-quality code must have invested serious effort across all three of these levels.&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
