<?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: Eva Clari</title>
    <description>The latest articles on DEV Community by Eva Clari (@eva_clari_289d85ecc68da48).</description>
    <link>https://dev.to/eva_clari_289d85ecc68da48</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2781430%2Fff0e183d-a895-4450-b345-70bc1b7442dd.png</url>
      <title>DEV Community: Eva Clari</title>
      <link>https://dev.to/eva_clari_289d85ecc68da48</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eva_clari_289d85ecc68da48"/>
    <language>en</language>
    <item>
      <title>The New Cost Curve of LLM APIs and What It Means for Your Side Project Budget</title>
      <dc:creator>Eva Clari</dc:creator>
      <pubDate>Fri, 23 Oct 2026 10:31:36 +0000</pubDate>
      <link>https://dev.to/eva_clari_289d85ecc68da48/the-new-cost-curve-of-llm-apis-and-what-it-means-for-your-side-project-budget-1g65</link>
      <guid>https://dev.to/eva_clari_289d85ecc68da48/the-new-cost-curve-of-llm-apis-and-what-it-means-for-your-side-project-budget-1g65</guid>
      <description>&lt;p&gt;Building an AI-powered side project used to sound expensive. You needed infrastructure, computing resources, machine learning expertise, and enough money to experiment without worrying about every API call.&lt;/p&gt;

&lt;p&gt;That picture has changed.&lt;/p&gt;

&lt;p&gt;Today, a solo developer can build a chatbot, content assistant, coding tool, research agent, or small automation product using hosted large language model (LLM) APIs. You don't need to train your own model or maintain a GPU server to get started.&lt;/p&gt;

&lt;p&gt;But there's a catch: &lt;strong&gt;making an AI prototype affordable is one thing; keeping a useful product affordable as people start using it is another.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;LLM API pricing has introduced a new kind of budgeting challenge. Your costs depend not only on which model you choose, but also on how much context you send, how long the responses are, how often users interact with your product, and how efficiently your application handles each request.&lt;/p&gt;

&lt;p&gt;If you're building a side project on a limited budget, understanding this cost curve can help you avoid paying for more AI than you actually need.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Why LLM API Costs Are Changing the Way We Build
&lt;/h2&gt;

&lt;p&gt;Traditional software often has predictable costs. You might pay a monthly hosting fee, purchase a domain, and cover database expenses.&lt;/p&gt;

&lt;p&gt;LLM APIs work differently. Many providers charge based on usage, especially the number of input and output tokens processed.&lt;/p&gt;

&lt;p&gt;Tokens are the small pieces of text that language models read and generate. They can represent complete words, parts of words, punctuation, or other text elements.&lt;/p&gt;

&lt;p&gt;Most API pricing separates three categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Input tokens:&lt;/strong&gt; The instructions, user messages, and context sent to the model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output tokens:&lt;/strong&gt; The text the model generates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Additional usage:&lt;/strong&gt; Depending on the provider, this may include cached input, image processing, audio, tool calls, or other specialized capabilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The distinction matters because input and output tokens can have different prices. A model that generates a long report may cost substantially more than one that answers a short question.&lt;/p&gt;

&lt;p&gt;Consider a simple AI writing assistant. A user asks for a product description, but your application also sends a lengthy system prompt, brand guidelines, previous conversation history, and several examples.&lt;/p&gt;

&lt;p&gt;The user sees one response. Your API bill reflects all the information processed to produce it.&lt;/p&gt;

&lt;p&gt;This is why the real cost of an LLM-powered product isn't determined by the model name alone. It's determined by the combination of model pricing and application design.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Understanding the New LLM API Cost Curve
&lt;/h2&gt;

&lt;p&gt;The biggest opportunity for small developers is that different models can serve different needs.&lt;/p&gt;

&lt;p&gt;You don't necessarily need the most capable model for every request. A lightweight model may be sufficient for classification, simple rewriting, extracting structured information, or answering straightforward questions. More capable models can be reserved for tasks involving complex reasoning, difficult coding problems, or nuanced analysis.&lt;/p&gt;

&lt;p&gt;The result is a more flexible cost curve.&lt;/p&gt;

&lt;p&gt;A practical way to think about model selection is to divide tasks into three groups:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Low-complexity tasks:&lt;/strong&gt; Categorizing support tickets, cleaning up text, generating short summaries, and extracting fields from documents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Medium-complexity tasks:&lt;/strong&gt; Drafting articles, answering questions using retrieved documents, producing marketing content, and helping users with everyday coding tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;High-complexity tasks:&lt;/strong&gt; Multi-step research, complicated debugging, complex planning, and problems that require careful reasoning across multiple sources.&lt;/p&gt;

&lt;p&gt;These categories are starting points, not fixed rules. A smaller model may perform well on a seemingly difficult task, while a larger model may be necessary for a task that looks simple but requires high accuracy.&lt;/p&gt;

&lt;p&gt;The key is to test model quality against your actual use case.&lt;/p&gt;

&lt;p&gt;A cheaper model isn't automatically better if it produces unreliable answers that require expensive retries or human correction.&lt;/p&gt;

&lt;p&gt;Likewise, an expensive model isn't automatically worth its price if users can't distinguish its output from that of a less costly alternative.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Calculate Your Monthly API Budget Before You Launch
&lt;/h2&gt;

&lt;p&gt;Let's turn the idea into a simple calculation.&lt;/p&gt;

&lt;p&gt;Suppose you're building an AI assistant that handles 1,000 requests per month. Each request uses an average of 2,000 input tokens and generates 500 output tokens.&lt;/p&gt;

&lt;p&gt;Your estimated monthly usage would be:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Monthly usage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Requests&lt;/td&gt;
&lt;td&gt;1,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Input tokens per request&lt;/td&gt;
&lt;td&gt;2,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total input tokens&lt;/td&gt;
&lt;td&gt;2 million&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output tokens per request&lt;/td&gt;
&lt;td&gt;500&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total output tokens&lt;/td&gt;
&lt;td&gt;500,000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Now suppose the model you select has an illustrative price of $0.50 per million input tokens and $2.00 per million output tokens.&lt;/p&gt;

&lt;p&gt;Your estimated API bill would be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Input: 2 × $0.50 = $1.00&lt;/li&gt;
&lt;li&gt;Output: 0.5 × $2.00 = $1.00&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Total: $2.00 per month&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These prices are hypothetical examples for demonstrating the calculation, not current quotes from a particular provider. Actual pricing varies by model, provider, region, and billing conditions.&lt;/p&gt;

&lt;p&gt;The formula is straightforward:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monthly API cost = (input tokens ÷ 1,000,000 × input price) + (output tokens ÷ 1,000,000 × output price)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For planning purposes, convert the result into your local currency and account for exchange-rate changes, taxes, and any applicable payment or billing fees.&lt;/p&gt;

&lt;p&gt;The calculation also assumes that each request makes one model call. If your application uses multiple calls for planning, tool selection, verification, and final responses, you must count those calls too.&lt;/p&gt;

&lt;p&gt;This is where seemingly inexpensive prototypes can become more costly than expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Why Your First Cost Estimate Might Be Wrong
&lt;/h2&gt;

&lt;p&gt;The biggest budgeting mistake is estimating costs using only the first prompt you test.&lt;/p&gt;

&lt;p&gt;Real users behave differently from developers testing a prototype.&lt;/p&gt;

&lt;p&gt;They ask follow-up questions, paste large documents, request multiple revisions, upload files, and expect the application to remember previous interactions.&lt;/p&gt;

&lt;p&gt;Here are four common reasons your actual API bill may be higher than expected.&lt;/p&gt;

&lt;h3&gt;
  
  
  Long conversation histories
&lt;/h3&gt;

&lt;p&gt;If your chatbot resends the entire conversation with every message, the input token count can grow with each turn.&lt;/p&gt;

&lt;p&gt;A short interaction might be inexpensive, but a long session can require considerably more processing.&lt;/p&gt;

&lt;p&gt;A practical solution is to summarize older conversation turns and retain only the information relevant to the current request.&lt;/p&gt;

&lt;h3&gt;
  
  
  Overly detailed system prompts
&lt;/h3&gt;

&lt;p&gt;A long system prompt may contain instructions that are redundant or irrelevant to most requests.&lt;/p&gt;

&lt;p&gt;Review your prompts and remove unnecessary examples, repeated instructions, and information that can be retrieved only when needed.&lt;/p&gt;

&lt;p&gt;The goal isn't to make every prompt as short as possible. It's to preserve the instructions that improve output quality while eliminating unnecessary overhead.&lt;/p&gt;

&lt;h3&gt;
  
  
  Uncontrolled output length
&lt;/h3&gt;

&lt;p&gt;A model that generates a 2,000-word answer when the user needs a short paragraph can increase your costs without improving the experience.&lt;/p&gt;

&lt;p&gt;Set reasonable output limits, provide clear length instructions, and offer users control over the depth of their responses.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multiple model calls per action
&lt;/h3&gt;

&lt;p&gt;An AI agent might call a model to understand a request, another model to select a tool, another to evaluate the result, and a final model to write the answer.&lt;/p&gt;

&lt;p&gt;That workflow can be useful, but every additional call needs a reason.&lt;/p&gt;

&lt;p&gt;For simple tasks, a single well-designed call may be enough. Reserve multi-step workflows for situations where they provide measurable value.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Five Ways to Keep Your Side Project Affordable
&lt;/h2&gt;

&lt;p&gt;You don't need a complicated infrastructure setup to control your AI spending. A few deliberate design choices can make a meaningful difference.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Start with the smallest model that meets your quality requirements
&lt;/h3&gt;

&lt;p&gt;Choose a representative set of real tasks and compare available models.&lt;/p&gt;

&lt;p&gt;Measure accuracy, response quality, latency, and cost. If a cheaper model handles a task reliably, use it instead of paying for additional capabilities you don't need.&lt;/p&gt;

&lt;p&gt;For example, an AI email assistant might use a lightweight model to classify an email and a more capable model only when a user requests a detailed response.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Use retrieval instead of sending everything
&lt;/h3&gt;

&lt;p&gt;Suppose you're building a chatbot for a collection of technical documentation.&lt;/p&gt;

&lt;p&gt;Sending the entire documentation library with every request is inefficient. Instead, retrieve the most relevant passages and send those to the model.&lt;/p&gt;

&lt;p&gt;This retrieval-augmented generation (RAG) approach can reduce unnecessary context while improving the relevance of answers.&lt;/p&gt;

&lt;p&gt;The retrieval system introduces its own costs, including storage, embeddings, and search infrastructure, so evaluate the complete workflow rather than assuming retrieval is always cheaper.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Take advantage of prompt caching where available
&lt;/h3&gt;

&lt;p&gt;Some API providers offer discounted pricing for eligible repeated input prefixes.&lt;/p&gt;

&lt;p&gt;This can be useful when your application repeatedly sends the same system instructions, policy documents, or other stable context.&lt;/p&gt;

&lt;p&gt;Caching eligibility, pricing, and minimum requirements vary by provider and model. Check the current documentation before building your budget around expected savings.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Put limits on usage
&lt;/h3&gt;

&lt;p&gt;A public AI tool can attract unexpected traffic, automated requests, or users who generate unusually long outputs.&lt;/p&gt;

&lt;p&gt;Consider implementing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Per-user request limits.&lt;/li&gt;
&lt;li&gt;Maximum input and output sizes.&lt;/li&gt;
&lt;li&gt;Daily or monthly usage quotas.&lt;/li&gt;
&lt;li&gt;Authentication and abuse protection.&lt;/li&gt;
&lt;li&gt;Spending alerts and emergency usage controls.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These safeguards are especially important if you offer a free tier.&lt;/p&gt;

&lt;p&gt;A useful product can become financially unsustainable if a small number of users consume a disproportionate share of your API budget.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Measure cost per successful task
&lt;/h3&gt;

&lt;p&gt;Total monthly spending doesn't tell the whole story.&lt;/p&gt;

&lt;p&gt;Imagine two models. One costs less per request but frequently produces unusable results. The other costs more but consistently completes the task correctly.&lt;/p&gt;

&lt;p&gt;If the cheaper model requires repeated attempts, its effective cost can be higher.&lt;/p&gt;

&lt;p&gt;Track the cost of delivering a successful result, not just the cost of an individual API call.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Build a Budget Around Your Product's Stage
&lt;/h2&gt;

&lt;p&gt;A side project doesn't need an enterprise-scale AI budget from day one.&lt;/p&gt;

&lt;p&gt;Instead, increase spending as you gather evidence that users value what you're building.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 1: Prototype&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Focus on validating one core feature. Use a small test dataset, set strict usage limits, and record token consumption from the beginning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 2: Early users&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Track average and maximum usage per user. Identify which features generate the most expensive requests and whether users return after trying the product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 3: Monetization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Calculate your variable cost per paying customer. Set subscription limits that reflect actual usage, and avoid promising unlimited access until you understand your cost distribution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 4: Growth&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Introduce routing between models, caching, better retrieval, asynchronous processing, and other optimizations where the data supports them.&lt;/p&gt;

&lt;p&gt;At every stage, the question is the same: does the additional spending produce enough value to justify itself?&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Don't Forget the Costs Beyond the API
&lt;/h2&gt;

&lt;p&gt;An affordable LLM API doesn't mean your entire application is free to operate.&lt;/p&gt;

&lt;p&gt;Your budget may also include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web hosting and serverless functions.&lt;/li&gt;
&lt;li&gt;Database and file storage.&lt;/li&gt;
&lt;li&gt;Embedding generation and vector search.&lt;/li&gt;
&lt;li&gt;Authentication, analytics, and monitoring.&lt;/li&gt;
&lt;li&gt;Payment processing and subscription management.&lt;/li&gt;
&lt;li&gt;Domain registration and email services.&lt;/li&gt;
&lt;li&gt;Taxes, currency conversion, and other billing charges.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some projects can run comfortably on free tiers during experimentation. Others need paid infrastructure much earlier.&lt;/p&gt;

&lt;p&gt;Keep API expenses separate from infrastructure costs in your budget. That makes it easier to identify whether rising expenditure comes from more users, inefficient model calls, or an entirely different part of your application.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. A Simple Rule for Pricing an AI Product
&lt;/h2&gt;

&lt;p&gt;If you plan to charge users, estimate the cost of serving a typical customer before setting your subscription price.&lt;/p&gt;

&lt;p&gt;For example, imagine a paid plan costs $10 per month and your average customer's LLM usage costs $2 monthly.&lt;/p&gt;

&lt;p&gt;That leaves $8 before hosting, payment processing, support, taxes, and other expenses.&lt;/p&gt;

&lt;p&gt;But if heavy users consume $12 in API calls, that customer generates a loss before those additional costs are included.&lt;/p&gt;

&lt;p&gt;The lesson isn't to avoid generous usage limits. It's to design pricing around realistic usage patterns.&lt;/p&gt;

&lt;p&gt;You might offer a fixed number of monthly credits, different plans for different usage levels, or a fair-use policy with transparent limits.&lt;/p&gt;

&lt;p&gt;For products where customers value predictable spending, clear usage limits can be more appealing than an unlimited plan that later requires unexpected restrictions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;The changing economics of LLM APIs have made it easier for independent developers to experiment with AI without committing to expensive infrastructure upfront.&lt;/p&gt;

&lt;p&gt;But access to affordable models is only part of the opportunity.&lt;/p&gt;

&lt;p&gt;The real advantage comes from understanding your users' needs, selecting models deliberately, minimizing unnecessary context, and monitoring the cost of every meaningful action your application performs.&lt;/p&gt;

&lt;p&gt;You don't need to predict your API bill perfectly before writing your first line of code. You need a reasonable estimate, a way to measure actual usage, and safeguards that prevent costs from growing faster than the value your product delivers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build small, measure early, and optimize what the data tells you to optimize.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That approach gives your side project a better chance of staying affordable while you turn an interesting AI experiment into something people genuinely want to use.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Why Vibe Coding Still Needs a Human Architect</title>
      <dc:creator>Eva Clari</dc:creator>
      <pubDate>Fri, 16 Oct 2026 09:47:22 +0000</pubDate>
      <link>https://dev.to/eva_clari_289d85ecc68da48/why-vibe-coding-still-needs-a-human-architect-2gib</link>
      <guid>https://dev.to/eva_clari_289d85ecc68da48/why-vibe-coding-still-needs-a-human-architect-2gib</guid>
      <description>&lt;p&gt;AI has changed the way we build software. What once required hours of writing boilerplate, debugging syntax, and connecting components can now begin with a simple conversation with an AI coding assistant.&lt;/p&gt;

&lt;p&gt;Describe an application, explain how you want it to work, and watch the code take shape. This approach, commonly known as &lt;em&gt;vibe coding&lt;/em&gt;, has made software development more accessible to beginners, entrepreneurs, and experienced developers alike.&lt;/p&gt;

&lt;p&gt;But there is an important distinction between generating code quickly and building software that works reliably in the real world.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI can help build the application. A human architect makes sure it is the right application, built on the right foundations.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Vibe Coding?
&lt;/h2&gt;

&lt;p&gt;Vibe coding is an AI-assisted development approach in which developers describe their requirements using natural language and rely on AI tools to generate, modify, and debug code.&lt;/p&gt;

&lt;p&gt;Instead of manually implementing every component, developers can focus on describing the desired outcome, reviewing the results, and refining the application through repeated interactions.&lt;/p&gt;

&lt;p&gt;For example, a developer might ask an AI tool to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build a responsive dashboard.&lt;/li&gt;
&lt;li&gt;Connect an application to a database.&lt;/li&gt;
&lt;li&gt;Create user registration and login functionality.&lt;/li&gt;
&lt;li&gt;Generate API endpoints.&lt;/li&gt;
&lt;li&gt;Fix common errors and improve the user interface.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach can significantly accelerate prototyping and reduce repetitive work. It also enables people with limited programming experience to experiment with ideas that might otherwise require a dedicated development team.&lt;/p&gt;

&lt;p&gt;However, speed does not automatically guarantee good software engineering. A prototype that works during a demonstration may still have architectural weaknesses, security vulnerabilities, or maintenance problems.&lt;/p&gt;

&lt;p&gt;That is where human architectural judgment becomes essential.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. AI Generates Code, but Architecture Defines the System
&lt;/h2&gt;

&lt;p&gt;Software architecture determines how an application is structured, how its components communicate, and how it handles changes over time.&lt;/p&gt;

&lt;p&gt;AI can generate a database schema, create frontend components, or implement an API. But without clear architectural direction, these pieces may not fit together into a coherent system.&lt;/p&gt;

&lt;p&gt;Imagine building an e-commerce application using vibe coding. The AI successfully creates product listings, a shopping cart, user accounts, and a checkout page.&lt;/p&gt;

&lt;p&gt;Everything appears to work independently.&lt;/p&gt;

&lt;p&gt;But what happens when inventory changes during checkout? How should payment failures be handled? Which service owns order status? How do you prevent duplicate transactions?&lt;/p&gt;

&lt;p&gt;These questions require decisions about data ownership, service boundaries, transaction handling, and failure recovery.&lt;/p&gt;

&lt;p&gt;A human architect considers the entire system before approving individual implementations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The lesson:&lt;/strong&gt; Use AI to accelerate implementation, but establish the architecture before allowing code generation to expand across the application.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Working Code Is Not Necessarily Production-Ready Code
&lt;/h2&gt;

&lt;p&gt;One of the biggest misconceptions about vibe coding is that an application is finished when it runs successfully.&lt;/p&gt;

&lt;p&gt;A working application is only the beginning.&lt;/p&gt;

&lt;p&gt;Production software must also be reliable, maintainable, secure, and capable of handling unexpected situations.&lt;/p&gt;

&lt;p&gt;AI-generated code may contain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inadequate input validation.&lt;/li&gt;
&lt;li&gt;Missing error-handling logic.&lt;/li&gt;
&lt;li&gt;Inefficient database queries.&lt;/li&gt;
&lt;li&gt;Unnecessary dependencies.&lt;/li&gt;
&lt;li&gt;Poor separation of responsibilities.&lt;/li&gt;
&lt;li&gt;Incomplete test coverage.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These issues may not appear during a quick demonstration. They often emerge when real users interact with the application, data volumes increase, or external services fail.&lt;/p&gt;

&lt;p&gt;A human architect evaluates the application beyond its visible functionality. They ask whether the code can be tested, whether its behavior is predictable, and whether future developers can understand and maintain it.&lt;/p&gt;

&lt;p&gt;The goal is not simply to make the software work today. It is to make sure the software can continue working tomorrow.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Security Cannot Be Left to Assumptions
&lt;/h2&gt;

&lt;p&gt;Security is one area where relying entirely on generated code can become particularly risky.&lt;/p&gt;

&lt;p&gt;Consider an application that stores customer information. An AI assistant might generate a login system and database integration that appear functional, but the implementation still needs to be evaluated for authentication flaws, authorization gaps, exposed credentials, and improper handling of sensitive information.&lt;/p&gt;

&lt;p&gt;A human architect must establish security requirements before implementation begins.&lt;/p&gt;

&lt;p&gt;Important questions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who can access each resource?&lt;/li&gt;
&lt;li&gt;How are user permissions enforced?&lt;/li&gt;
&lt;li&gt;Where are API keys and other secrets stored?&lt;/li&gt;
&lt;li&gt;How is sensitive information protected?&lt;/li&gt;
&lt;li&gt;What happens when a request contains malicious input?&lt;/li&gt;
&lt;li&gt;Are third-party dependencies trustworthy and up to date?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security should not be treated as a final checklist added immediately before deployment. It needs to influence architectural decisions from the beginning.&lt;/p&gt;

&lt;p&gt;AI can assist with threat modeling, security testing, and code reviews, but its recommendations must be independently verified.&lt;/p&gt;

&lt;p&gt;The responsibility for approving the system's security cannot be delegated to the tool that generated the code.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Human Architects Understand Business Requirements
&lt;/h2&gt;

&lt;p&gt;AI tools respond to the instructions they receive. They cannot reliably resolve every ambiguity in a business requirement without additional context.&lt;/p&gt;

&lt;p&gt;Suppose a company asks for an employee training management platform.&lt;/p&gt;

&lt;p&gt;An AI assistant might quickly generate course listings, employee dashboards, registration forms, and reporting pages.&lt;/p&gt;

&lt;p&gt;But the actual business requirements could be much more complex.&lt;/p&gt;

&lt;p&gt;Should managers approve registrations? Can employees access only assigned courses? How should training completion be recorded? What happens when an employee changes departments? Which reports should administrators receive?&lt;/p&gt;

&lt;p&gt;These decisions influence the application's data model, permissions, workflows, and integrations.&lt;/p&gt;

&lt;p&gt;A human architect works with stakeholders to translate business objectives into technical requirements. They identify missing information, challenge assumptions, and prioritize the features that deliver meaningful value.&lt;/p&gt;

&lt;p&gt;Without this step, developers risk building an application that looks impressive but solves the wrong problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good architecture begins with understanding the problem, not generating the solution.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Scalability and Maintainability Require Long-Term Thinking
&lt;/h2&gt;

&lt;p&gt;An application that serves ten users may not need the same architecture as one expected to serve thousands.&lt;/p&gt;

&lt;p&gt;During early development, it can be tempting to accept whatever implementation an AI assistant produces because the immediate result looks good.&lt;/p&gt;

&lt;p&gt;However, early decisions can influence performance, infrastructure costs, deployment complexity, and the effort required to introduce new features.&lt;/p&gt;

&lt;p&gt;A human architect considers questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Will the application need to support more users over time?&lt;/li&gt;
&lt;li&gt;Which components are likely to change frequently?&lt;/li&gt;
&lt;li&gt;Can modules be tested independently?&lt;/li&gt;
&lt;li&gt;Where could performance bottlenecks develop?&lt;/li&gt;
&lt;li&gt;How will database changes be managed?&lt;/li&gt;
&lt;li&gt;Can the application be monitored and recovered after failures?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not every project needs microservices, complex infrastructure, or an elaborate design pattern. Sometimes a well-structured monolith is the better choice.&lt;/p&gt;

&lt;p&gt;The architect's job is to select an approach that fits the application's actual needs rather than adding complexity unnecessarily.&lt;/p&gt;

&lt;p&gt;AI can suggest possible designs, compare trade-offs, and help implement the chosen approach. Human judgment ensures that the design remains appropriate for the business and its future direction.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. AI Makes Code Review More Important, Not Less
&lt;/h2&gt;

&lt;p&gt;When AI can generate large amounts of code quickly, reviewing that code becomes a critical part of the development process.&lt;/p&gt;

&lt;p&gt;A developer may receive a working implementation in minutes, but understanding its assumptions, dependencies, and potential side effects still takes effort.&lt;/p&gt;

&lt;p&gt;This creates a new challenge: code generation can become faster than an engineering team's ability to validate the results.&lt;/p&gt;

&lt;p&gt;A responsible vibe-coding workflow should include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Define the requirements:&lt;/strong&gt; Specify expected behavior, constraints, and acceptance criteria.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review the implementation plan:&lt;/strong&gt; Understand which components will change and why.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate code in small increments:&lt;/strong&gt; Avoid making large, interconnected changes in a single step.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run automated tests:&lt;/strong&gt; Use unit, integration, and regression tests where appropriate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inspect the code changes:&lt;/strong&gt; Review the actual differences rather than trusting the AI's explanation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check security and performance:&lt;/strong&gt; Evaluate risks relevant to the application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validate before deployment:&lt;/strong&gt; Confirm that the implementation satisfies the requirements in a suitable test environment.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This process does not eliminate the speed advantage of AI. It makes that advantage more sustainable.&lt;/p&gt;

&lt;p&gt;The objective is to reduce the time required to deliver reliable software, not merely to maximize the amount of code generated.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. The Best Developers Will Combine AI Skills With Engineering Fundamentals
&lt;/h2&gt;

&lt;p&gt;Vibe coding is changing how developers work, but it does not eliminate the value of understanding software engineering.&lt;/p&gt;

&lt;p&gt;Developers still benefit from knowledge of databases, APIs, networking, data structures, testing, version control, system design, and application security.&lt;/p&gt;

&lt;p&gt;These fundamentals make it easier to recognize when generated code is incorrect, evaluate competing solutions, and debug problems that AI cannot resolve independently.&lt;/p&gt;

&lt;p&gt;AI literacy is equally important. Developers need to understand how to communicate requirements clearly, provide relevant context, evaluate AI-generated output, and recognize the limitations of automated assistance.&lt;/p&gt;

&lt;p&gt;For professionals looking to strengthen their understanding of artificial intelligence and its practical applications, &lt;a href="https://www.edstellar.com/course/ai-for-everyone-training" rel="noopener noreferrer"&gt;Edstellar's AI for Everyone Training&lt;/a&gt; is a useful learning resource to explore.&lt;/p&gt;

&lt;p&gt;Combining AI knowledge with sound technical fundamentals helps developers use these tools more effectively while retaining control over important engineering decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Practical Framework for Human-Led Vibe Coding
&lt;/h2&gt;

&lt;p&gt;The most effective approach is neither to reject AI coding tools nor to trust them blindly. It is to establish clear boundaries between automated implementation and human decision-making.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Development activity&lt;/th&gt;
&lt;th&gt;AI's role&lt;/th&gt;
&lt;th&gt;Human architect's role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Requirements&lt;/td&gt;
&lt;td&gt;Help clarify and organize requirements&lt;/td&gt;
&lt;td&gt;Define business goals and priorities&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;System design&lt;/td&gt;
&lt;td&gt;Suggest architectures and trade-offs&lt;/td&gt;
&lt;td&gt;Select and approve the design&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Implementation&lt;/td&gt;
&lt;td&gt;Generate and refine code&lt;/td&gt;
&lt;td&gt;Guide implementation and review changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Testing&lt;/td&gt;
&lt;td&gt;Create tests and identify potential defects&lt;/td&gt;
&lt;td&gt;Validate coverage and interpret results&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security&lt;/td&gt;
&lt;td&gt;Assist with security analysis&lt;/td&gt;
&lt;td&gt;Define security requirements and verify controls&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment&lt;/td&gt;
&lt;td&gt;Help automate deployment workflows&lt;/td&gt;
&lt;td&gt;Approve release readiness and manage risk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maintenance&lt;/td&gt;
&lt;td&gt;Assist with debugging and refactoring&lt;/td&gt;
&lt;td&gt;Preserve architectural integrity over time&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This division of responsibility allows teams to benefit from AI's speed without surrendering the judgment required to build dependable software.&lt;/p&gt;

&lt;p&gt;The level of oversight should also reflect the risk involved. A small personal project may tolerate more experimentation than a payment platform, healthcare application, or enterprise system handling confidential data.&lt;/p&gt;

&lt;p&gt;The higher the potential impact of failure, the stronger the verification process needs to be.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion: AI Is the Accelerator, Architecture Is the Direction
&lt;/h2&gt;

&lt;p&gt;Vibe coding has opened new possibilities for software development. It helps developers experiment faster, reduces repetitive implementation work, and makes it easier to turn ideas into working prototypes.&lt;/p&gt;

&lt;p&gt;But generating an application is not the same as engineering a dependable system.&lt;/p&gt;

&lt;p&gt;Architecture determines how the pieces fit together. Security protects users and their data. Testing provides evidence that the application behaves as expected. Human judgment connects technical decisions to real business requirements.&lt;/p&gt;

&lt;p&gt;These responsibilities remain essential, regardless of how quickly AI can produce code.&lt;/p&gt;

&lt;p&gt;The future of software development is unlikely to be a choice between human engineers and AI tools. It will increasingly depend on how effectively the two work together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The developers who succeed with vibe coding will not necessarily be those who generate the most code. They will be those who know what to build, how to structure it, what to verify, and when to question the output.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because in software engineering, speed creates possibilities. Good architecture turns those possibilities into reliable products.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Choosing Between a Terminal Agent and an In-Editor Agent for Your Team</title>
      <dc:creator>Eva Clari</dc:creator>
      <pubDate>Fri, 09 Oct 2026 09:47:06 +0000</pubDate>
      <link>https://dev.to/eva_clari_289d85ecc68da48/choosing-between-a-terminal-agent-and-an-in-editor-agent-for-your-team-3jp4</link>
      <guid>https://dev.to/eva_clari_289d85ecc68da48/choosing-between-a-terminal-agent-and-an-in-editor-agent-for-your-team-3jp4</guid>
      <description>&lt;p&gt;AI coding agents are changing how development teams write, debug, test, and maintain software. Tasks that once required hours of manual work can now be completed with the help of agents that understand code, suggest changes, execute commands, and assist with complex development workflows.&lt;/p&gt;

&lt;p&gt;However, choosing the right AI coding agent is not as simple as picking the most popular tool. One important decision teams face is whether to use a &lt;strong&gt;terminal-based agent or an in-editor agent&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Both approaches can improve developer productivity, but they support different workflows. A terminal agent is often suited to command-line operations, repository-wide changes, and automated tasks, while an in-editor agent offers a more visual and interactive coding experience.&lt;/p&gt;

&lt;p&gt;So, which approach makes more sense for your team?&lt;/p&gt;

&lt;p&gt;Let's explore the differences, benefits, limitations, and practical considerations that can help you make the right decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is a Terminal Agent?
&lt;/h2&gt;

&lt;p&gt;A terminal agent is an AI-powered coding assistant that operates through a command-line interface. Developers interact with it using text prompts, shell commands, and repository-level instructions.&lt;/p&gt;

&lt;p&gt;Instead of limiting assistance to the file currently open in an editor, a terminal agent can often work across multiple files, inspect project structures, run tests, and execute supported development commands.&lt;/p&gt;

&lt;p&gt;For example, a developer might ask an agent to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identify and fix failing unit tests.&lt;/li&gt;
&lt;li&gt;Refactor a function across multiple files.&lt;/li&gt;
&lt;li&gt;Investigate a bug by examining logs and source code.&lt;/li&gt;
&lt;li&gt;Generate documentation for an existing repository.&lt;/li&gt;
&lt;li&gt;Run a test suite and explain the failures.&lt;/li&gt;
&lt;li&gt;Prepare changes for a code review.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Depending on the tool and its permissions, the agent may perform these tasks directly or propose changes for the developer to approve.&lt;/p&gt;

&lt;p&gt;Terminal agents can be particularly useful for experienced developers who already rely on command-line tools, Git, automated testing, and scripting.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is an In-Editor Agent?
&lt;/h2&gt;

&lt;p&gt;An in-editor agent works within an integrated development environment (IDE) or code editor. It brings AI assistance closer to the developer's everyday coding activities.&lt;/p&gt;

&lt;p&gt;Rather than switching between a terminal and a separate interface, developers can ask questions, generate code, review suggested changes, and iterate on implementations within their existing workspace.&lt;/p&gt;

&lt;p&gt;Common use cases include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generating functions and boilerplate code.&lt;/li&gt;
&lt;li&gt;Explaining unfamiliar code.&lt;/li&gt;
&lt;li&gt;Suggesting improvements to existing implementations.&lt;/li&gt;
&lt;li&gt;Debugging errors while working on a file.&lt;/li&gt;
&lt;li&gt;Creating unit tests for selected functions.&lt;/li&gt;
&lt;li&gt;Applying changes across files when the tool supports agentic editing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In-editor agents can also provide contextual assistance by using the currently open files, selected code, project structure, and other information made available by the editor.&lt;/p&gt;

&lt;p&gt;This makes them appealing to developers who prefer visual feedback and want to review AI-generated changes as part of their normal coding process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Terminal Agent vs. In-Editor Agent: Key Differences
&lt;/h2&gt;

&lt;p&gt;Although both approaches use AI to assist with software development, their interfaces and workflows differ.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Factor&lt;/th&gt;
&lt;th&gt;Terminal Agent&lt;/th&gt;
&lt;th&gt;In-Editor Agent&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Primary interface&lt;/td&gt;
&lt;td&gt;Command line&lt;/td&gt;
&lt;td&gt;IDE or code editor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Typical workflow&lt;/td&gt;
&lt;td&gt;Commands, repository tasks, scripts&lt;/td&gt;
&lt;td&gt;Interactive coding and visual review&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repository-wide changes&lt;/td&gt;
&lt;td&gt;Useful for multi-file operations, depending on tool capabilities&lt;/td&gt;
&lt;td&gt;Also possible with agents that support multi-file editing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code review&lt;/td&gt;
&lt;td&gt;Often through diffs and terminal-based Git workflows&lt;/td&gt;
&lt;td&gt;Often integrated into the editor's diff and review interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Automation&lt;/td&gt;
&lt;td&gt;Well suited to scripts and repeatable command-line workflows&lt;/td&gt;
&lt;td&gt;Depends on editor integrations and supported automation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learning curve&lt;/td&gt;
&lt;td&gt;May be steeper for developers unfamiliar with terminals&lt;/td&gt;
&lt;td&gt;Often easier for developers comfortable with visual editors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best-fit scenarios&lt;/td&gt;
&lt;td&gt;Repository maintenance, testing, scripted workflows&lt;/td&gt;
&lt;td&gt;Day-to-day coding, exploration, and interactive debugging&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The distinction is not absolute. Modern agents can overlap significantly in their capabilities. The more useful question is how each tool fits your team's existing development workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Should Your Team Choose a Terminal Agent?
&lt;/h2&gt;

&lt;p&gt;A terminal agent is worth considering when your team regularly performs tasks that extend beyond writing code in an individual file.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. You Work Across Large Codebases
&lt;/h3&gt;

&lt;p&gt;Large repositories often contain interconnected modules, shared dependencies, configuration files, tests, and documentation.&lt;/p&gt;

&lt;p&gt;When investigating an issue, developers may need to examine several parts of the project before identifying the root cause.&lt;/p&gt;

&lt;p&gt;A terminal agent that supports repository-wide context can help trace dependencies, inspect relevant files, and propose coordinated changes.&lt;/p&gt;

&lt;p&gt;For example, updating a shared API response structure may require changes to application logic, tests, documentation, and related components. A repository-oriented workflow can make these changes easier to coordinate.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Your Team Relies on Automation
&lt;/h3&gt;

&lt;p&gt;Teams with mature development workflows frequently use scripts for testing, linting, formatting, building, and deployment preparation.&lt;/p&gt;

&lt;p&gt;Terminal agents can fit naturally into these workflows because they operate close to the tools developers already use.&lt;/p&gt;

&lt;p&gt;They can help diagnose failed commands, generate scripts, prepare repetitive maintenance tasks, and support automated checks where the selected agent and environment permit it.&lt;/p&gt;

&lt;p&gt;However, access to a terminal does not automatically make an agent safe for unattended execution. Destructive commands and production-related operations should remain subject to appropriate controls.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. You Need Repeatable Repository Maintenance
&lt;/h3&gt;

&lt;p&gt;Consider a team maintaining dozens of services that use similar dependencies or coding conventions.&lt;/p&gt;

&lt;p&gt;Updating configuration files, identifying deprecated APIs, or preparing migration changes can involve repetitive work across many repositories.&lt;/p&gt;

&lt;p&gt;A terminal-based workflow can make it easier to standardize these tasks and combine them with version control and testing.&lt;/p&gt;

&lt;p&gt;For teams handling frequent maintenance work, this can be a meaningful productivity advantage.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Should Your Team Choose an In-Editor Agent?
&lt;/h2&gt;

&lt;p&gt;An in-editor agent may be the better starting point when most development work happens interactively inside an IDE.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Developers Need Immediate Feedback
&lt;/h3&gt;

&lt;p&gt;During implementation, developers frequently move between writing code, reviewing suggestions, testing assumptions, and fixing errors.&lt;/p&gt;

&lt;p&gt;An in-editor agent keeps these activities close together.&lt;/p&gt;

&lt;p&gt;For example, a developer building a new authentication function can ask the agent to explain an unfamiliar library, suggest an implementation, generate tests, and revise the code based on feedback.&lt;/p&gt;

&lt;p&gt;The developer can inspect the resulting changes without leaving the editor's normal workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Your Team Has Different Experience Levels
&lt;/h3&gt;

&lt;p&gt;Developers have different levels of familiarity with command-line tools and AI-assisted development.&lt;/p&gt;

&lt;p&gt;An editor-integrated experience may be easier for junior developers to adopt because it builds on a familiar interface.&lt;/p&gt;

&lt;p&gt;It can also help experienced developers explore unfamiliar frameworks or understand legacy code more quickly.&lt;/p&gt;

&lt;p&gt;Still, ease of use should not replace code review. Developers need to understand what the agent changes, why it makes those changes, and whether the resulting implementation meets project requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Code Review Is Part of Everyday Development
&lt;/h3&gt;

&lt;p&gt;Visual diffs, inline suggestions, and file navigation can make reviewing AI-generated changes more convenient.&lt;/p&gt;

&lt;p&gt;An in-editor agent can help developers inspect a proposed implementation, identify potential edge cases, and refine code before committing it.&lt;/p&gt;

&lt;p&gt;This is particularly useful when teams want AI assistance without sacrificing developer oversight.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five Factors to Consider Before Making a Decision
&lt;/h2&gt;

&lt;p&gt;Choosing an agent should be a team-level decision rather than an individual preference alone. Evaluate these five factors before standardizing on a tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Existing Development Workflow
&lt;/h3&gt;

&lt;p&gt;Start by examining how developers currently work.&lt;/p&gt;

&lt;p&gt;Do they spend most of their time inside an IDE? Do they frequently execute scripts, inspect logs, and run complex command-line operations?&lt;/p&gt;

&lt;p&gt;Choose an agent that complements these habits instead of forcing everyone to adopt an entirely new workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Project Complexity
&lt;/h3&gt;

&lt;p&gt;A small application may benefit most from quick code generation, contextual explanations, and interactive debugging.&lt;/p&gt;

&lt;p&gt;A large monorepo may require broader repository understanding, coordinated multi-file edits, and extensive testing.&lt;/p&gt;

&lt;p&gt;Evaluate how well each agent handles your actual codebase rather than relying exclusively on product demonstrations.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Security and Permissions
&lt;/h3&gt;

&lt;p&gt;AI agents can introduce security and operational risks when given excessive access.&lt;/p&gt;

&lt;p&gt;Before deployment, establish clear rules for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access to source code and confidential information.&lt;/li&gt;
&lt;li&gt;Approval of file modifications and shell commands.&lt;/li&gt;
&lt;li&gt;Handling of credentials, environment variables, and secrets.&lt;/li&gt;
&lt;li&gt;Access to external services and network resources.&lt;/li&gt;
&lt;li&gt;Review and approval of changes before merging.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use least-privilege permissions, protected branches, and human approval for sensitive operations. The precise controls available will depend on the agent and its execution environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Integration With Existing Tools
&lt;/h3&gt;

&lt;p&gt;An agent should work with your team's version control, testing framework, editor, and code review process.&lt;/p&gt;

&lt;p&gt;Check whether it supports the languages, frameworks, repository structure, and development tools your team actually uses.&lt;/p&gt;

&lt;p&gt;Also consider how easily developers can share instructions, configure project-specific rules, and maintain consistent practices across the team.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Measurable Productivity
&lt;/h3&gt;

&lt;p&gt;Do not evaluate AI agents only by how quickly they generate code.&lt;/p&gt;

&lt;p&gt;Measure whether they help developers deliver reliable software with less unnecessary work.&lt;/p&gt;

&lt;p&gt;Useful metrics include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Time required to complete representative development tasks.&lt;/li&gt;
&lt;li&gt;Test pass rates after AI-assisted changes.&lt;/li&gt;
&lt;li&gt;Number of defects discovered during review.&lt;/li&gt;
&lt;li&gt;Time spent correcting AI-generated code.&lt;/li&gt;
&lt;li&gt;Developer satisfaction and adoption.&lt;/li&gt;
&lt;li&gt;Review time and rework required before merging.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A tool that generates code quickly but creates additional debugging and review work may not deliver the productivity gains your team expects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can Your Team Use Both?
&lt;/h2&gt;

&lt;p&gt;Yes. In many development environments, using both terminal and in-editor agents can be more effective than choosing only one.&lt;/p&gt;

&lt;p&gt;An in-editor agent can support implementation, explain unfamiliar code, and help developers iterate on individual changes.&lt;/p&gt;

&lt;p&gt;A terminal agent can then assist with repository-wide analysis, test execution, scripted maintenance, and other tasks that benefit from command-line access.&lt;/p&gt;

&lt;p&gt;Consider a practical workflow for introducing a new feature:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Explore:&lt;/strong&gt; Use an in-editor agent to understand the relevant modules and plan the implementation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implement:&lt;/strong&gt; Generate or refine code and tests within the editor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validate:&lt;/strong&gt; Use terminal commands to run tests, linting, and other project checks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review:&lt;/strong&gt; Inspect the Git diff and verify that the changes meet the requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Finalize:&lt;/strong&gt; Commit and merge only after the required checks and approvals are complete.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This approach gives developers flexibility while maintaining a consistent quality-control process.&lt;/p&gt;

&lt;p&gt;The goal is not to maximize the number of AI tools in your development environment. It is to use the right tool for each task without creating unnecessary complexity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Mistakes Teams Should Avoid
&lt;/h2&gt;

&lt;p&gt;Even a capable coding agent can create problems when teams adopt it without clear expectations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choosing based on popularity alone:&lt;/strong&gt; A widely used tool may not fit your codebase, preferred workflow, or security requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Giving agents excessive permissions:&lt;/strong&gt; Start with limited access and expand it only when there is a clear need.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skipping tests and code review:&lt;/strong&gt; AI-generated code can contain logic errors, outdated assumptions, security weaknesses, and incomplete implementations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Measuring only code-generation speed:&lt;/strong&gt; Include testing, review, debugging, and rework in productivity evaluations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ignoring team consistency:&lt;/strong&gt; Shared instructions, documented conventions, and agreed review standards help developers use agents more consistently.&lt;/p&gt;

&lt;p&gt;Avoiding these mistakes helps teams focus on sustainable improvements rather than short-term gains.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Choosing between a terminal agent and an in-editor agent depends on how your team develops, tests, reviews, and maintains software.&lt;/p&gt;

&lt;p&gt;A terminal agent is a strong candidate for repository-level work, scripted tasks, and workflows built around command-line tools. An in-editor agent is a natural fit for interactive implementation, contextual assistance, and visual code review.&lt;/p&gt;

&lt;p&gt;Neither approach is universally better. Both can be valuable, and many teams will benefit from combining them.&lt;/p&gt;

&lt;p&gt;Start with a small pilot. Select a few representative tasks, evaluate both approaches against the same criteria, and measure the quality of the final results—not just the speed of the initial output.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The best AI coding agent is the one that helps your team ship reliable software more efficiently while keeping developers in control of the code.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Repo-Aware Agents: How Persistent Codebase Memory Changes What AI Can Refactor</title>
      <dc:creator>Eva Clari</dc:creator>
      <pubDate>Tue, 29 Sep 2026 10:19:37 +0000</pubDate>
      <link>https://dev.to/eva_clari_289d85ecc68da48/-repo-aware-agents-how-persistent-codebase-memory-changes-what-ai-can-refactor-5552</link>
      <guid>https://dev.to/eva_clari_289d85ecc68da48/-repo-aware-agents-how-persistent-codebase-memory-changes-what-ai-can-refactor-5552</guid>
      <description>&lt;p&gt;AI-powered coding tools are changing how developers write, review, and maintain software. From generating boilerplate code to fixing bugs and suggesting optimizations, AI assistants have become valuable parts of modern development workflows. However, one challenge remains: understanding the entire codebase rather than treating every coding task as an isolated request.&lt;/p&gt;

&lt;p&gt;This is where repo-aware agents and persistent codebase memory come into play.&lt;/p&gt;

&lt;p&gt;Instead of simply responding to the code currently visible in a prompt, repo-aware agents aim to understand a repository's architecture, dependencies, coding conventions, historical decisions, and existing implementation patterns. By retaining useful context across multiple tasks, these agents can make more informed decisions about what to refactor, how to implement changes, and which parts of a system should remain untouched.&lt;/p&gt;

&lt;p&gt;For development teams working with large, complex repositories, this approach could significantly change how AI-assisted refactoring works.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are Repo-Aware Agents?
&lt;/h2&gt;

&lt;p&gt;Repo-aware agents are AI systems designed to work with a software repository as a connected environment rather than a collection of independent files.&lt;/p&gt;

&lt;p&gt;Traditional AI coding assistants often rely on the immediate prompt, selected files, or a limited context window. While this works well for straightforward tasks, it becomes less effective when a change requires understanding relationships across multiple modules, services, configuration files, and tests.&lt;/p&gt;

&lt;p&gt;Repo-aware agents attempt to bridge this gap by collecting and retrieving relevant information about the codebase.&lt;/p&gt;

&lt;p&gt;Their capabilities may include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understanding relationships between files, modules, and functions.&lt;/li&gt;
&lt;li&gt;Identifying dependencies and potential side effects.&lt;/li&gt;
&lt;li&gt;Recognizing established coding conventions and architectural patterns.&lt;/li&gt;
&lt;li&gt;Retrieving information from previous development tasks.&lt;/li&gt;
&lt;li&gt;Using test results and repository history to guide modifications.&lt;/li&gt;
&lt;li&gt;Identifying areas of technical debt and potential refactoring opportunities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, consider a developer asking an AI agent to refactor an authentication service. A basic coding assistant might focus on the selected authentication file. A repo-aware agent could also investigate how authentication tokens are validated, which services depend on the existing implementation, how errors are handled, and which tests cover related behavior.&lt;/p&gt;

&lt;p&gt;This broader understanding helps the agent evaluate a proposed change within the context of the entire system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Persistent Codebase Memory Matters
&lt;/h2&gt;

&lt;p&gt;A repository can contain years of development decisions, workarounds, architectural compromises, and undocumented assumptions. Developers who have worked on a project for months gradually build an understanding of these details. An AI assistant that starts every task with limited context must repeatedly rediscover them.&lt;/p&gt;

&lt;p&gt;Persistent codebase memory attempts to solve this problem.&lt;/p&gt;

&lt;p&gt;Rather than relying exclusively on the current conversation, an agent can maintain or retrieve useful information about the repository across multiple interactions. Depending on the implementation, this memory may include architectural summaries, dependency relationships, previous debugging findings, coding standards, or explanations of why specific design decisions were made.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Maintaining Architectural Context
&lt;/h3&gt;

&lt;p&gt;Large applications rarely operate as isolated components. A change to a database model might affect API responses, background jobs, validation logic, and frontend components.&lt;/p&gt;

&lt;p&gt;Persistent memory can help an agent recognize these relationships before proposing a modification.&lt;/p&gt;

&lt;p&gt;For instance, if a developer requests a change to a customer data model, the agent may identify relevant API endpoints, serialization logic, database migrations, and integration tests. This reduces the likelihood of making a locally correct change that creates problems elsewhere.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Remembering Previous Decisions
&lt;/h3&gt;

&lt;p&gt;Not every unusual implementation is accidental technical debt.&lt;/p&gt;

&lt;p&gt;A codebase might contain a specific caching strategy because of infrastructure limitations, a custom retry mechanism because of an unreliable external service, or a legacy interface that must remain compatible with existing customers.&lt;/p&gt;

&lt;p&gt;Without this context, an AI agent could recommend a seemingly cleaner implementation that breaks an important requirement.&lt;/p&gt;

&lt;p&gt;Persistent memory can preserve explanations of these decisions, allowing the agent to distinguish between code that needs improvement and code that exists for a valid reason.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Reducing Repeated Investigation
&lt;/h3&gt;

&lt;p&gt;Developers frequently investigate the same areas of a repository while fixing related bugs or implementing similar features.&lt;/p&gt;

&lt;p&gt;An agent that can retrieve previous findings may avoid repeating expensive exploration. Instead, it can use earlier dependency maps, test discoveries, and architectural notes to focus on the current task.&lt;/p&gt;

&lt;p&gt;The benefit is not simply faster code generation. It is a more efficient development process in which the agent spends less effort rediscovering context and more effort evaluating solutions.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Repo-Aware Agents Change Refactoring
&lt;/h2&gt;

&lt;p&gt;Refactoring involves improving a system's internal structure without changing its externally observable behavior. This requires more than generating syntactically correct code. It requires understanding dependencies, preserving contracts, and validating assumptions.&lt;/p&gt;

&lt;p&gt;Persistent repository memory can influence several stages of the refactoring process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Understanding the Impact of Changes
&lt;/h3&gt;

&lt;p&gt;Before modifying a function, an agent needs to understand how that function is used.&lt;/p&gt;

&lt;p&gt;A repository-aware workflow can examine callers, related modules, interface contracts, test coverage, and dependency relationships. With persistent memory, the agent may also retrieve previously identified integration points or compatibility requirements.&lt;/p&gt;

&lt;p&gt;This broader context can help determine whether a proposed refactor should remain local or requires coordinated changes across several components.&lt;/p&gt;

&lt;h3&gt;
  
  
  Recognizing Repeated Patterns
&lt;/h3&gt;

&lt;p&gt;As repositories grow, similar functionality often appears in multiple places. Error handling, authentication checks, logging, validation, and data transformation may be implemented differently across modules.&lt;/p&gt;

&lt;p&gt;A repo-aware agent can search for these patterns and identify opportunities to consolidate duplicated logic.&lt;/p&gt;

&lt;p&gt;For example, imagine that five API endpoints implement slightly different versions of the same input-validation procedure. The agent could identify the common behavior, examine the differences, and propose a shared validation utility.&lt;/p&gt;

&lt;p&gt;However, consolidation should not be automatic. Some differences may reflect distinct business rules. Repository context helps the agent investigate those differences before recommending a shared implementation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Preserving Existing Behavior
&lt;/h3&gt;

&lt;p&gt;One of the biggest risks in automated refactoring is unintentionally changing behavior that existing users or services depend on.&lt;/p&gt;

&lt;p&gt;Persistent memory can help an agent identify relevant assumptions, compatibility constraints, and previously encountered edge cases. Combined with automated tests and static analysis, this information can improve the quality of its recommendations.&lt;/p&gt;

&lt;p&gt;Still, memory alone cannot guarantee correctness. Every significant refactor requires validation through tests, code review, and, where appropriate, integration or performance testing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Supporting Multi-Step Refactoring
&lt;/h3&gt;

&lt;p&gt;Some refactoring projects cannot be completed safely in a single operation.&lt;/p&gt;

&lt;p&gt;A team might need to separate a tightly coupled module into smaller components, replace an outdated library, or gradually migrate an application to a new architecture.&lt;/p&gt;

&lt;p&gt;These changes require the agent to understand earlier modifications and maintain a consistent direction across multiple tasks.&lt;/p&gt;

&lt;p&gt;Persistent memory can provide continuity by recording completed steps, unresolved issues, architectural decisions, and the remaining migration work. This makes it easier to approach refactoring as a sequence of coordinated changes rather than unrelated code-generation requests.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Persistent Memory Works in Practice
&lt;/h2&gt;

&lt;p&gt;Repo-aware agents can implement persistent memory through several complementary techniques.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repository indexing:&lt;/strong&gt; Source files, symbols, documentation, and dependency relationships are indexed to help retrieve relevant context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Semantic retrieval:&lt;/strong&gt; Embedding-based search can locate conceptually related code even when the exact keywords are unknown.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Symbol and dependency analysis:&lt;/strong&gt; Abstract syntax trees, language servers, and static analysis tools can identify definitions, references, imports, and call relationships.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repository history:&lt;/strong&gt; Commit messages, pull requests, and change history can provide clues about why code evolved in a particular direction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structured memory:&lt;/strong&gt; The agent may retain concise architectural summaries, important constraints, coding conventions, and findings from earlier tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Validation feedback:&lt;/strong&gt; Test failures, linting results, and build errors can help guide subsequent changes.&lt;/p&gt;

&lt;p&gt;These techniques serve different purposes. Semantic search helps discover relevant information, while static analysis provides more precise structural relationships. Repository history supplies historical context, and structured memory helps preserve knowledge that may not be obvious from the current source code.&lt;/p&gt;

&lt;p&gt;A reliable implementation combines these sources instead of treating any single retrieval mechanism as sufficient.&lt;/p&gt;

&lt;p&gt;For teams exploring the broader ecosystem, understanding &lt;a href="https://www.edstellar.com/blog/ai-agent-frameworks" rel="noopener noreferrer"&gt;AI agent frameworks and their capabilities&lt;/a&gt; can provide useful context for evaluating the tools, orchestration patterns, and architectural approaches used to build intelligent development agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Practical Example: Refactoring a Legacy Service
&lt;/h2&gt;

&lt;p&gt;Consider an e-commerce application with a legacy order-processing service.&lt;/p&gt;

&lt;p&gt;Over several years, the service has accumulated duplicated validation logic, tightly coupled payment operations, and inconsistent error handling. The team wants to separate payment processing from order management without disrupting existing transactions.&lt;/p&gt;

&lt;p&gt;A basic AI assistant might receive the service file and generate a cleaner implementation. Although the result could look well structured, it might overlook background workers, webhook handlers, database transactions, or external integrations.&lt;/p&gt;

&lt;p&gt;A repo-aware agent could approach the same task differently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Map the existing architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The agent identifies the order-processing module, payment gateway integration, database models, API endpoints, event handlers, and relevant tests.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Retrieve historical context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It examines available documentation, commit history, and previously recorded design decisions to understand compatibility requirements and known edge cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Identify refactoring opportunities&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The agent identifies duplicated validation logic and responsibilities that could be separated into smaller modules. It also distinguishes between shared behavior and logic that must remain specific to certain payment methods.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Propose a staged implementation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of rewriting the entire service, the agent recommends introducing a payment interface, extracting validation into a dedicated component, and migrating individual call sites incrementally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Validate the changes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The agent runs or recommends relevant unit tests, integration tests, and static checks. Failures are investigated before additional changes are introduced.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Update repository knowledge&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The implementation notes, new architectural boundaries, and remaining migration tasks can be recorded for future work.&lt;/p&gt;

&lt;p&gt;The key difference is that the agent works toward a repository-level objective while accounting for dependencies and previous decisions. It is not merely rewriting a file; it is helping manage a controlled architectural change.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Risks of Persistent Codebase Memory
&lt;/h2&gt;

&lt;p&gt;Persistent memory introduces new challenges alongside its benefits. Development teams should understand these limitations before relying on it for complex changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Outdated Information
&lt;/h3&gt;

&lt;p&gt;Codebases evolve constantly. A stored dependency map or architectural summary can become inaccurate after a major refactor.&lt;/p&gt;

&lt;p&gt;Agents should verify remembered information against the current repository rather than treating historical notes as authoritative. Memory should have clear update rules, and important facts should include references to the relevant files or commits.&lt;/p&gt;

&lt;h3&gt;
  
  
  Incorrect Assumptions
&lt;/h3&gt;

&lt;p&gt;An agent might interpret an old implementation decision as a permanent requirement, even when the original constraint no longer applies.&lt;/p&gt;

&lt;p&gt;For this reason, remembered context should be treated as evidence to investigate, not an instruction that overrides the current source code, tests, or explicit developer requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  Context Overload
&lt;/h3&gt;

&lt;p&gt;Storing everything is not necessarily useful. Large collections of outdated notes, redundant summaries, and unrelated implementation details can make retrieval less effective.&lt;/p&gt;

&lt;p&gt;A practical memory system should prioritize information according to relevance, freshness, confidence, and the current task.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security and Privacy
&lt;/h3&gt;

&lt;p&gt;Repositories may contain proprietary algorithms, internal architecture details, customer information, or accidentally committed credentials.&lt;/p&gt;

&lt;p&gt;Organizations should establish clear policies for what can be indexed, where memory is stored, how access is controlled, and whether information can be shared across projects. Secrets should never be retained as ordinary contextual memory, and sensitive data should be handled according to organizational security requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  Overconfidence in Automated Changes
&lt;/h3&gt;

&lt;p&gt;An agent that remembers many repository details can appear more reliable than it actually is. Yet comprehensive context does not eliminate reasoning errors, incomplete tests, or incorrect assumptions.&lt;/p&gt;

&lt;p&gt;Developers should retain control over high-impact changes, review generated diffs, and use automated validation before merging modifications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Practices for Implementing Repo-Aware Agents
&lt;/h2&gt;

&lt;p&gt;Organizations introducing persistent codebase memory should start with a focused, measurable implementation rather than attempting to automate every development activity at once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start with read-only analysis.&lt;/strong&gt; Allow the agent to map architecture, explain dependencies, identify duplicated code, and suggest refactoring opportunities before granting write access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Establish trusted information sources.&lt;/strong&gt; Prioritize the current source code, build configuration, tests, and maintained documentation. Use historical records to explain context, not to override current implementation evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep memory traceable.&lt;/strong&gt; Architectural notes should point to relevant files, symbols, tests, or commits whenever possible. This makes it easier for developers to verify conclusions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use incremental changes.&lt;/strong&gt; Break large refactoring projects into smaller modifications that can be independently reviewed, tested, and reverted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Define clear approval boundaries.&lt;/strong&gt; Require human review for changes involving authentication, authorization, database migrations, financial transactions, public APIs, and other sensitive functionality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Measure results.&lt;/strong&gt; Track review time, test failure rates, regression frequency, repeated investigation, and the number of changes accepted with minimal rework. These measures can help determine whether persistent memory is delivering practical value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Refresh knowledge regularly.&lt;/strong&gt; Update or invalidate stored information when dependencies, interfaces, architectural boundaries, or major implementation decisions change.&lt;/p&gt;

&lt;p&gt;The objective is to make repository context more accessible without sacrificing transparency or developer control.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Means for the Future of AI-Assisted Development
&lt;/h2&gt;

&lt;p&gt;The evolution of AI coding tools is moving beyond isolated code completion toward systems capable of handling broader software engineering workflows.&lt;/p&gt;

&lt;p&gt;Repo-aware agents represent one part of this shift. By combining repository indexing, persistent memory, dependency analysis, and automated validation, they can support more context-sensitive development activities.&lt;/p&gt;

&lt;p&gt;Their potential value is particularly relevant to large organizations maintaining multiple services, long-lived applications, and complex dependency chains. In these environments, understanding why code exists can be just as important as understanding what the code does.&lt;/p&gt;

&lt;p&gt;However, persistent memory should not be confused with complete understanding. A repository may have undocumented requirements, hidden production dependencies, or behaviors that automated tests do not cover. Even a well-designed agent needs reliable evidence, appropriate permissions, and human oversight.&lt;/p&gt;

&lt;p&gt;The most useful approach is to treat repo-aware agents as collaborators that improve access to engineering knowledge, help developers explore alternatives, and support safer incremental changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Persistent codebase memory changes the possibilities for AI-assisted refactoring by giving agents a way to retain and retrieve relevant knowledge across development tasks.&lt;/p&gt;

&lt;p&gt;Instead of repeatedly analyzing the same files from scratch, repo-aware agents can use architectural context, dependency relationships, historical decisions, and previous validation results to make better-informed proposals.&lt;/p&gt;

&lt;p&gt;The greatest benefit comes when this memory is combined with accurate repository analysis, automated testing, transparent reasoning, and developer review.&lt;/p&gt;

&lt;p&gt;For engineering teams, the goal is not to let AI refactor everything independently. It is to build workflows in which AI can understand more of the system, identify meaningful improvements, and help developers make changes with greater context and control.&lt;/p&gt;

&lt;p&gt;As these capabilities mature, persistent repository memory may become an important part of how development teams manage technical debt, maintain legacy applications, and approach large-scale software modernization.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>codepen</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Platform Engineering in 2026: Building the Internal Developer Platform Your AI Agents Actually Need</title>
      <dc:creator>Eva Clari</dc:creator>
      <pubDate>Tue, 22 Sep 2026 05:56:02 +0000</pubDate>
      <link>https://dev.to/eva_clari_289d85ecc68da48/platform-engineering-in-2026-building-the-internal-developer-platform-your-ai-agents-actually-need-57cm</link>
      <guid>https://dev.to/eva_clari_289d85ecc68da48/platform-engineering-in-2026-building-the-internal-developer-platform-your-ai-agents-actually-need-57cm</guid>
      <description>&lt;p&gt;An in-depth DEV.to article about platform engineering, AI-powered development, and designing internal developer platforms for the next generation of software teams.&lt;/p&gt;

&lt;p&gt;As software development continues to evolve, AI agents are becoming more than coding assistants. They can generate code, troubleshoot errors, create pull requests, manage infrastructure tasks, and participate in complex software delivery workflows.&lt;/p&gt;

&lt;p&gt;But there's a growing challenge that many engineering teams are beginning to recognize: AI agents are only as effective as the platforms, tools, and guardrails that support them.&lt;/p&gt;

&lt;p&gt;Giving an AI agent access to a code repository isn't the same as giving it the ability to safely deliver production-ready software. Without reliable environments, standardized workflows, observability, permissions, and deployment controls, AI-driven development can create as many operational challenges as it solves.&lt;/p&gt;

&lt;p&gt;This is where platform engineering in 2026 becomes increasingly important.&lt;/p&gt;

&lt;p&gt;Internal Developer Platforms (IDPs) are evolving from systems designed primarily to improve developer experience into intelligent infrastructure foundations that support both human developers and autonomous AI agents.&lt;/p&gt;

&lt;p&gt;The question is no longer just, "How can we make developers more productive?"&lt;/p&gt;

&lt;p&gt;It's also:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How do we build an internal developer platform that enables AI agents to work effectively, securely, and reliably across the software delivery lifecycle?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let's explore what modern platform engineering needs to look like, the architectural components required, and how organizations can prepare their internal platforms for AI-assisted and agent-driven development.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Platform Engineering in 2026?
&lt;/h2&gt;

&lt;p&gt;Platform engineering is the practice of designing and maintaining internal platforms that provide developers with self-service tools, standardized infrastructure, deployment capabilities, and operational workflows.&lt;/p&gt;

&lt;p&gt;The goal is to reduce unnecessary complexity by allowing development teams to consume infrastructure and delivery capabilities without having to manage every underlying system manually.&lt;/p&gt;

&lt;p&gt;In 2026, this concept is expanding to include AI agents as active participants in engineering workflows.&lt;/p&gt;

&lt;p&gt;Traditional internal developer platforms often focus on capabilities such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Self-service application deployment&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Infrastructure provisioning&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CI/CD automation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kubernetes management&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Observability and monitoring&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security and compliance controls&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developer portals and service catalogs&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An AI-ready platform needs to extend these capabilities with additional considerations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Machine-readable interfaces for AI agents&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clearly defined permissions and access boundaries&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reliable development and testing environments&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Structured operational feedback&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Automated validation and policy enforcement&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Traceability for agent-generated changes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Controlled access to production systems&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The underlying objective remains the same: reduce cognitive load and improve engineering efficiency. However, the platform must now serve different types of users, including developers, automation systems, and AI agents.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why AI Agents Change Platform Engineering
&lt;/h3&gt;

&lt;p&gt;A human developer typically understands organizational processes, asks questions when uncertain, and can make contextual judgments about a task.&lt;/p&gt;

&lt;p&gt;An AI agent may perform multiple steps independently, interact with tools, and respond to feedback generated by the environment. Its effectiveness depends heavily on the quality of the interfaces and constraints provided by the platform.&lt;/p&gt;

&lt;p&gt;For example, an AI agent tasked with deploying a microservice may need to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Understand the service's architecture.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Identify the correct deployment environment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Retrieve approved configuration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build and test the application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scan the resulting artifacts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Request or execute deployment through authorized workflows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify service health.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Report the deployment outcome.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If every step requires navigating inconsistent tools, undocumented processes, or ambiguous permissions, the agent will struggle to complete the task reliably.&lt;/p&gt;

&lt;p&gt;An effective AI-ready IDP turns infrastructure and engineering workflows into discoverable, structured, and controllable capabilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The Foundation of an AI-Ready Internal Developer Platform
&lt;/h2&gt;

&lt;p&gt;Before introducing AI agents into engineering workflows, organizations need to establish a reliable platform foundation.&lt;/p&gt;

&lt;p&gt;An IDP should not simply provide access to a collection of tools. It should create a consistent experience for building, testing, deploying, and operating software.&lt;/p&gt;

&lt;p&gt;For AI agents, this means making platform capabilities accessible through predictable interfaces and well-defined workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Components of an AI-Ready IDP
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Developer Portal
&lt;/h4&gt;

&lt;p&gt;A centralized interface for discovering services, documentation, templates, ownership, and platform capabilities.&lt;/p&gt;

&lt;h4&gt;
  
  
  Workflow Automation
&lt;/h4&gt;

&lt;p&gt;Standardized processes for application creation, builds, testing, deployment, and infrastructure provisioning.&lt;/p&gt;

&lt;h4&gt;
  
  
  Security and Governance
&lt;/h4&gt;

&lt;p&gt;Identity, authorization, policy enforcement, secrets management, and approval controls.&lt;/p&gt;

&lt;h4&gt;
  
  
  Observability
&lt;/h4&gt;

&lt;p&gt;Logs, metrics, traces, deployment status, and structured feedback that support operational decisions.&lt;/p&gt;

&lt;h4&gt;
  
  
  Agent Integration Layer
&lt;/h4&gt;

&lt;p&gt;Controlled interfaces that allow AI agents to discover capabilities and invoke approved platform actions.&lt;/p&gt;

&lt;p&gt;The platform should make these components work together rather than forcing developers and AI agents to integrate each capability independently.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Treat Platform Capabilities as Products, Not Just Infrastructure
&lt;/h2&gt;

&lt;p&gt;One of the most important principles of platform engineering is to treat the internal platform as a product.&lt;/p&gt;

&lt;p&gt;This means understanding the needs of its users, providing a consistent experience, collecting feedback, and continuously improving the platform.&lt;/p&gt;

&lt;p&gt;With AI agents, the definition of a platform user becomes broader.&lt;/p&gt;

&lt;p&gt;The platform may serve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Application developers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Site Reliability Engineers (SREs)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security teams&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data engineers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AI coding agents&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Autonomous troubleshooting workflows&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Automated release and maintenance systems&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each user type interacts with the platform differently.&lt;/p&gt;

&lt;p&gt;A developer might use a self-service portal to create a service. An AI agent might need to query the service catalog, identify a deployment template, run tests, and submit a change through an approved workflow.&lt;/p&gt;

&lt;p&gt;If the platform is designed only for human interaction, agents may have difficulty navigating it efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Make the Platform Discoverable
&lt;/h3&gt;

&lt;p&gt;AI agents need context to determine which actions are appropriate.&lt;/p&gt;

&lt;p&gt;Consider a platform that exposes the following capabilities:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;create_service
deploy_service
run_tests
get_deployment_status
rollback_deployment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Simply listing these actions isn't enough. The agent also needs information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What does each action do?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What inputs are required?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Which environments are supported?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What permissions are necessary?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What validation rules apply?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What does the output mean?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What happens when an action fails?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A well-designed platform provides structured metadata and documentation that reduce ambiguity.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;JSON&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"deploy_service"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Deploy an approved service artifact"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"inputs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"service"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"environment"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"artifact"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"constraints"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"allowed_environments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"development"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"staging"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"requires_approval_for"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"production"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is an illustrative interface, not a complete security mechanism. The actual authorization decision must be enforced by trusted platform services rather than by instructions presented to the agent.&lt;/p&gt;

&lt;p&gt;The principle is simple: agents should discover what they can do, but the platform must decide what they are allowed to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Build a Golden Path for AI-Assisted Development
&lt;/h2&gt;

&lt;p&gt;A golden path is a recommended, repeatable workflow that helps developers build and deploy software using established engineering standards.&lt;/p&gt;

&lt;p&gt;For example, a platform might provide a golden path for deploying a Python API:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Select an approved application template.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a repository.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure service ownership.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provision a development environment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run automated tests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build a container image.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scan dependencies and artifacts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deploy to a non-production environment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Validate application health.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Promote through the approved release process.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The benefit is consistency. Developers do not need to design every workflow from scratch.&lt;/p&gt;

&lt;p&gt;AI agents can use the same golden paths to perform tasks while adhering to organizational requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  Golden Paths Should Be Machine-Readable
&lt;/h3&gt;

&lt;p&gt;Documentation written exclusively for humans can be difficult for agents to consume reliably.&lt;/p&gt;

&lt;p&gt;Instead, platforms should expose structured workflow definitions, API contracts, templates, and validation rules.&lt;/p&gt;

&lt;p&gt;A golden path could be represented as:&lt;/p&gt;

&lt;p&gt;YAML&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;python-api-service&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;1.0"&lt;/span&gt;

&lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;create_repository&lt;/span&gt;
    &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;repository.create&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;configure_ci&lt;/span&gt;
    &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;pipeline.configure&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;run_tests&lt;/span&gt;
    &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;test.execute&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;build_artifact&lt;/span&gt;
    &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;artifact.build&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;security_scan&lt;/span&gt;
    &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;security.scan&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;deploy_staging&lt;/span&gt;
    &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;deployment.staging&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;verify_health&lt;/span&gt;
    &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;service.health_check&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In a production implementation, each step would need clearly defined inputs, outputs, dependencies, timeouts, failure handling, and authorization requirements.&lt;/p&gt;

&lt;p&gt;A workflow definition should not be interpreted as permission to execute arbitrary actions. The execution engine must validate each requested operation against its own security and policy controls.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Golden Paths Matter for AI Agents
&lt;/h3&gt;

&lt;p&gt;Without a standardized workflow, an AI agent may choose different tools or approaches for similar tasks.&lt;/p&gt;

&lt;p&gt;This can increase variation in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Infrastructure configuration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security controls&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testing coverage&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deployment procedures&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Observability setup&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Service ownership metadata&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Golden paths help reduce unnecessary variation while allowing teams to support legitimate exceptions.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Give AI Agents Access to Context, Not Unlimited Access
&lt;/h2&gt;

&lt;p&gt;One of the biggest design challenges in AI-enabled engineering is providing sufficient context without exposing unnecessary permissions or sensitive information.&lt;/p&gt;

&lt;p&gt;An agent working on a service needs to understand the service's code, dependencies, architecture, configuration, and operational requirements.&lt;/p&gt;

&lt;p&gt;However, that does not mean it should have unrestricted access to every repository, secret, production database, or cloud resource.&lt;/p&gt;

&lt;h3&gt;
  
  
  Context Is More Than Source Code
&lt;/h3&gt;

&lt;p&gt;A useful AI agent context layer can include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Repository structure&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API specifications&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Service catalog metadata&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ownership information&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dependency relationships&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build and deployment instructions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Approved infrastructure templates&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testing requirements&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Relevant observability data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Incident and operational runbooks&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, when an agent is asked to troubleshoot a failed deployment, it may need to understand:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which service failed, what changed, which environment is affected, what the deployment logs indicate, and which remediation actions are authorized?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Without this context, the agent may generate suggestions that are technically plausible but operationally unsuitable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Establish Context Boundaries
&lt;/h3&gt;

&lt;p&gt;A platform should distinguish between different categories of information:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Example&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Access approach&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Public internal documentation&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Engineering standards&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Broad read access where appropriate&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Service metadata&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Owner, dependencies, runtime&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Scoped access&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Deployment status&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Build and release results&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Scoped read access&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Application secrets&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;API keys, credentials&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Restricted access; avoid unnecessary exposure&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Production operations&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Rollback or configuration changes&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Explicit authorization and policy checks&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Customer data&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Sensitive application records&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Strict access controls and data minimization&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;AI agents should receive only the information necessary for their assigned task.&lt;/p&gt;

&lt;p&gt;This principle is particularly important when an agent can use external tools or execute actions on behalf of a user.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Design for Agent Identity and Authorization
&lt;/h2&gt;

&lt;p&gt;A traditional CI/CD pipeline often runs under a service identity with a defined set of permissions. Agent-based workflows introduce additional questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Which agent is performing the action?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Which user or service authorized it?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What task is it attempting to complete?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Which resources can it access?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Is the action read-only or state-changing?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can the action affect production systems?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How is the action recorded for auditing?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These questions should be addressed through established identity and access management practices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Separate Authentication From Authorization
&lt;/h3&gt;

&lt;p&gt;Authentication determines who or what is making a request.&lt;/p&gt;

&lt;p&gt;Authorization determines whether that identity is permitted to perform the requested action on the target resource.&lt;/p&gt;

&lt;p&gt;An agent may be authenticated successfully but still lack permission to deploy a production application.&lt;/p&gt;

&lt;p&gt;A practical design can include:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User / Agent
     |
     v
Identity Verification
     |
     v
Task and Resource Authorization
     |
     v
Policy Validation
     |
     v
Platform Action
     |
     v
Audit and Outcome Reporting
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent should not be able to bypass the authorization layer simply because it has been instructed to complete a task.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Least Privilege
&lt;/h3&gt;

&lt;p&gt;Least privilege means providing only the access required to perform a specific task.&lt;/p&gt;

&lt;p&gt;For AI agents, this may involve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Read-only access for code analysis&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Limited write access for a designated repository&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Short-lived credentials&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Restricted environment access&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Explicit permissions for deployment operations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Separate privileges for production changes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Revocable access and auditable execution&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, an agent tasked with investigating a failed build may only need access to build logs and repository metadata. It does not automatically need permission to modify production infrastructure.&lt;/p&gt;

&lt;p&gt;Agent autonomy should be bounded by the platform's security model.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Build Sandboxed and Reproducible Execution Environments
&lt;/h2&gt;

&lt;p&gt;AI agents frequently generate or modify code. That code needs to be tested in environments that are sufficiently isolated and representative of the intended runtime.&lt;/p&gt;

&lt;p&gt;Running untrusted or unreviewed agent-generated code directly on sensitive infrastructure introduces unnecessary risks.&lt;/p&gt;

&lt;p&gt;An AI-ready platform should provide controlled execution environments that support:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Dependency installation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build execution&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Automated testing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Static analysis&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security scanning&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Artifact generation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Resource limits&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Network restrictions where appropriate&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Environment cleanup&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why Reproducibility Matters
&lt;/h3&gt;

&lt;p&gt;Suppose an AI agent generates a code change that passes its local tests but fails in staging.&lt;/p&gt;

&lt;p&gt;Possible causes include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Different dependency versions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Missing environment variables&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Runtime differences&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Operating system variations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Database schema mismatches&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Network configuration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Incorrect assumptions about infrastructure&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reproducible environments help teams reduce these inconsistencies.&lt;/p&gt;

&lt;p&gt;Containerized development environments, pinned dependencies, standardized build pipelines, and infrastructure-as-code can support repeatable workflows.&lt;/p&gt;

&lt;p&gt;However, reproducibility does not guarantee that an application will behave identically in every environment. External services, data, infrastructure, and runtime conditions still need to be considered.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example: Controlled Agent Execution
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent Request
     |
     v
Task Validation
     |
     v
Ephemeral Workspace
     |
     v
Code Generation / Modification
     |
     v
Automated Tests
     |
     v
Security and Quality Checks
     |
     v
Artifact / Change Output
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent can work within an isolated workspace while the platform controls resource access, execution limits, and the promotion of resulting changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Make Observability Available to AI Agents
&lt;/h2&gt;

&lt;p&gt;Observability is not just a tool for human engineers. It is also a critical source of feedback for AI agents.&lt;/p&gt;

&lt;p&gt;An agent that deploys an application needs to determine whether the deployment succeeded and whether the service is operating as expected.&lt;/p&gt;

&lt;p&gt;A successful deployment command does not necessarily mean the application is healthy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Observability Signals
&lt;/h3&gt;

&lt;p&gt;A platform can provide structured access to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Application logs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Metrics&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Distributed traces&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deployment status&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Health-check results&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Error rates&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Latency&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Resource utilization&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Incident information&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, an agent may deploy a service and receive the following outcome:&lt;/p&gt;

&lt;p&gt;JSON&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"deployment"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"payments-api"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"environment"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"staging"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"completed"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"health_check"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"failed"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"error_rate"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"elevated"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"recommended_next_step"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"inspect_application_logs"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This example illustrates how structured feedback can help the agent determine its next action.&lt;/p&gt;

&lt;p&gt;The platform should ensure that the data is accurate, scoped appropriately, and accompanied by clear semantics. A field such as &lt;code&gt;status: completed&lt;/code&gt; should not be interpreted as proof that all operational health checks passed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Closed-Loop Engineering Workflows
&lt;/h3&gt;

&lt;p&gt;An AI agent can use observability feedback in a controlled loop:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Make a change.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run validation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deploy to the approved environment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check service health.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Analyze the outcome.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Report the result or propose an authorized next step.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For higher-risk actions, the platform should stop the loop and require appropriate human review or explicit authorization.&lt;/p&gt;

&lt;p&gt;The objective is not to make every process fully autonomous. It is to enable agents to handle appropriate tasks while keeping humans and platform controls involved where needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Integrate Policy as Code
&lt;/h2&gt;

&lt;p&gt;Policy as code allows organizations to express operational and security requirements in machine-evaluable form.&lt;/p&gt;

&lt;p&gt;Instead of relying only on documentation or manual checks, platforms can validate whether a requested action complies with defined policies.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Required resource tags&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Approved container registries&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Minimum security checks&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deployment environment restrictions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Required service ownership metadata&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Network configuration standards&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Infrastructure configuration rules&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Separation of duties&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Example Policy
&lt;/h3&gt;

&lt;p&gt;Consider a rule that production deployments must use an approved artifact.&lt;/p&gt;

&lt;p&gt;YAML&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;policy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;approved-production-artifact&lt;/span&gt;

  &lt;span class="na"&gt;applies_to&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;production&lt;/span&gt;

  &lt;span class="na"&gt;requirements&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;artifact.signature_verified&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;artifact.source_trusted&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;security.scan_completed&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;deployment.authorization_valid&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is a simplified conceptual example. Actual enforcement requires a policy engine and trusted verification mechanisms.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Policy as Code Helps AI Workflows
&lt;/h3&gt;

&lt;p&gt;AI agents may generate unexpected solutions or attempt actions that fall outside established procedures.&lt;/p&gt;

&lt;p&gt;Policy enforcement provides a consistent way to validate requests.&lt;/p&gt;

&lt;p&gt;Rather than depending on an agent to remember every organizational rule, the platform can enforce critical constraints independently.&lt;/p&gt;

&lt;p&gt;This creates a more reliable boundary between what an agent proposes and what the system permits.&lt;/p&gt;

&lt;p&gt;Instructions guide the agent; enforcement protects the platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Create a Standard Interface for Platform Actions
&lt;/h2&gt;

&lt;p&gt;An AI agent becomes more useful when it can interact with platform capabilities through consistent interfaces.&lt;/p&gt;

&lt;p&gt;Without standardization, an organization might expose infrastructure functions through a mixture of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Custom scripts&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Shell commands&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;REST APIs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cloud provider CLIs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kubernetes commands&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Internal portals&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Unstructured documentation&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These tools may work well for experienced engineers but can be difficult to use consistently in agent-driven workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  API-First Platform Design
&lt;/h3&gt;

&lt;p&gt;A platform should expose well-defined capabilities that include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Clear input and output schemas&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Authentication requirements&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Authorization checks&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Error codes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Idempotency where appropriate&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Operation status&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Documentation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Audit records&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An agent might request a deployment using an interface such as:&lt;/p&gt;

&lt;p&gt;JSON&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"service"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"catalog-api"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"environment"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"staging"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"artifact"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"registry.example/catalog-api:2026.09.22"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The platform should then validate:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Whether the service exists.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Whether the artifact is authorized and available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Whether the requesting identity has permission.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Whether the environment supports the operation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Whether required checks have passed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Whether the deployment request can be executed safely.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The platform, rather than the AI agent, should make the final authorization decision.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tool Interfaces and Interoperability
&lt;/h3&gt;

&lt;p&gt;Organizations may choose different approaches for exposing tools to AI agents, including conventional APIs, structured command interfaces, or interoperability standards such as the Model Context Protocol (MCP).&lt;/p&gt;

&lt;p&gt;The appropriate choice depends on the platform's security, operational, and integration requirements.&lt;/p&gt;

&lt;p&gt;MCP can be considered as one option for connecting AI systems to tools and contextual resources, but it should not be treated as a substitute for identity management, authorization, or secure execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Build a Strong Developer Portal
&lt;/h2&gt;

&lt;p&gt;A developer portal is often the primary entry point for an internal developer platform.&lt;/p&gt;

&lt;p&gt;It provides a centralized place to discover services, access documentation, use templates, and understand the ownership of software components.&lt;/p&gt;

&lt;p&gt;For AI agents, the portal's underlying data and interfaces may be as important as its visual experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Essential Developer Portal Features
&lt;/h3&gt;

&lt;p&gt;A modern portal can include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Service catalog&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Software templates&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API documentation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ownership and team information&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Infrastructure capabilities&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deployment history&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Environment status&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Operational runbooks&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security requirements&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Platform usage documentation&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, a service catalog entry could include:&lt;/p&gt;

&lt;p&gt;YAML&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;service&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;customer-profile-api&lt;/span&gt;
  &lt;span class="na"&gt;owner&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;customer-platform&lt;/span&gt;
  &lt;span class="na"&gt;runtime&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;python&lt;/span&gt;
  &lt;span class="na"&gt;deployment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;strategy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;rolling&lt;/span&gt;
  &lt;span class="na"&gt;environments&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;development&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;staging&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;production&lt;/span&gt;
  &lt;span class="na"&gt;documentation&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;api&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/docs/api&lt;/span&gt;
    &lt;span class="na"&gt;runbook&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/docs/runbook&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This information can help developers and agents understand the service's operating context.&lt;/p&gt;

&lt;p&gt;However, catalog metadata should be validated and maintained. Stale ownership, missing dependencies, or inaccurate deployment details can lead to poor decisions by both human engineers and AI systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Portal Is Not Just a UI
&lt;/h3&gt;

&lt;p&gt;A developer portal can be understood as a combination of:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;A user-facing experience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A structured catalog of engineering resources.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Access to approved platform workflows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Documentation and operational context.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration points for automation.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This approach makes the platform useful across different engineering workflows without requiring every user to interact with the underlying infrastructure directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  11. Support Human-in-the-Loop Workflows
&lt;/h2&gt;

&lt;p&gt;AI agents can perform a range of tasks, but not every task should be fully autonomous.&lt;/p&gt;

&lt;p&gt;The level of autonomy should be based on factors such as risk, reversibility, impact, and the quality of available validation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example Autonomy Levels
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Possible operating mode&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Read repository documentation&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Automated&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Summarize build failures&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Automated&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Generate a pull request&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Automated with review workflow&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Run tests in an isolated environment&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Automated&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Deploy to development&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Policy-controlled automation&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Deploy to staging&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Automated if required checks pass&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Change production configuration&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Explicit authorization&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Execute irreversible data operations&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Strict controls and human oversight&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These are illustrative operating choices rather than universal requirements. Organizations should define their own controls based on the risk profile of each operation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Approval Should Be Context-Aware
&lt;/h3&gt;

&lt;p&gt;A blanket rule that requires approval for every action can reduce the benefits of automation. A system that grants unrestricted autonomy can increase operational risk.&lt;/p&gt;

&lt;p&gt;A more practical approach is to establish risk-based controls.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Low-risk, read-only operations may be automated.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reversible development changes may use predefined workflows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Production modifications may require additional authorization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;High-impact or irreversible operations may require multiple safeguards.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The platform should also provide visibility into what the agent intends to do, what it actually did, and whether the operation produced the expected outcome.&lt;/p&gt;

&lt;h2&gt;
  
  
  12. Manage AI Agent Cost and Resource Consumption
&lt;/h2&gt;

&lt;p&gt;AI-enabled development introduces new resource considerations.&lt;/p&gt;

&lt;p&gt;Agents may perform repeated tool calls, execute tests, generate multiple versions of a solution, or launch infrastructure workflows. Without appropriate controls, resource consumption can become difficult to predict.&lt;/p&gt;

&lt;p&gt;Platform engineering teams should consider how to manage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Compute usage&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build minutes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test environment lifecycle&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Model and inference costs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Storage consumption&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Concurrent agent tasks&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API rate limits&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Resource quotas&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Establish Usage Controls
&lt;/h3&gt;

&lt;p&gt;A platform can implement controls such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Per-task execution limits&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Environment timeouts&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Workspace cleanup&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Resource quotas&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Concurrency limits&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Budget monitoring&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Task cancellation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Usage reporting&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, an ephemeral environment created for an agent's testing task should have a defined lifecycle. If it is no longer needed, the platform should be able to clean it up according to the organization's policies.&lt;/p&gt;

&lt;p&gt;The objective is not to limit experimentation unnecessarily. It is to ensure that automation operates within predictable resource boundaries.&lt;/p&gt;

&lt;h2&gt;
  
  
  13. Measure Platform Engineering Success
&lt;/h2&gt;

&lt;p&gt;Platform engineering teams need meaningful metrics to determine whether the internal platform is delivering value.&lt;/p&gt;

&lt;p&gt;The presence of AI agents does not automatically mean that engineering productivity has improved.&lt;/p&gt;

&lt;p&gt;Organizations should evaluate whether the platform helps teams deliver software safely, consistently, and efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Metrics to Consider
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Developer Lead Time
&lt;/h4&gt;

&lt;p&gt;How long does it take to move from a validated change to a deployed service?&lt;/p&gt;

&lt;h4&gt;
  
  
  Workflow Success Rate
&lt;/h4&gt;

&lt;p&gt;How frequently do standardized platform workflows complete successfully?&lt;/p&gt;

&lt;h4&gt;
  
  
  Change Failure Rate
&lt;/h4&gt;

&lt;p&gt;How often do deployed changes lead to incidents, rollbacks, or remediation?&lt;/p&gt;

&lt;h4&gt;
  
  
  Platform Adoption
&lt;/h4&gt;

&lt;p&gt;How many teams use approved templates, workflows, and platform capabilities?&lt;/p&gt;

&lt;h4&gt;
  
  
  Security and Compliance
&lt;/h4&gt;

&lt;p&gt;Are required checks, policies, and access controls consistently enforced?&lt;/p&gt;

&lt;h4&gt;
  
  
  Agent Task Outcomes
&lt;/h4&gt;

&lt;p&gt;How often do agent-assisted tasks achieve their intended results without unnecessary intervention?&lt;/p&gt;

&lt;h3&gt;
  
  
  Avoid Measuring Only the Number of AI-Generated Changes
&lt;/h3&gt;

&lt;p&gt;An agent might generate dozens of pull requests in a day, but that alone does not demonstrate improved engineering performance.&lt;/p&gt;

&lt;p&gt;Additional questions matter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;How many changes passed review?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How much rework was required?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did testing quality improve?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did operational incidents increase?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How much human effort was saved?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did platform usage reduce repeated manual work?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Were security and compliance requirements maintained?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A balanced measurement framework considers delivery speed, quality, reliability, security, and developer experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  14. Common Mistakes When Building an AI-Ready IDP
&lt;/h2&gt;

&lt;p&gt;Organizations adopting AI agents into platform workflows may encounter several implementation challenges.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mistake 1: Treating AI Agents as Ordinary Scripts
&lt;/h3&gt;

&lt;p&gt;AI agents can interpret context, select tools, and execute multi-step tasks. Their behavior may be less predictable than a narrowly scoped deterministic script.&lt;/p&gt;

&lt;p&gt;What to do instead: Establish clear tool contracts, execution limits, authorization checks, and reliable error handling.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mistake 2: Providing Excessive Permissions
&lt;/h3&gt;

&lt;p&gt;Giving an agent broad infrastructure access simply because it needs to perform a task can increase the impact of mistakes or compromised credentials.&lt;/p&gt;

&lt;p&gt;What to do instead: Use least-privilege access, scoped identities, and explicit permissions for sensitive operations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mistake 3: Ignoring Operational Context
&lt;/h3&gt;

&lt;p&gt;An agent that can generate code but cannot access appropriate test results, service metadata, or deployment feedback may struggle to complete tasks effectively.&lt;/p&gt;

&lt;p&gt;What to do instead: Provide relevant, structured context through reliable platform interfaces.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mistake 4: Automating Without a Rollback Strategy
&lt;/h3&gt;

&lt;p&gt;Automation can accelerate changes, but failed changes still need to be detected and addressed.&lt;/p&gt;

&lt;p&gt;What to do instead: Define recovery procedures, health checks, rollback mechanisms where appropriate, and clear escalation paths.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mistake 5: Building a Platform Without Developer Feedback
&lt;/h3&gt;

&lt;p&gt;A platform designed without understanding developer workflows may introduce additional friction.&lt;/p&gt;

&lt;p&gt;What to do instead: Involve platform users early, collect feedback, and measure whether the platform is reducing unnecessary work.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mistake 6: Assuming More Autonomy Always Means Better Results
&lt;/h3&gt;

&lt;p&gt;Greater autonomy is not automatically beneficial for every task.&lt;/p&gt;

&lt;p&gt;What to do instead: Match the level of autonomy to the task's risk, reversibility, and available validation.&lt;/p&gt;

&lt;h2&gt;
  
  
  15. A Practical Roadmap for Building an AI-Ready IDP
&lt;/h2&gt;

&lt;p&gt;Organizations do not need to implement every capability at once. A phased approach can help teams establish a reliable foundation before expanding agent autonomy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 1: Assess the Existing Platform
&lt;/h3&gt;

&lt;p&gt;Start by documenting the current platform environment.&lt;/p&gt;

&lt;p&gt;Review:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;CI/CD workflows&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Infrastructure provisioning&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Service ownership&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developer portal capabilities&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Identity and access controls&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Observability&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deployment processes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security checks&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Identify the workflows that are repeated frequently and could benefit from standardization.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 2: Establish Golden Paths
&lt;/h3&gt;

&lt;p&gt;Choose a limited number of common application patterns.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Backend API&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Frontend application&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scheduled data processing service&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Event-driven microservice&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Create standardized templates and workflows with documented requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 3: Improve Platform Interfaces
&lt;/h3&gt;

&lt;p&gt;Expose platform capabilities through consistent APIs or structured interfaces.&lt;/p&gt;

&lt;p&gt;Focus on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Clear inputs and outputs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Authentication and authorization&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Error handling&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Audit logging&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Documentation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Idempotency and retry behavior where appropriate&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase 4: Introduce Controlled Agent Workflows
&lt;/h3&gt;

&lt;p&gt;Begin with lower-risk use cases, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Documentation discovery&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build failure analysis&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test generation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code review assistance&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pull request preparation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Non-production workflow support&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Measure results before expanding access.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 5: Add Stronger Governance
&lt;/h3&gt;

&lt;p&gt;Introduce more comprehensive policy enforcement, environment controls, and audit mechanisms.&lt;/p&gt;

&lt;p&gt;Review whether agent actions are consistent with organizational security and operational requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 6: Expand Based on Evidence
&lt;/h3&gt;

&lt;p&gt;Use workflow outcomes, developer feedback, and operational metrics to determine where additional automation may be appropriate.&lt;/p&gt;

&lt;p&gt;Avoid expanding autonomy solely because the technology makes it possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  16. Example Architecture: AI Agent Connected to an Internal Developer Platform
&lt;/h2&gt;

&lt;p&gt;The following conceptual architecture illustrates how an AI agent could interact with an IDP while keeping platform controls in the execution path.&lt;/p&gt;

&lt;h4&gt;
  
  
  AI Agent
&lt;/h4&gt;

&lt;p&gt;Task planning and tool selection&lt;/p&gt;

&lt;p&gt;Agent Interface Layer&lt;/p&gt;

&lt;p&gt;Structured tools, schemas, and request validation&lt;/p&gt;

&lt;p&gt;Identity and Policy Controls&lt;/p&gt;

&lt;p&gt;Authentication, authorization, and policy enforcement&lt;/p&gt;

&lt;p&gt;Platform Orchestration&lt;/p&gt;

&lt;p&gt;Approved workflows, task execution, and environment management&lt;/p&gt;

&lt;p&gt;Build and Deploy&lt;/p&gt;

&lt;p&gt;CI/CD and artifact workflows&lt;/p&gt;

&lt;p&gt;Infrastructure&lt;/p&gt;

&lt;p&gt;Approved infrastructure services&lt;/p&gt;

&lt;p&gt;Observability&lt;/p&gt;

&lt;p&gt;Logs, metrics, and health data&lt;/p&gt;

&lt;p&gt;Service Catalog&lt;/p&gt;

&lt;p&gt;Ownership and platform context&lt;/p&gt;

&lt;p&gt;Feedback and Audit&lt;/p&gt;

&lt;p&gt;Execution results, operational status, and recorded actions&lt;/p&gt;

&lt;p&gt;This architecture is conceptual. The specific implementation may use different orchestration components, identity providers, deployment systems, and observability tools.&lt;/p&gt;

&lt;p&gt;The central design principle is to separate agent reasoning from the platform's trusted enforcement and execution mechanisms.&lt;/p&gt;

&lt;h2&gt;
  
  
  17. Technologies That Can Support the Platform
&lt;/h2&gt;

&lt;p&gt;An AI-ready IDP is not dependent on a single technology stack. Teams can combine existing platform engineering tools with agent integration capabilities based on their requirements.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Example technologies&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Developer portal&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Backstage or a custom internal portal&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Container orchestration&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Kubernetes&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Infrastructure as code&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Terraform, OpenTofu, or cloud-native tooling&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;CI/CD&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;GitHub Actions, GitLab CI/CD, Jenkins, or other pipelines&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;GitOps delivery&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Argo CD or Flux&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Observability&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;OpenTelemetry, Prometheus, Grafana&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Policy enforcement&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;OPA, Gatekeeper, Kyverno, or equivalent controls&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Agent tool integration&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;APIs, structured tool interfaces, or MCP-compatible integrations&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Secrets management&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Enterprise secrets management systems&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Artifact management&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Approved container and package registries&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These are examples of technology categories and tools. Their suitability depends on the organization's existing architecture, operational maturity, and security requirements.&lt;/p&gt;

&lt;p&gt;The best platform is not necessarily the one with the largest number of components. It is the one that provides reliable capabilities without creating unnecessary complexity for engineering teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  18. The Future of Platform Engineering Is Context-Aware
&lt;/h2&gt;

&lt;p&gt;AI agents are changing how software teams interact with infrastructure and engineering systems.&lt;/p&gt;

&lt;p&gt;However, the future of platform engineering is not simply about giving agents more tools.&lt;/p&gt;

&lt;p&gt;It is about creating an environment where agents can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Discover available capabilities&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Understand service context&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Follow standardized workflows&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Operate within defined permissions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Receive meaningful feedback&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Recover from failures appropriately&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Escalate uncertain or high-risk decisions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Produce auditable outcomes&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Internal developer platforms will increasingly need to support a combination of human-driven and agent-assisted workflows.&lt;/p&gt;

&lt;p&gt;The platform's role is to make engineering capabilities easier to consume while preserving the controls required for secure and reliable software delivery.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion: Build the Platform Before Expanding Agent Autonomy
&lt;/h2&gt;

&lt;p&gt;Platform engineering in 2026 is increasingly connected to the practical challenges of AI-assisted software development.&lt;/p&gt;

&lt;p&gt;AI agents can support developers across coding, testing, deployment, and troubleshooting. But their effectiveness depends on the surrounding platform's ability to provide reliable tools, relevant context, standardized workflows, and appropriate safeguards.&lt;/p&gt;

&lt;p&gt;An internal developer platform designed for AI agents should prioritize:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Discoverability: Make platform capabilities and service context accessible through structured interfaces.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Standardization: Establish golden paths that support repeatable engineering workflows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security: Enforce identity, authorization, and least-privilege access.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reliability: Provide reproducible environments, validation, and operational feedback.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Governance: Use policy enforcement and audit mechanisms to control higher-risk actions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developer experience: Reduce cognitive load for both human developers and automation systems.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to replace engineering judgment with autonomous systems. It is to build a platform where AI agents can contribute effectively while operating within the organization's technical and operational boundaries.&lt;/p&gt;

&lt;p&gt;The next generation of internal developer platforms will be defined not only by how much infrastructure they automate, but by how safely and effectively they enable humans and AI agents to work together.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>Formal Verification for AI-Generated Code: Overkill or Overdue?</title>
      <dc:creator>Eva Clari</dc:creator>
      <pubDate>Tue, 15 Sep 2026 09:59:05 +0000</pubDate>
      <link>https://dev.to/eva_clari_289d85ecc68da48/formal-verification-for-ai-generated-code-overkill-or-overdue-g6h</link>
      <guid>https://dev.to/eva_clari_289d85ecc68da48/formal-verification-for-ai-generated-code-overkill-or-overdue-g6h</guid>
      <description>&lt;h1&gt;
  
  
  Formal Verification for AI-Generated Code: Overkill or Overdue?
&lt;/h1&gt;

&lt;p&gt;AI coding assistants have changed software development dramatically. Developers can now generate functions, write tests, refactor legacy code, and even build entire application components with a simple prompt.&lt;/p&gt;

&lt;p&gt;But there is an uncomfortable question behind this productivity boom:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do we know that AI-generated code is actually correct?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Traditional code review, unit testing, static analysis, and security scanning can catch many problems. However, AI-generated code introduces a different challenge. A piece of code can look reasonable, pass its tests, and still contain subtle logical flaws or security vulnerabilities.&lt;/p&gt;

&lt;p&gt;This is where &lt;strong&gt;formal verification&lt;/strong&gt; enters the conversation.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Formal Verification?
&lt;/h2&gt;

&lt;p&gt;Formal verification uses mathematical methods to prove that software behaves according to a defined specification.&lt;/p&gt;

&lt;p&gt;Instead of asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Does this code pass our test cases?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;formal verification asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Can we mathematically demonstrate that this code satisfies the properties we require?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This distinction matters.&lt;/p&gt;

&lt;p&gt;Tests examine specific scenarios. Formal methods can reason about a much broader set of possible states and inputs.&lt;/p&gt;

&lt;p&gt;For example, imagine an AI assistant generates authentication logic. A developer might write dozens of tests covering common login scenarios. Those tests could all pass while an unusual sequence of inputs still creates an authentication bypass.&lt;/p&gt;

&lt;p&gt;Formal verification attempts to establish that certain properties—such as access-control rules or memory-safety guarantees—hold across the defined system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why AI-Generated Code Makes This More Important
&lt;/h2&gt;

&lt;p&gt;AI models generate code based on patterns learned from enormous amounts of existing material. They can produce impressive results, but they do not inherently understand whether a generated implementation satisfies an organization's exact security or business requirements.&lt;/p&gt;

&lt;p&gt;That creates several risks.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Plausible Doesn't Mean Correct
&lt;/h3&gt;

&lt;p&gt;AI-generated code often looks convincing.&lt;/p&gt;

&lt;p&gt;Variable names make sense. Functions are structured properly. Comments may even explain the implementation confidently.&lt;/p&gt;

&lt;p&gt;But appearance is not proof.&lt;/p&gt;

&lt;p&gt;A subtle logic error can survive a basic review because the implementation &lt;em&gt;looks&lt;/em&gt; like something an experienced developer would write.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Security Vulnerabilities Can Be Difficult to Spot
&lt;/h3&gt;

&lt;p&gt;AI-generated applications may inadvertently introduce issues involving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improper input validation&lt;/li&gt;
&lt;li&gt;Broken access controls&lt;/li&gt;
&lt;li&gt;Insecure authentication&lt;/li&gt;
&lt;li&gt;Injection vulnerabilities&lt;/li&gt;
&lt;li&gt;Cryptographic mistakes&lt;/li&gt;
&lt;li&gt;Insecure configurations&lt;/li&gt;
&lt;li&gt;Improper error handling&lt;/li&gt;
&lt;li&gt;Unsafe dependency usage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is particularly important when AI-generated code is integrated into applications handling financial, healthcare, customer, or other sensitive data.&lt;/p&gt;

&lt;p&gt;Security testing should therefore remain an essential part of the development lifecycle.&lt;/p&gt;

&lt;p&gt;Organizations looking to strengthen their teams' practical cybersecurity capabilities can also explore &lt;a href="https://www.edstellar.com/course/vulnerability-assessment-and-penetration-testing-vapt-training" rel="noopener noreferrer"&gt;Vulnerability Assessment and Penetration Testing (VAPT) training&lt;/a&gt;, which covers areas such as vulnerability assessment, penetration testing, security controls, web application security, and security assessment techniques.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Tests Have Limits
&lt;/h2&gt;

&lt;p&gt;Unit tests are extremely valuable. They should not be replaced by formal verification.&lt;/p&gt;

&lt;p&gt;But testing and verification answer different questions.&lt;/p&gt;

&lt;p&gt;Consider a function that processes user permissions.&lt;/p&gt;

&lt;p&gt;You might test:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An administrator can access the resource.&lt;/li&gt;
&lt;li&gt;A standard user cannot access it.&lt;/li&gt;
&lt;li&gt;An unauthenticated user is rejected.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those tests are useful, but they represent selected scenarios.&lt;/p&gt;

&lt;p&gt;A formal specification might instead express a property such as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No user without the required permission can access the protected resource.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is a much stronger statement.&lt;/p&gt;

&lt;p&gt;The challenge is that formal verification can also be considerably more expensive and complex than conventional testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, Is Formal Verification Overkill?
&lt;/h2&gt;

&lt;p&gt;Sometimes, yes.&lt;/p&gt;

&lt;p&gt;Applying heavyweight formal methods to every line of a typical web application would be impractical.&lt;/p&gt;

&lt;p&gt;Most business applications contain huge amounts of code, frequently changing requirements, third-party dependencies, and complex integrations. Attempting to formally prove every component correct could slow development dramatically.&lt;/p&gt;

&lt;p&gt;But that doesn't mean formal verification is unnecessary.&lt;/p&gt;

&lt;p&gt;The better approach is &lt;strong&gt;risk-based verification&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Formal Verification Makes the Most Sense
&lt;/h2&gt;

&lt;p&gt;Formal methods become particularly valuable when software failures could have serious consequences.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Financial Systems
&lt;/h3&gt;

&lt;p&gt;Payment processing, trading systems, banking infrastructure, and smart contracts may benefit from stronger mathematical guarantees.&lt;/p&gt;

&lt;h3&gt;
  
  
  Critical Infrastructure
&lt;/h3&gt;

&lt;p&gt;Software controlling energy, transportation, communications, or industrial systems can justify a higher verification investment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Safety-Critical Systems
&lt;/h3&gt;

&lt;p&gt;A software failure in aviation, automotive, medical, or industrial environments can have consequences far beyond downtime.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security-Critical Components
&lt;/h3&gt;

&lt;p&gt;Authentication systems, authorization mechanisms, cryptographic implementations, and security-sensitive protocols are strong candidates.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Systems That Control Other Systems
&lt;/h3&gt;

&lt;p&gt;As AI-generated code becomes integrated into autonomous systems and security infrastructure, proving important properties of critical components could become increasingly valuable.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Better Development Model: Verification in Layers
&lt;/h2&gt;

&lt;p&gt;The future probably isn't about choosing between testing and formal verification.&lt;/p&gt;

&lt;p&gt;It is about combining them.&lt;/p&gt;

&lt;p&gt;A practical development pipeline could look like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI code generation → Human review → Static analysis → Unit testing → Integration testing → Security testing → Formal verification for critical components&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each layer addresses a different category of risk.&lt;/p&gt;

&lt;p&gt;AI can accelerate implementation.&lt;/p&gt;

&lt;p&gt;Developers provide context and judgment.&lt;/p&gt;

&lt;p&gt;Testing validates expected behavior.&lt;/p&gt;

&lt;p&gt;Security testing looks for weaknesses.&lt;/p&gt;

&lt;p&gt;Formal verification provides stronger guarantees where they matter most.&lt;/p&gt;

&lt;p&gt;This layered approach is more realistic than attempting to formally verify an entire application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Human Developers Still Matter
&lt;/h2&gt;

&lt;p&gt;There is another important point that sometimes gets lost in discussions about AI coding tools.&lt;/p&gt;

&lt;p&gt;Formal verification does not eliminate the need for human judgment.&lt;/p&gt;

&lt;p&gt;A system can be formally verified against an incorrect specification.&lt;/p&gt;

&lt;p&gt;If the requirement says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The system should prevent unauthorized users from accessing data."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;but the definition of "authorized" is wrong, proving the implementation against that specification doesn't solve the underlying problem.&lt;/p&gt;

&lt;p&gt;The quality of the specification matters.&lt;/p&gt;

&lt;p&gt;Human developers, architects, security professionals, and domain experts still need to determine what the software is actually supposed to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Could AI Help With Formal Verification Too?
&lt;/h2&gt;

&lt;p&gt;Ironically, AI may eventually make formal verification more accessible.&lt;/p&gt;

&lt;p&gt;One of the biggest barriers to formal methods is the expertise required to create specifications and verification proofs.&lt;/p&gt;

&lt;p&gt;AI assistants could potentially help developers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate formal specifications&lt;/li&gt;
&lt;li&gt;Identify properties worth proving&lt;/li&gt;
&lt;li&gt;Translate natural-language requirements into formal constraints&lt;/li&gt;
&lt;li&gt;Suggest verification strategies&lt;/li&gt;
&lt;li&gt;Generate proof candidates&lt;/li&gt;
&lt;li&gt;Explain failed proofs&lt;/li&gt;
&lt;li&gt;Detect inconsistencies between requirements and implementation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This could make formal verification less intimidating for mainstream development teams.&lt;/p&gt;

&lt;p&gt;Instead of developers manually constructing every proof, AI could become an assistant for the verification process itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Question Isn't "Overkill or Overdue?"
&lt;/h2&gt;

&lt;p&gt;The more useful question is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which parts of AI-generated software are important enough to deserve mathematical guarantees?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not every function needs formal verification.&lt;/p&gt;

&lt;p&gt;A formatting helper probably doesn't.&lt;/p&gt;

&lt;p&gt;A component responsible for authentication, authorization, financial transactions, cryptographic operations, or safety-critical decisions might.&lt;/p&gt;

&lt;p&gt;As AI increases the amount of code developers can produce, the bottleneck may gradually shift from &lt;strong&gt;writing code&lt;/strong&gt; to &lt;strong&gt;establishing confidence in code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That is where formal verification could become increasingly important.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;AI-generated code is not inherently unsafe, just as human-written code is not inherently safe.&lt;/p&gt;

&lt;p&gt;The difference is that AI can dramatically increase the speed and volume at which software is produced. That makes traditional quality-control processes even more important.&lt;/p&gt;

&lt;p&gt;Formal verification won't replace testing, code review, or security assessments. Instead, it can become another layer of assurance for the components where failure is unacceptable.&lt;/p&gt;

&lt;p&gt;For ordinary software, formal verification may still be overkill.&lt;/p&gt;

&lt;p&gt;For critical software increasingly written with AI assistance, it may already be overdue.&lt;/p&gt;

&lt;h1&gt;
  
  
  AI #SoftwareDevelopment #Cybersecurity #FormalVerification
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Long-Horizon Agents: What Happens When AI Can Own a Multi-Hour Engineering Task</title>
      <dc:creator>Eva Clari</dc:creator>
      <pubDate>Tue, 08 Sep 2026 05:12:05 +0000</pubDate>
      <link>https://dev.to/eva_clari_289d85ecc68da48/long-horizon-agents-what-happens-when-ai-can-own-a-multi-hour-engineering-task-3lnl</link>
      <guid>https://dev.to/eva_clari_289d85ecc68da48/long-horizon-agents-what-happens-when-ai-can-own-a-multi-hour-engineering-task-3lnl</guid>
      <description>&lt;p&gt;Absolutely. For &lt;strong&gt;DEV Community&lt;/strong&gt;, I’d make this technical, practical, and discussion-driven rather than overly promotional. Here’s a ready-to-publish draft:&lt;/p&gt;

&lt;h1&gt;
  
  
  Long-Horizon Agents: What Happens When AI Can Own a Multi-Hour Engineering Task
&lt;/h1&gt;

&lt;p&gt;AI coding assistants have become surprisingly good at completing small engineering tasks.&lt;/p&gt;

&lt;p&gt;Fix a bug.&lt;br&gt;
Write a function.&lt;br&gt;
Generate a test.&lt;br&gt;
Explain an error.&lt;br&gt;
Refactor a component.&lt;/p&gt;

&lt;p&gt;But what happens when we give an AI agent something much bigger?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Take this issue, understand the codebase, implement the solution, write tests, run them, debug failures, and open a pull request.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is a fundamentally different problem.&lt;/p&gt;

&lt;p&gt;Instead of assisting with individual actions, the AI is being asked to &lt;strong&gt;own an engineering task for several hours&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is where long-horizon agents become interesting.&lt;/p&gt;
&lt;h2&gt;
  
  
  What Is a Long-Horizon Agent?
&lt;/h2&gt;

&lt;p&gt;A long-horizon agent is an AI system designed to work toward a goal across many steps rather than producing a single response.&lt;/p&gt;

&lt;p&gt;A typical workflow might look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Understand the task
        ↓
Explore the repository
        ↓
Create a plan
        ↓
Implement changes
        ↓
Run tests
        ↓
Analyze failures
        ↓
Modify the implementation
        ↓
Run tests again
        ↓
Review the changes
        ↓
Create a pull request
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important difference isn't simply that the agent can generate more code.&lt;/p&gt;

&lt;p&gt;It is that the agent needs to &lt;strong&gt;maintain context, make decisions, recover from mistakes, and continuously evaluate whether it is actually getting closer to the goal.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Challenge Isn't Code Generation
&lt;/h2&gt;

&lt;p&gt;Generating code is only one part of software engineering.&lt;/p&gt;

&lt;p&gt;Consider a simple request:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Add support for a new authentication provider.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An engineer may need to determine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where authentication is implemented&lt;/li&gt;
&lt;li&gt;Which interfaces are involved&lt;/li&gt;
&lt;li&gt;How configuration is loaded&lt;/li&gt;
&lt;li&gt;How credentials are stored&lt;/li&gt;
&lt;li&gt;What existing providers look like&lt;/li&gt;
&lt;li&gt;Which tests cover authentication&lt;/li&gt;
&lt;li&gt;Whether documentation needs updating&lt;/li&gt;
&lt;li&gt;What security implications exist&lt;/li&gt;
&lt;li&gt;Whether backwards compatibility could be affected&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A coding model can potentially generate the implementation.&lt;/p&gt;

&lt;p&gt;But a long-horizon agent needs to figure out &lt;strong&gt;what implementation should exist in the first place&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That makes repository exploration and decision-making just as important as code generation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Multi-Hour Tasks Are Different
&lt;/h2&gt;

&lt;p&gt;Short coding tasks often have relatively clear feedback.&lt;/p&gt;

&lt;p&gt;You ask an AI to write a function and run the tests. If the tests pass, you have a strong signal that the implementation works.&lt;/p&gt;

&lt;p&gt;Long tasks are different.&lt;/p&gt;

&lt;p&gt;There may be dozens or hundreds of intermediate decisions.&lt;/p&gt;

&lt;p&gt;An agent can make a small incorrect assumption early in the process and only discover the consequences much later.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Incorrect assumption
       ↓
Wrong architectural decision
       ↓
Implementation built around it
       ↓
Tests fail
       ↓
Agent patches symptoms
       ↓
More complexity
       ↓
Task becomes harder
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is one of the biggest risks with autonomous engineering agents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Error accumulation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The longer an agent operates without meaningful verification, the more expensive an incorrect decision becomes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Memory Becomes an Engineering Problem
&lt;/h2&gt;

&lt;p&gt;A multi-hour task can generate an enormous amount of context.&lt;/p&gt;

&lt;p&gt;The agent may inspect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hundreds of files&lt;/li&gt;
&lt;li&gt;Documentation&lt;/li&gt;
&lt;li&gt;Git history&lt;/li&gt;
&lt;li&gt;Build logs&lt;/li&gt;
&lt;li&gt;Test results&lt;/li&gt;
&lt;li&gt;Stack traces&lt;/li&gt;
&lt;li&gt;Previous implementation attempts&lt;/li&gt;
&lt;li&gt;Design decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent therefore needs more than a large context window.&lt;/p&gt;

&lt;p&gt;It needs &lt;strong&gt;useful memory&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A practical architecture might maintain several types of state:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Task State
├── Objective
├── Constraints
├── Current plan
└── Completion criteria

Repository State
├── Relevant files
├── Architecture
├── Dependencies
└── Existing patterns

Execution State
├── Commands executed
├── Tests
├── Errors
└── Changes made

Decision Memory
├── Decisions
├── Assumptions
├── Rejected approaches
└── Open questions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This distinction matters.&lt;/p&gt;

&lt;p&gt;The agent shouldn't have to repeatedly rediscover why it chose a particular approach three hours earlier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verification Is More Important Than Generation
&lt;/h2&gt;

&lt;p&gt;If agents are going to operate independently for hours, verification becomes a core capability.&lt;/p&gt;

&lt;p&gt;A strong long-horizon workflow should repeatedly answer:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Do I have evidence that I'm moving toward the correct solution?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That evidence can come from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unit tests&lt;/li&gt;
&lt;li&gt;Integration tests&lt;/li&gt;
&lt;li&gt;Type checking&lt;/li&gt;
&lt;li&gt;Static analysis&lt;/li&gt;
&lt;li&gt;Build systems&lt;/li&gt;
&lt;li&gt;Linters&lt;/li&gt;
&lt;li&gt;Security scanners&lt;/li&gt;
&lt;li&gt;Runtime behavior&lt;/li&gt;
&lt;li&gt;Code review&lt;/li&gt;
&lt;li&gt;Explicit acceptance criteria&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent should not simply follow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plan → Code → Done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A better loop is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plan
 ↓
Execute
 ↓
Verify
 ↓
Observe
 ↓
Update plan
 ↓
Execute again
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In other words, long-horizon agents need to behave less like autocomplete and more like &lt;strong&gt;closed-loop control systems&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Happens When the Agent Gets Stuck?
&lt;/h2&gt;

&lt;p&gt;This is another important question.&lt;/p&gt;

&lt;p&gt;Suppose an agent spends 90 minutes trying to fix a failing integration test.&lt;/p&gt;

&lt;p&gt;Should it continue?&lt;/p&gt;

&lt;p&gt;Not necessarily.&lt;/p&gt;

&lt;p&gt;A robust agent needs &lt;strong&gt;stopping conditions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;If progress is measurable:
    continue

If the same error repeats:
    reconsider the approach

If assumptions conflict:
    revisit the plan

If confidence drops significantly:
    request human input

If acceptance criteria are satisfied:
    finish
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Knowing when to stop can be just as important as knowing what to do next.&lt;/p&gt;

&lt;h2&gt;
  
  
  Humans Don't Disappear
&lt;/h2&gt;

&lt;p&gt;Long-horizon agents don't necessarily eliminate engineers.&lt;/p&gt;

&lt;p&gt;Instead, they can change where engineers spend their time.&lt;/p&gt;

&lt;p&gt;Today:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Engineer
  ↓
Break down task
  ↓
Write code
  ↓
Debug
  ↓
Write tests
  ↓
Review
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A future workflow could look more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Engineer
  ↓
Define objective + constraints
  ↓
Agent executes
  ↓
Agent verifies
  ↓
Engineer reviews decisions + outcome
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The engineer becomes increasingly responsible for &lt;strong&gt;intent, architecture, constraints, and judgment&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The agent handles more of the execution.&lt;/p&gt;

&lt;p&gt;That is a meaningful shift.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Pull Request May Become the Natural Boundary
&lt;/h2&gt;

&lt;p&gt;One interesting model for long-horizon engineering is to make the &lt;strong&gt;pull request&lt;/strong&gt; the unit of agent autonomy.&lt;/p&gt;

&lt;p&gt;Instead of asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can the AI write code?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;we ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can the AI take an issue from description to a reviewable pull request?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That includes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Understanding the issue&lt;/li&gt;
&lt;li&gt;Exploring the repository&lt;/li&gt;
&lt;li&gt;Planning the implementation&lt;/li&gt;
&lt;li&gt;Making changes&lt;/li&gt;
&lt;li&gt;Running validation&lt;/li&gt;
&lt;li&gt;Fixing failures&lt;/li&gt;
&lt;li&gt;Reviewing the diff&lt;/li&gt;
&lt;li&gt;Documenting important decisions&lt;/li&gt;
&lt;li&gt;Opening the PR&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The human then reviews the result.&lt;/p&gt;

&lt;p&gt;This creates a useful boundary between &lt;strong&gt;autonomous execution and human accountability&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Biggest Bottleneck May Be Trust
&lt;/h2&gt;

&lt;p&gt;Technical capability is only half the problem.&lt;/p&gt;

&lt;p&gt;Organizations also need confidence that an agent won't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modify unrelated files&lt;/li&gt;
&lt;li&gt;Introduce security vulnerabilities&lt;/li&gt;
&lt;li&gt;Break production assumptions&lt;/li&gt;
&lt;li&gt;Leak sensitive information&lt;/li&gt;
&lt;li&gt;Consume excessive resources&lt;/li&gt;
&lt;li&gt;Hide failures&lt;/li&gt;
&lt;li&gt;Misinterpret requirements&lt;/li&gt;
&lt;li&gt;Make irreversible changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This means agent infrastructure will increasingly need:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Permissions
+
Sandboxing
+
Observability
+
Testing
+
Audit logs
+
Human approval
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An agent that can write code for five hours is impressive.&lt;/p&gt;

&lt;p&gt;An agent that can safely operate inside a production engineering environment is much harder.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Could Change?
&lt;/h2&gt;

&lt;p&gt;If long-horizon agents become reliable, the unit of software development may change.&lt;/p&gt;

&lt;p&gt;Instead of assigning engineers hundreds of small implementation tasks, teams could increasingly assign &lt;strong&gt;outcomes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Reduce API latency by 20% without changing the public API.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The agent could investigate profiling data, identify bottlenecks, experiment with optimizations, run benchmarks, and prepare a PR.&lt;/p&gt;

&lt;p&gt;Or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Add OAuth support while preserving existing authentication behavior.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The agent could inspect the architecture, implement the provider, add tests, update configuration, and document the changes.&lt;/p&gt;

&lt;p&gt;The engineer's role becomes less about manually performing every step and more about &lt;strong&gt;setting the direction and validating the outcome&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Question We Should Be Asking
&lt;/h2&gt;

&lt;p&gt;The most interesting question isn't:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“How much code can AI write?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“How much engineering responsibility can AI reliably carry?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There's a huge difference between generating a correct function and owning a complex engineering objective for several hours.&lt;/p&gt;

&lt;p&gt;Long-horizon agents push AI toward the second problem.&lt;/p&gt;

&lt;p&gt;And if they become reliable, software engineering may shift from &lt;strong&gt;human-directed implementation&lt;/strong&gt; toward &lt;strong&gt;human-directed autonomous execution&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We're still early.&lt;/p&gt;

&lt;p&gt;The difficult part isn't making agents run longer.&lt;/p&gt;

&lt;p&gt;It's making them &lt;strong&gt;stay correct while they do&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  What do you think?
&lt;/h3&gt;

&lt;p&gt;Would you trust an AI agent to take a well-defined GitHub issue, work on it independently for several hours, run the tests, and open a pull request without human intervention?&lt;/p&gt;

&lt;p&gt;Or would you still want a human involved at every major decision point?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Security Scanners Are Moving Into the Coding Agent Itself, Not Just CI</title>
      <dc:creator>Eva Clari</dc:creator>
      <pubDate>Tue, 01 Sep 2026 11:29:47 +0000</pubDate>
      <link>https://dev.to/eva_clari_289d85ecc68da48/security-scanners-are-moving-into-the-coding-agent-itself-not-just-ci-51la</link>
      <guid>https://dev.to/eva_clari_289d85ecc68da48/security-scanners-are-moving-into-the-coding-agent-itself-not-just-ci-51la</guid>
      <description>&lt;p&gt;For years, application security followed a familiar pattern: developers wrote code, committed it, opened a pull request, and security scanners analyzed the changes somewhere in the CI/CD pipeline.&lt;/p&gt;

&lt;p&gt;That model made sense when software development was primarily human-driven.&lt;/p&gt;

&lt;p&gt;But coding agents are changing the workflow.&lt;/p&gt;

&lt;p&gt;AI coding agents can now generate code, modify existing files, install dependencies, execute commands, run tests, and interact with development environments with limited human intervention. According to JetBrains' 2026 Developer Ecosystem Survey, 90% of professional developers surveyed were using AI coding agents at work at least weekly, with 68% using them daily.&lt;/p&gt;

&lt;p&gt;That creates an important security question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why wait until CI to discover a vulnerability when an AI agent can introduce it several minutes earlier?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is why security scanning is increasingly moving directly into the coding-agent workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Security Gap Is Moving Earlier&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Traditional CI-based security scanning remains important. SAST, software composition analysis (SCA), secret scanning, dependency checks, and other controls provide valuable protection before software moves further through the delivery pipeline.&lt;/p&gt;

&lt;p&gt;But AI-assisted development changes the speed and volume of code creation.&lt;/p&gt;

&lt;p&gt;An agent can generate hundreds of lines of code, add a package, modify configuration files, and make multiple changes during a single session. If security feedback only arrives after the developer commits those changes or opens a pull request, the vulnerability has already traveled further through the development process.&lt;/p&gt;

&lt;p&gt;The new approach is to place security controls closer to where the code is actually being created.&lt;/p&gt;

&lt;p&gt;Recent security tooling is already experimenting with this model. For example, agent-aware security solutions can trigger scans after an AI agent edits a file, evaluate dependencies before installation, and detect secrets immediately after they are introduced.&lt;/p&gt;

&lt;p&gt;This creates a much tighter feedback loop:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generate → Scan → Fix → Re-scan → Continue&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generate → Commit → CI Scan → Find Issue → Return to Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The difference may appear small, but at AI-generated development speeds, it can have a significant impact.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Coding Agents Introduce a Different Attack Surface&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The biggest mistake would be to think that securing AI-generated code is simply another version of traditional application security.&lt;/p&gt;

&lt;p&gt;The agent itself has privileges.&lt;/p&gt;

&lt;p&gt;It may have access to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Source-code repositories&lt;/li&gt;
&lt;li&gt;File systems&lt;/li&gt;
&lt;li&gt;Package managers&lt;/li&gt;
&lt;li&gt;Environment variables&lt;/li&gt;
&lt;li&gt;APIs&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;li&gt;Shell commands&lt;/li&gt;
&lt;li&gt;Development tools&lt;/li&gt;
&lt;li&gt;MCP servers and external services&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That means an attacker does not necessarily need to insert a conventional vulnerability into the final application.&lt;/p&gt;

&lt;p&gt;They could instead target the agent's workflow.&lt;/p&gt;

&lt;p&gt;For example, a malicious dependency could be recommended or installed by an agent. A compromised tool could influence what the agent executes. A malicious instruction could manipulate the agent into exposing sensitive information or performing an unsafe action.&lt;/p&gt;

&lt;p&gt;Cisco highlighted this expanding risk in 2026, noting that AI-powered IDE agents increasingly interact with file systems, APIs, shell commands, MCP servers, and other tools.&lt;/p&gt;

&lt;p&gt;Endor Labs has similarly described AI coding agents as systems that can write code, install dependencies, and interact with filesystems, packages, databases, and CI pipelines.&lt;/p&gt;

&lt;p&gt;So the security boundary is no longer simply the application.&lt;/p&gt;

&lt;p&gt;**The development agent has become part of the attack surface.&lt;/p&gt;

&lt;p&gt;Why CI Scanning Alone Isn't Enough**&lt;/p&gt;

&lt;p&gt;This does not mean CI security scanning is becoming obsolete.&lt;/p&gt;

&lt;p&gt;Quite the opposite.&lt;/p&gt;

&lt;p&gt;CI remains an important control because it provides centralized, repeatable verification before software progresses toward production.&lt;/p&gt;

&lt;p&gt;The problem is relying on CI as the first security checkpoint.&lt;/p&gt;

&lt;p&gt;Consider a simple example.&lt;/p&gt;

&lt;p&gt;An AI coding agent is asked to add authentication to a web application. It generates the implementation, adds a third-party library, changes configuration files, and runs the application's test suite.&lt;/p&gt;

&lt;p&gt;Several problems could potentially be introduced:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The generated authentication logic contains an insecure implementation.&lt;/li&gt;
&lt;li&gt;A dependency has a known vulnerability.&lt;/li&gt;
&lt;li&gt;A secret is accidentally placed in a configuration file.&lt;/li&gt;
&lt;li&gt;The agent modifies security-sensitive configuration.&lt;/li&gt;
&lt;li&gt;A package with suspicious behavior is installed.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If these issues are discovered only during CI, developers have already moved away from the point where the changes were created.&lt;/p&gt;

&lt;p&gt;Agent-level scanning can provide feedback immediately.&lt;/p&gt;

&lt;p&gt;That is the real shift.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security Becomes Part of the Agent's Feedback Loop&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The most interesting development is not simply "scanning earlier."&lt;/p&gt;

&lt;p&gt;It is making security something the coding agent can respond to.&lt;/p&gt;

&lt;p&gt;Imagine an agent generates code containing a potential SQL injection vulnerability.&lt;/p&gt;

&lt;p&gt;A traditional scanner might report the finding after the pull request is created.&lt;/p&gt;

&lt;p&gt;An agent-integrated scanner can instead return something closer to:&lt;/p&gt;

&lt;p&gt;"This change introduces a potential SQL injection risk. Use parameterized queries before continuing."&lt;/p&gt;

&lt;p&gt;The agent can then modify the code and run the security check again.&lt;/p&gt;

&lt;p&gt;This creates a &lt;strong&gt;fix-and-verify loop&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Modern secure-AI-coding implementations are already using post-edit hooks and similar mechanisms to scan changed code, identify vulnerabilities, detect secrets, and provide remediation guidance directly within the development workflow.&lt;/p&gt;

&lt;p&gt;The objective isn't to eliminate developers from the process.&lt;/p&gt;

&lt;p&gt;It is to give developers and agents security feedback at the moment when it is most actionable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vulnerability Management Has to Evolve Too&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This shift also changes the role of vulnerability management.&lt;/p&gt;

&lt;p&gt;Historically, vulnerability management often meant:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Discover → Prioritize → Remediate → Validate&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That process remains relevant.&lt;/p&gt;

&lt;p&gt;But AI-driven development adds another dimension:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prevent → Discover → Prioritize → Remediate → Validate → Continuously monitor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Security teams need to understand not only which vulnerabilities exist, but also &lt;strong&gt;how they entered the development environment&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Was the vulnerability introduced by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An AI-generated code change?&lt;/li&gt;
&lt;li&gt;A new open-source dependency?&lt;/li&gt;
&lt;li&gt;An automated configuration change?&lt;/li&gt;
&lt;li&gt;An agent-installed package?&lt;/li&gt;
&lt;li&gt;A compromised development tool?&lt;/li&gt;
&lt;li&gt;A developer-approved AI recommendation?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without this context, security teams can end up treating symptoms instead of improving the development process.&lt;/p&gt;

&lt;p&gt;This is where strong vulnerability-management practices become particularly valuable.&lt;/p&gt;

&lt;p&gt;Teams need the ability to identify vulnerabilities, assess their severity and business impact, prioritize remediation, track ownership, and verify that fixes actually address the underlying risk.&lt;/p&gt;

&lt;p&gt;For organizations looking to strengthen these capabilities, Edstellar offers a Corporate &lt;a href="https://www.edstellar.com/course/vulnerability-management-training" rel="noopener noreferrer"&gt;Vulnerability Management Training Course&lt;/a&gt; designed to help teams build practical cybersecurity capabilities around proactive vulnerability management and security posture improvement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Security Teams Should Start Doing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As coding agents become more capable, security teams can take several practical steps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Scan AI-generated changes immediately&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don't wait exclusively for pull requests or CI.&lt;/p&gt;

&lt;p&gt;Where possible, introduce security checks when agents create or modify code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Add dependency controls&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI agents can rapidly introduce new packages.&lt;/p&gt;

&lt;p&gt;Dependency analysis should therefore become part of the agent workflow, particularly before automated package installation.&lt;/p&gt;

&lt;p&gt;Some newer approaches can evaluate packages before installation and block known risky dependencies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Scan for secrets continuously&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Agents can accidentally generate API keys, credentials, tokens, or other sensitive information.&lt;/p&gt;

&lt;p&gt;Secret detection should happen immediately after generated changes rather than relying solely on repository-level scanning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Treat agent permissions as security controls&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ask what the agent can actually do.&lt;/p&gt;

&lt;p&gt;Can it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Execute shell commands?&lt;/li&gt;
&lt;li&gt;Install packages?&lt;/li&gt;
&lt;li&gt;Access production credentials?&lt;/li&gt;
&lt;li&gt;Modify infrastructure?&lt;/li&gt;
&lt;li&gt;Access private repositories?&lt;/li&gt;
&lt;li&gt;Call external APIs?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The principle of least privilege should apply to coding agents just as it applies to human users and applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Keep CI as the final verification layer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Moving security into the agent does not mean removing CI scanning.&lt;/p&gt;

&lt;p&gt;Instead, organizations should create multiple layers of verification.&lt;/p&gt;

&lt;p&gt;A useful model is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent-level scanning → IDE/developer scanning → Pull-request checks → CI/CD security gates → Runtime monitoring&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each layer catches risks that may escape another.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Bigger Change: Security Is Becoming Continuous&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The phrase "shift left" has been used in application security for years.&lt;/p&gt;

&lt;p&gt;But agentic development pushes that idea further.&lt;/p&gt;

&lt;p&gt;Security is no longer simply moving from production toward development.&lt;/p&gt;

&lt;p&gt;It is moving &lt;strong&gt;inside the development process itself.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Recent industry discussions increasingly describe software development as an interconnected system of developers, AI agents, services, dependencies, pipelines, and automated infrastructure rather than a simple linear process.&lt;/p&gt;

&lt;p&gt;That means security controls need to understand this entire system.&lt;/p&gt;

&lt;p&gt;The coding agent is not just another developer tool.&lt;/p&gt;

&lt;p&gt;It can become an active participant in software creation.&lt;/p&gt;

&lt;p&gt;And when something is actively creating software, security needs to be present while that creation is happening.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Future Isn't "Agent vs. CI"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The future of secure software development is unlikely to be a choice between scanning inside coding agents and scanning in CI.&lt;/p&gt;

&lt;p&gt;It will be both.&lt;/p&gt;

&lt;p&gt;Agent-level security provides immediate feedback and prevents risky changes from traveling further.&lt;/p&gt;

&lt;p&gt;CI provides standardized, centralized verification.&lt;/p&gt;

&lt;p&gt;Runtime security provides another layer of assurance after deployment.&lt;/p&gt;

&lt;p&gt;Together, they create defense in depth for an increasingly autonomous software development lifecycle.&lt;/p&gt;

&lt;p&gt;The key lesson for security leaders is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If AI agents are writing the code, security scanners need to understand the agent's workflow—not just the code that eventually reaches CI.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As development becomes faster and increasingly autonomous, vulnerability management cannot remain a downstream activity.&lt;/p&gt;

&lt;p&gt;Security has to move closer to the moment of creation.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>coding</category>
      <category>security</category>
    </item>
    <item>
      <title>The Economics of AI Coding in 2026: Why Your Stack Is Already Outdated</title>
      <dc:creator>Eva Clari</dc:creator>
      <pubDate>Mon, 24 Aug 2026 13:30:00 +0000</pubDate>
      <link>https://dev.to/eva_clari_289d85ecc68da48/the-economics-of-ai-coding-in-2026-why-your-stack-is-already-outdated-6an</link>
      <guid>https://dev.to/eva_clari_289d85ecc68da48/the-economics-of-ai-coding-in-2026-why-your-stack-is-already-outdated-6an</guid>
      <description>&lt;p&gt;The adoption of artificial intelligence in software development has transitioned from experimental curiosity to core operational strategy. In 2026, engineering organizations are no longer debating whether to use AI assistants. Instead, they are focused on optimizing the cost, performance, and scalability of their agentic workflows. Many teams discover that the AI stack they built just a year ago is already outdated, characterized by high API latency and unsustainable token costs. The rapid decline in model pricing and the rise of specialized code models have redefined the economics of software development.&lt;/p&gt;

&lt;p&gt;To remain competitive, technology leaders must continuously evaluate their development platforms. Relying on a single premium model for all development tasks is a financial mistake. Building a modern, cost-effective agentic stack requires a multi-model architecture, dynamic context caching, and local execution options that protect budgets while improving developer productivity.&lt;/p&gt;

&lt;h2&gt;Analyze the Rapid Shift in Model Economics&lt;/h2&gt;

&lt;p&gt;The primary driver of the changing AI stack is the dramatic decrease in API pricing for token processing. Over the past two years, the cost of processing one million input tokens has dropped by over 80 percent across all major model providers. This price drop has made high-context tasks, such as feeding entire code repositories or documentation sets into a model, financially viable. According to a 2025 Gartner report on enterprise AI infrastructure, companies that updated their architectures to take advantage of these lower pricing tiers reduced their development platform costs by over 50 percent.&lt;/p&gt;

&lt;p&gt;Additionally, model execution speeds have increased significantly, with modern specialized models generating code tokens at a fraction of the latency of early frontier models. This performance improvement allows developers to receive code suggestions, compilation feedback, and test results in real time. Organizations that remain tied to older, slow models suffer from operational drag, as developers spend valuable time waiting for model responses instead of writing and reviewing code.&lt;/p&gt;

&lt;p&gt;The third economic shift is the viability of running mid-sized, specialized code models locally on developer machines or private enterprise servers. Modern local models with under 14 billion parameters can generate boilerplate code and perform simple refactoring tasks with high accuracy, eliminating API costs and ensuring that sensitive proprietary code never leaves the company's private network. This hybrid execution model offers a secure, cost-effective alternative to cloud-only APIs.&lt;/p&gt;

&lt;h2&gt;Understand the Cost of a Disjointed Context Strategy&lt;/h2&gt;

&lt;p&gt;Failing to optimize context management is the most common cause of high API bills in corporate agentic systems. Because terminal agents must read multiple files, compile logs, and search codebases, they can easily consume millions of tokens during a single run. If the agentic stack does not utilize context caching, the system must process the entire codebase context repeatedly, leading to massive token redundancy. This redundancy wastes API budget and increases response latency.&lt;/p&gt;

&lt;p&gt;To resolve this issue, modern developer platforms implement dynamic context caching. Caching allows the system to store the tokenized representation of the codebase, libraries, and documentation in memory. When the developer makes minor edits or requests feedback, the model only processes the new changes, referencing the cached context for the rest. A 2024 GitHub engineering blog post revealed that implementing context caching in their developer tools reduced average input token costs by over 70 percent, highlighting the massive efficiency gains available.&lt;/p&gt;

&lt;p&gt;Furthermore, teams must implement strict context boundaries. Do not feed the entire repository into the model for simple tasks. L&amp;amp;D and engineering leaders should train developers to specify context boundaries, providing the agent with only the relevant files and APIs required for the task. This discipline reduces token consumption, minimizes model confusion, and ensures that suggestions are more accurate and relevant.&lt;/p&gt;

&lt;h2&gt;Implement a Multi-Model Hybrid Stack&lt;/h2&gt;

&lt;p&gt;To build a cost-effective, future-ready developer platform, organizations should deploy a hybrid, multi-model stack. This architecture routes tasks dynamically based on complexity and security requirements. Simple tasks like writing boilerplate code, formatting, and executing unit tests run on local or inexpensive cloud models. Complex tasks requiring architectural planning, cross-module integration, and advanced debugging are escalated to premium cloud models with superior reasoning capabilities.&lt;/p&gt;

&lt;p&gt;A 2025 McKinsey study on software engineering productivity showed that organizations that implement dynamic, multi-model routing report 40 percent faster task completion rates and significantly lower operational costs compared to those that rely on a single model. By treating models as specialized computing resources, you protect your budget while ensuring that developers always have the right tool for the job.&lt;/p&gt;

&lt;h2&gt;A Platform Optimization Checklist for Tech Leaders&lt;/h2&gt;

&lt;p&gt;To ensure your development platform remains cost-effective and high-performing, technology leaders should follow a structured optimization plan. When you evaluate your current agentic stack, verify that your plan addresses these essential components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implement dynamic context caching to reduce input token redundancy and costs across agent runs&lt;/li&gt;
&lt;li&gt;Deploy mid-sized, specialized local models for basic code generation and sensitive internal tasks&lt;/li&gt;
&lt;li&gt;Establish automated routing rules that select the optimal model based on task complexity and latency constraints&lt;/li&gt;
&lt;li&gt;Set up real-time token tracking and cost dashboards for every development team&lt;/li&gt;
&lt;li&gt;Establish strict context boundary rules to prevent agents from processing irrelevant codebase files&lt;/li&gt;
&lt;li&gt;Implement automated fallback mechanisms that escalate tasks to premium models upon compilation failures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By implementing this structured checklist, technology leaders can build a scalable, secure, and cost-effective development platform that drives engineering productivity and protects the company's bottom line.&lt;/p&gt;

&lt;h2&gt;Navigate the Changing Landscape of AI Development&lt;/h2&gt;

&lt;p&gt;The economics of AI coding are changing rapidly, and the stacks of yesterday are no longer viable. To succeed in this fast-paced environment, technology leaders must move away from single-model architectures and embrace a hybrid, multi-model approach that prioritizes context caching and cost optimization. By building a flexible, future-ready platform, organizations can maximize the productivity benefits of AI while maintaining control over their operational budgets, ensuring long-term competitiveness in a digital economy. The future of software engineering is efficient, and the stack is ready.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Per-Subagent Model Routing: Cheap Models for Boilerplate, Strong Models for Hard Bugs</title>
      <dc:creator>Eva Clari</dc:creator>
      <pubDate>Mon, 17 Aug 2026 05:29:00 +0000</pubDate>
      <link>https://dev.to/eva_clari_289d85ecc68da48/per-subagent-model-routing-cheap-models-for-boilerplate-strong-models-for-hard-bugs-189a</link>
      <guid>https://dev.to/eva_clari_289d85ecc68da48/per-subagent-model-routing-cheap-models-for-boilerplate-strong-models-for-hard-bugs-189a</guid>
      <description>&lt;p&gt;The architecture of AI coding assistants is evolving from single-model chat interfaces to multi-agent systems. In these systems, a primary coordinator agent delegates specific programming tasks to specialized subagents. A key challenge in operating these multi-agent pipelines is managing the cost and latency of the underlying large language models. Running every subagent task through a premium, high-capacity model is financially unsustainable. To solve this problem, engineering teams are implementing per-subagent model routing, utilizing cheap, fast models for repetitive boilerplate tasks and reserving premium models for complex reasoning and debugging.&lt;/p&gt;

&lt;p&gt;This routing strategy treats models as specialized computing resources, matching the complexity of the task with the capabilities of the model. By designing a coordinated model pipeline, software teams can reduce API costs dramatically while improving response speeds, making interactive AI-assisted coding practical at an enterprise scale.&lt;/p&gt;

&lt;h2&gt;Understand the Subagent Roles in the Coding Pipeline&lt;/h2&gt;

&lt;p&gt;To implement model routing, you must define the different roles within a multi-agent coding pipeline. A typical pipeline includes at least four types of subagents, each performing a distinct function. The first is the researcher subagent, which searches the codebase, reads files, and locates relevant code symbols. This task involves high-volume context processing but requires low reasoning capabilities, making it ideal for large-context, inexpensive models that can quickly parse text.&lt;/p&gt;

&lt;p&gt;The second is the builder subagent, which generates code, writes unit tests, and drafts boilerplate structures. While this requires code syntax knowledge, it remains relatively straightforward for mid-sized, specialized code models. The third is the compiler subagent, which executes build commands and parses compilation errors. This is a deterministic task that requires parsing log outputs and mapping them to files, which can be handled by small, fast models or traditional non-LLM scripts.&lt;/p&gt;

&lt;p&gt;The fourth is the debugger subagent, which resolves complex compilation failures, logical bugs, and system integration issues. This role requires advanced reasoning, system-level understanding, and iterative problem-solving capabilities. When the builder or compiler subagent encounters an error they cannot resolve, the system escalates the task to the debugger subagent, which runs on a premium model. This escalation path ensures that expensive computing resources are only utilized when simple approaches fail.&lt;/p&gt;

&lt;h2&gt;Analyze the Financial and Performance Benefits of Routing&lt;/h2&gt;

&lt;p&gt;The economic impact of per-subagent model routing is substantial. A typical multi-agent coding run can involve dozens of model calls as the agent searches files, drafts code, compiles, and tests. If every call runs on a frontier model, the API cost per task can quickly become prohibitive. A 2024 analysis by the Software Engineering Institute (SEI) on corporate AI adoption showed that implementing dynamic model routing reduces average API costs by over 60 percent compared to single-model architectures, without sacrificing task completion rates.&lt;/p&gt;

&lt;p&gt;Performance latency is another critical benefit. Smaller models with fewer parameters generate tokens significantly faster than large frontier models. By routing boilerplate generation to a fast, specialized model, developers receive code suggestions in real time, reducing the time they spend waiting for the agent to complete a task. This rapid feedback loop is essential for maintaining an interactive, productive developer experience.&lt;/p&gt;

&lt;p&gt;However, model routing requires a robust fallback mechanism. If a cheap model fails to generate valid code or resolve a compilation error after a few attempts, the system must automatically escalate the task to a more capable model. This escalation path prevents the agent from getting stuck in loops of low-quality attempts, protecting the developer's time and ensuring that complex bugs are resolved by models with sufficient reasoning capacity.&lt;/p&gt;

&lt;h2&gt;Implement a Dynamic Model Routing Pipeline&lt;/h2&gt;

&lt;p&gt;To deploy per-subagent model routing, platform engineers must build a routing coordinator that manages token allocation and task escalation. The coordinator receives task requests from the primary agent, evaluates the task complexity based on historical metadata or prompt classification, and selects the optimal model from the available providers. The routing rules should be stored in a centralized configuration file, allowing teams to swap models as new, cheaper options become available on the market.&lt;/p&gt;

&lt;p&gt;A 2023 McKinsey report on cloud infrastructure optimization highlighted that dynamic resource routing is the single most effective way to manage the costs of generative AI applications. By treating LLMs as specialized database resources and routing queries based on complexity, enterprises can scale their AI development tools to thousands of engineers without exceeding their budgets.&lt;/p&gt;

&lt;h2&gt;A Routing Checklist for Platform Engineers&lt;/h2&gt;

&lt;p&gt;To design an effective model routing pipeline, platform engineering teams should follow a structured implementation plan. When you develop your agentic routing strategy, ensure your system incorporates these essential components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Classify subagent tasks into distinct tiers based on reasoning complexity and context size requirements&lt;/li&gt;
&lt;li&gt;Set up a centralized routing configuration that maps subagent roles to specific model endpoints&lt;/li&gt;
&lt;li&gt;Implement automated latency and cost tracking for every subagent execution run&lt;/li&gt;
&lt;li&gt;Establish strict fallback rules that escalate tasks to premium models after a defined number of failed attempts&lt;/li&gt;
&lt;li&gt;Optimize prompt templates for each target model to ensure consistent output formatting and quality&lt;/li&gt;
&lt;li&gt;Monitor task completion rates and API spend weekly to refine routing thresholds and model selections&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By implementing this structured checklist, platform engineers can build a cost-effective, high-performance developer platform that leverages the strengths of multiple models.&lt;/p&gt;

&lt;h2&gt;Prepare for the Multi-Model Developer Platform&lt;/h2&gt;

&lt;p&gt;The future of software development belongs to coordinated, multi-agent systems that utilize the entire spectrum of language models. By implementing per-subagent model routing, organizations can overcome the cost and latency barriers that limit enterprise AI adoption. This strategic approach ensures that developers receive fast, affordable assistance for routine tasks while maintaining access to advanced reasoning capabilities for complex system integration and debugging. The engineering teams that master multi-model orchestration will lead the next wave of software productivity.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>architecture</category>
      <category>llm</category>
    </item>
    <item>
      <title>What 51% AI-Written Code on GitHub Actually Means for Review Culture</title>
      <dc:creator>Eva Clari</dc:creator>
      <pubDate>Mon, 10 Aug 2026 11:43:22 +0000</pubDate>
      <link>https://dev.to/eva_clari_289d85ecc68da48/what-51-ai-written-code-on-github-actually-means-for-review-culture-3ojm</link>
      <guid>https://dev.to/eva_clari_289d85ecc68da48/what-51-ai-written-code-on-github-actually-means-for-review-culture-3ojm</guid>
      <description>&lt;p&gt;The volume of machine-generated code in public repositories is growing rapidly. Recent developer telemetry indicates that a substantial portion of code committed to platforms like GitHub is generated by artificial intelligence tools. While advocates celebrate this trend as a major productivity breakthrough, it introduces a critical challenge for engineering organizations: the breakdown of code review culture. When the speed of code generation outpaces the capacity of human review, developers face a major bottleneck.&lt;/p&gt;

&lt;p&gt;Reviewing code is a fundamental practice that protects system stability, ensures compliance, and facilitates knowledge sharing within engineering teams. However, when developers receive pull requests containing hundreds of lines of AI-generated boilerplate, the traditional review process becomes slow and exhausting. To prevent code quality from declining, engineering leaders must redesign their review workflows to adapt to the realities of AI-assisted software development.&lt;/p&gt;

&lt;h2&gt;Analyze the Impact of High-Volume Code Generation on Reviewers&lt;/h2&gt;

&lt;p&gt;The primary challenge of AI-generated code is the sheer volume of changes. Because an AI agent can write hundreds of lines of code in seconds, developers can open complex pull requests much faster than before. Human reviewers, who must manage their own programming tasks, struggle to keep up with the review queue. This imbalance leads to two negative outcomes: review bottlenecks that delay project delivery, or superficial approvals where developers sign off on code without fully understanding it.&lt;/p&gt;

&lt;p&gt;Superficial code review is particularly dangerous for enterprise systems. AI models can introduce subtle logic errors, security vulnerabilities, or inefficient algorithms that are difficult to spot during a quick scan. A 2024 GitClear study on code quality trends showed that the proportion of code churn (code that is rewritten or deleted within two weeks of commit) has increased by over 15 percent since the widespread adoption of AI coding assistants. This statistic suggests that while developers write code faster, they also write more mistakes that require correction later.&lt;/p&gt;

&lt;p&gt;Furthermore, high-volume code generation threatens the educational value of code reviews. Traditionally, code reviews served as a mentorship channel where senior engineers taught junior developers best practices, architectural principles, and domain-specific knowledge. When reviews consist mostly of approving machine-generated boilerplate, these learning opportunities disappear, which can stunt the long-term professional development of junior engineers.&lt;/p&gt;

&lt;h2&gt;Shift from Line-by-Line Inspection to Architectural Verification&lt;/h2&gt;

&lt;p&gt;To adapt to the volume of AI-generated code, engineering teams must change how they conduct reviews. Do not waste human reviewer time checking syntax, formatting, or basic unit tests. Automated tools should handle these checks before a human reviewer even opens the pull request. The human review should focus on high-level concerns, such as architectural alignment, system integration, security models, and long-term maintainability.&lt;/p&gt;

&lt;p&gt;L&amp;amp;D and engineering leaders should train developers to write comprehensive, automated test suites that verify the behavioral outcomes of AI-generated code. If the tests prove that the code behaves correctly under various conditions, the reviewer does not need to inspect every line of boilerplate. Instead, they inspect the test design and verify that the code integrates cleanly with the existing system architecture. This shift from line-by-line inspection to verification allows teams to maintain quality without slowing down deployment.&lt;/p&gt;

&lt;p&gt;Additionally, engineering organizations must establish clear rules regarding AI code authorization. Developers must take full responsibility for the code they commit, regardless of whether a machine wrote it. If an AI assistant introduces a bug or a security vulnerability, the developer who approved the code remains responsible for resolving it. This accountability ensures that developers remain vigilant and inspect AI outputs carefully before submitting them for review.&lt;/p&gt;

&lt;h2&gt;Implement a Automated Code Review Pipeline&lt;/h2&gt;

&lt;p&gt;To manage the review workload, organizations should implement an automated pre-review pipeline. This pipeline acts as a filter, ensuring that human reviewers only receive code that meets baseline quality standards. The pipeline should run linting tools, security scanners, dependency checkers, and unit test suites automatically upon pull request submission. If any of these automated checks fail, the pull request should be blocked, requiring the author to resolve the issues before requesting human review.&lt;/p&gt;

&lt;p&gt;A 2024 survey by the DevOps Research and Assessment (DORA) group revealed that organizations with highly automated testing and review pipelines report 47 percent faster deployment cycles and significantly lower change failure rates than those with manual processes. By automating low-level checks, you protect your senior engineers from review burnout and ensure they can focus their expertise on complex architectural challenges that require human judgment.&lt;/p&gt;

&lt;h2&gt;A Code Review Checklist for Modern Engineering Teams&lt;/h2&gt;

&lt;p&gt;To ensure consistent quality in the era of AI-generated code, engineering teams should follow a structured review checklist. When you evaluate a pull request containing machine-generated code, verify that your review addresses these critical areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure all automated syntax, formatting, and unit tests pass before initiating human review&lt;/li&gt;
&lt;li&gt;Inspect the test coverage to verify that the tests check boundary conditions and error handling&lt;/li&gt;
&lt;li&gt;Evaluate how the new code integrates with existing databases, APIs, and system architectures&lt;/li&gt;
&lt;li&gt;Check for common security vulnerabilities, such as unvalidated input or insecure dependency usage&lt;/li&gt;
&lt;li&gt;Verify that the code avoids unnecessary complexity and conforms to internal style guidelines&lt;/li&gt;
&lt;li&gt;Confirm that the author has documented any non-obvious design choices or architectural changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By implementing this structured checklist, engineering teams can safely leverage the speed of AI code generation while maintaining the high standards required for stable, enterprise-grade software systems.&lt;/p&gt;

&lt;h2&gt;Build a Resilient Review Culture for the AI Era&lt;/h2&gt;

&lt;p&gt;AI coding tools are transforming the software development lifecycle, but they do not eliminate the need for human oversight. The organizations that succeed in this new era will be those that adapt their review cultures to handle the volume of machine-generated code. By automating baseline checks, focusing human expertise on architecture, and maintaining developer accountability, engineering teams can capture the productivity benefits of AI without sacrificing code quality or system stability. The future of software engineering requires a balance between machine speed and human judgment.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Inside the Agentic Coding Stack: Terminal Agents, IDEs, and Cheap Models Working Together</title>
      <dc:creator>Eva Clari</dc:creator>
      <pubDate>Mon, 10 Aug 2026 11:39:14 +0000</pubDate>
      <link>https://dev.to/eva_clari_289d85ecc68da48/inside-the-agentic-coding-stack-terminal-agents-ides-and-cheap-models-working-together-4mdj</link>
      <guid>https://dev.to/eva_clari_289d85ecc68da48/inside-the-agentic-coding-stack-terminal-agents-ides-and-cheap-models-working-together-4mdj</guid>
      <description>&lt;p&gt;The software development workflow is shifting from human-authored code with AI assistance to fully agentic systems. In this new paradigm, developers do not just write code with tab-completion tools. They collaborate with autonomous AI agents that can read codebases, run tests, diagnose errors, and write multi-file edits. Understanding how these tools work together represents a critical skill for modern software engineers. The modern agentic stack is not built on a single all-powerful model, but rather on a coordinated pipeline that combines terminal agents, interactive development environments (IDEs), and specialized, cheap language models.&lt;/p&gt;

&lt;p&gt;This shift is driven by the realization that LLMs alone cannot build complex systems. An isolated model has no tool access to verify output. Embedded in a runtime environment with filesystem, shell, and test runner access, the model becomes part of a robust agentic stack transforming software engineering.&lt;/p&gt;

&lt;h2&gt;
  
  
  Define the Components of the Agentic Coding Stack
&lt;/h2&gt;

&lt;p&gt;To understand the agentic stack, you must examine its three core layers. The first layer is the terminal agent. Unlike code assistants that only suggest text changes, a terminal agent can execute commands directly on the user's system or in a secure sandbox. It operates in a loop: proposing a code change, running compilation or testing commands, reading the errors, and iterating until the tests pass. By using the shell as a feedback mechanism, terminal agents can verify the correctness of their work before presenting it to the developer, reducing syntax errors and build failures.&lt;/p&gt;

&lt;p&gt;The second layer is the interactive development environment (IDE) integration. Terminal agents need context to make intelligent edits, and the IDE serves as the primary context provider. Modern agentic IDEs track user actions, such as which files are open, where the cursor is positioned, and recent compilation results. This metadata is packaged and sent to the agent alongside the user's prompt. Furthermore, the IDE provides a user interface for review, allowing developers to inspect file diffs, approve command execution, and guide the agent when it encounters ambiguity.&lt;/p&gt;

&lt;p&gt;The third layer is the underlying language models. In the early stages of AI coding, developers assumed that only the largest, most expensive models could handle programming tasks. Today, the stack relies on a mixture of models. Large models are reserved for complex planning and architectural decisions, while smaller, cheaper models handle repetitive tasks like boilerplate generation, code formatting, and simple search queries. A 2024 GitHub developer survey revealed that over 70 percent of enterprises utilize multi-model routing to optimize cost and performance in their AI pipelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Analyze the Economics of Model Routing
&lt;/h2&gt;

&lt;p&gt;Running every agent request through a frontier model is financially unsustainable for large teams. A typical run involves dozens of iterations processing large code contexts. By routing lookup and editing tasks to smaller, optimized models, teams reduce API costs significantly.&lt;/p&gt;

&lt;p&gt;Furthermore, smaller models often deliver faster response times. A 2024 benchmark report by Hugging Face on code-generation models showed that specialized models with under 8 billion parameters can generate boilerplate code up to four times faster than frontier models, while maintaining comparable accuracy on simple tasks. This speed difference is critical for maintaining an interactive developer experience. When the agent can compile and test code in seconds using a fast model, the human-in-the-loop review process becomes much smoother.&lt;/p&gt;

&lt;p&gt;Model routing must be managed dynamically. If a cheap model fails to resolve a compilation error after a few attempts, the system escalates the task to a premium model. This prevents infinite loops, balancing cost, latency, and completion rates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implement a Cooperative Agentic Workflow
&lt;/h2&gt;

&lt;p&gt;To get the best results from the agentic coding stack, developers must adopt a cooperative workflow. Do not treat the agent as a magic solution that solves everything in one go. Instead, break down complex tasks into smaller, verifiable components. Start by asking the agent to research the codebase and outline an implementation plan. Review this plan, correct any assumptions, and then authorize the agent to execute the first step.&lt;/p&gt;

&lt;p&gt;Once the agent completes a step, verify the changes immediately. Run unit tests, check linting results, and inspect the git diff. If the agent makes a mistake, provide specific feedback pointing to the failed test or compilation error. This iterative, step-by-step approach ensures that errors are caught early before they compound, making it much easier to guide the agent to a correct solution. Working with agents is a collaborative process that requires active developer guidance to succeed.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Cooperative Coding Checklist for Developers
&lt;/h2&gt;

&lt;p&gt;To maximize productivity with agentic tools, engineering teams should follow a structured development checklist. When you launch an agentic coding task, ensure your workflow incorporates these essential steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define a narrow, specific goal for the agent before authorizing any file modifications&lt;/li&gt;
&lt;li&gt;Research the relevant files and provide the agent with direct links or references to reduce search times&lt;/li&gt;
&lt;li&gt;Authorize command execution, such as compiling or testing, in a secure, isolated sandbox environment&lt;/li&gt;
&lt;li&gt;Review all file modifications using a visual diff tool before committing the changes to your branch&lt;/li&gt;
&lt;li&gt;Establish automated test suites that the agent can run independently to verify its code edits&lt;/li&gt;
&lt;li&gt;Implement rollback mechanisms so you can easily discard the agent's work if it goes off track&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By implementing this structured checklist, developers can safely delegate repetitive tasks to AI agents while maintaining full control over the codebase quality and system architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prepare for the Agent-Led Future of Software Engineering
&lt;/h2&gt;

&lt;p&gt;Software development is changing, and agents are here to stay. Developers who orchestrate these tools will lead the industry. By adopting cooperative workflows, optimizing costs, and establishing testing frameworks, engineering teams can increase output and focus on complex architectural problems. The future of coding is collaborative, and the stack is ready.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
