Powered by AI morphological analysis + vector semantic search
cs.SE2026-02-240
Toward an Agentic Infused Software Ecosystem
Fully leveraging the capabilities of AI agents in software development requires a rethinking of the software ecosystem itself. To this end, this paper outlines the creation of an Agentic Infused Software Ecosystem (AISE), that rests on three pillars.…
Authors:
Mark Marron
T o war d an Ag entic Infused Software Ecosystem Mark Marron mark.marron@uky .edu Univ ersity of K entuck y Lexington, K entuck y, USA Abstract Fully lev eraging the capabilities of AI agents in software de v elop- ment requires a rethinking of the software ecosystem itself. T o this end, this paper outlines the creation of an Agentic Infused Softwar e Ecosystem (AISE), that rests on three pillars. The first, of course, is the AI agents themselv es, which in the past 5 years ha ve mo ved from simple code completion and to ward sophisticated independent de vel- opment tasks, a trend which will only continue. The second pillar is the programming language and APIs (or tools) that these agents use to accomplish tasks, and increasingly , serve as the communication substrate that humans and AI agents interact and collaborate through. The final pillar is the runtime en vironment and ecosystem that agents operate within, and which pro vide the capabilities that programmatic agents use to interface with (and effect actions in) the e xternal world. T o realize the vision of AISE, all three pillars must be advanced in a holistic manner , and critically , in a manner that is synergistic for AI agents as they e xist today 1 , those that will e xist in the future, and for the human dev elopers that work alongside them. 1 Framing the Problem This paper takes the vie w that creating a fully realized agentic infused software ecosystem requires a holistic approach to the entire software stack. Agents provide a po werful mechanism for understanding user intents and suggesting possible actions that, are likely , good candidates for accomplishing a task. Howe ver , these outputs are not strongly grounded and do not directly provide any guarantees about correctness. W ithout support from the ecosystem for discov ering and managing tools, and an en vironment that is designed to safely ex ecute these actions, the practical usability of these systems is highly constrained. T o address these challenges, this work outlines a complete software stack, from the core programming language, to the tooling ecosystem, to the actual runtime en vironment, that is focused to supporting the de velopment and operation of agentic software systems. By co-designing these components with the needs of AI agents in mind, we can create a software ecosystem that is uniquely well suited to the challenges of agentic softw are development, and that can significantly enhance the capabilities of AI agents in this space. Thus, the first action is to outline the core design principals that concepts that guide the decisions and development of the various components of this agentic infused software ecosystem. Explicit Intents and Beha viors A key challenge for current AI LLM based agents is their ability to manage context and to (statistically) guess about possibly rele vant information that is not explicitly provided in the context windo w . In 1 For the near term we expect these to remain primarily Lar ge Language Model LLM Transformer based many cases agents are able to successfully infer this information, but there is a long tail of situations where incorrect assumptions can be made. This compounds with the fact that many programming languages and software ecosystems have a wide range of implicit behaviors and special case semantics which creates a le vel of inci- dental complexity [ 7 , 27 ] in the system. W orking on code with these implicit or unexpected behaviors now inv olves understanding the core intent of the code, and then additionally , explicitly or mentally revie wing a checklist of what implicit behaviors and what special case scenarios may be present. This is a significant cognitiv e load for human developers, particularly when revie wing AI generated code, and a significant source of errors for AI agents as the y must be aware of the full context of a codebase not just the immediate code they are working on. W ith this in mind, a core design concept for AISE is to create an ecosystem where the intent and impact of code is explicitly and concisely encoded in the textual (syntactic) representation of the code and that, whenever possible, corner case semantics are elimi- nated. As we will see, by careful language design choices, we can in fact simultaneously satisfy the somewhat contradictory goals of conciseness and explicitness, and in doing so, produce a software ecosystem that is uniquely well suited to the challenges faced when managing context window sizes and attention degradation. At the same time the pursuit of this design concept leads to a software ecosystem that is resistant to a wide range of error patterns and presents lower friction for human-AI cooperation. Discoverability Context window management and tool discovery are major chal- lenges for current AI agentic systems. There is a tension between explicitly loading anything & everything that may be relev ant to a task into the context window and how aggressiv ely to prune via document retriev al and ranking heuristics. As the number of tools and context that an agent has access to grows, it becomes increas- ingly dif ficult for the agent to effecti vely manage its context and can lead to major drops in agentic performance. This problem is not unique to transformer based AI agents, human dev elopers also face challenges in discov ering (remembering) and managing the tools and information they need to accomplish a task! From this perspective it is clear that a core design concept for AISE is to create an ecosystem that simplifies the discovery of tools and information for both human and AI agents. In addition to merely improving disco verability , we also want the ecosystem to simplify summarization tasks and e xplicitly support progressi ve disclosure. This is closely related to the pre vious design concept of explicit intents and impacts – by making the intent and impact of code explicit, it becomes easier for both human and AI agents to discover which tools and information are relev ant for a giv en task. Mark Marron Consider an API signature wait(duration: Int) vs. the same API in a language that allo ws unit typed [ 22 , 28 ] primiti ve values, wait(duration: MilliSeconds) . The token costs of the two signatures are nearly identical, but the second signature provides critical context e xplicitly in the signature itself while the first requires either the initial inclusion of the documentation in the context windo w , the agent to make a probabilistic guess for the unit of time, or for the agent to take the additional step to read the documentation to discov er this critical information. Mechanize Everything The vision of a “Dark Factory” for software agents is a north-star for full automated Agentic coding 2 . In this vision, the software ecosys- tem is mechanized to the point where agents can independently create entire applications without human intervention, operating merely from high lev el specifications of some form. Recent SotA results in this space hav e either used an existing application as an oracle ( i.e. cloning an existing application) or a full formal specification of the application ( i.e. in Lean [ 23 ] or Dafny [ 10 ]). Howe ver , the assumption of an existing application or a full formal specification 3 presents serious roadblocks to the realization of this vision at a large scale. This highlights the need to provide expressi ve, multi-modal and cooperativ e, mechanisms for specifying user/de veloper intent as a core concept in the AISE thinking. By integrating specification and requirements gathering as first-class parts of the system we can significantly reduce the difficulty of expressing what we want to build . By co-designing the language with a tooling ecosystem we ensure that we can then mechanically and/or cooperativ ely validate that the Agentic system has correctly built what was r equested . First-Class Cooperation The problem of specification and requirements is not just a problem for mechanization, but also a major barrier to ef fective cooperation between human and AI agents. The current SotA in human-AI co- operation in software dev elopment is to hav e a human provide a, mostly normativ e, specification of what they want to build, then an AI agent attempt to b uild it, and then a combination of testing and manual revie w to determine if the agent succeeded. This process is not only inefficient but also error prone, as it relies heavily on the human’ s ability to 1) write a comprehensi ve test suite and 2) perform careful code revie ws, both of which are notoriously monotonous, difficult, and error prone tasks for human de velopers!. Thus a core design concept is to integrate specification and re- quirements deeply into the language and system. This inv olves b uild- ing effecti ve multi-modal specification features into the program- ming language – for both formal and informal specifications – then building tooling to mechanize the v alidation of these specifications and creating workflo ws that provide simple/digestible feedback for a human dev eloper to interact with. 2 The idea of automatic application generation is a perennial one in computer science [ 18 , 20 , 26 ] b ut recent e xcitement in the Agentic space highlights the renewed potential in this space with LLM driv en systems – https://www .danshapiro.com/blog/2026/01/the- fiv e- lev els- from- spicy- autocomplete- to- the- software- factory/ and https://simonwillison.net/ 2026/Feb/7/software- factory/ 3 In practice these formal specification are often as large (or larger) and as complex [ 12 ] as the code itself! F ailure Safety & Resilience Failure is an ine vitable part of software dev elopment, this is true for software written by humans, and ev en more pressing in the context of Agentic software de velopment, where the complexity and unpredictability of the system can lead to a wide range of failure modes. A core design concept for AISE is to create an ecosystem with multi-layered safety and resilience mechanisms. At the language lev el we want to eliminate common sources of errors and bugs, and to make it easier for developers to write correct code. At the system lev el we want to build in mechanisms for sand- boxing resources, monitoring for data exfiltration, and managing fault logging and diagnostics. These mechanisims ensure that certain class of failures are impossible, or if the y do occur, are constrained to safe aborts. Beyond strict logical f ailures, we also consider qual- itativ e beha vior and recovery – e.g . ensuring progress even in the case of failure, identifying resource leaks in workflows, or workflo w failures resulting in inconsistent or un-re vertable states. Contributions (1) W e introduce the concept of a agentic infused software ecosystem and outline the core design concepts that guide the dev elopment of this ecosystem. (2) W e extend B O S Q U E with features for explicit Agent & API interfaces as well as support for multi-modal intent specifi- cation ( Section 3 ). (3) W e describe a mechanized validation tool, S U N D E W , that can be used to v alidate the correctness of AI generated code against specifications and requirements or used online by an Agent to provide formal introspection ( Section 4 ). (4) W e outline a runtime en vironment, M I N T , a HA TEOAS [ 15 ] that provides progressiv e discovery as well as support for safety and resilience when e xecuting agentic softw are sys- tems ( Section 5 ). 2 A Programming Language f or AISE W e begin with a review of the B O S QU E language as introduced in [ 27 ]. As noted by the authors – B O S Q U E is not based on a single big feature, or even a number of small novel features, instead the value comes from a holistic process of simplification and feature selection with a single focus toward what will simplify reasoning about code – for humans, AI agents, and formal systems. At the core of B O S QU E is a let-based functional language that is focused on eliminating the complexities associated with muta- blility , aliasing, inductiv e-inv ariants, and nondeterminism. A simple B O S Q UE program, Figure 1 , provides a flav or of the language. The code implements a simple sign function. This code is very similar to the implementation one would expect in Jav a or T ypeScript – in fact just eliminating the explicit ‘i’ specifier on the literals would make it v alid T ypeScript. This function highlights the use of multiple updates to the same variable and block structured conditional flows. B O S Q U E distin- guishes between variables, let, that are fixed and those, var , that can be updated. In many languages signed numbers hav e asymetric ranges and thus neg ation is unsafe in special cases i.e. -INT_MIN will error or silently wrap. Ho wever , in B O S Q UE the dynamic ranges for signed integers are symmetric, and aligned with their unsigned T oward an Agentic Infused Software Ecosystem function sign(x: Int): Int { var y = 1i; if (x < 0i) { y = -1i; } return y; } Figure 1: Example sign function in B O S Q U E . versions as well, so that negation is always safe and corner case issues with signed/unsigned con versions are eliminated. Another distincti ve feature of B O S QU E is the complete elimina- tion of loops for container processing. Instead, B O S QU E provides a rich set of higher-order functions for operating on collections – similar to Jav a Streams or C# LINQ as shown in Figure 2 . let l = List{1i, 2i, 3i}; l.allOf(pred(x) => x >= 0i) %% true l.map(fn(x) => x + 1i) %% List{2i, 3i, 4i} Figure 2: Eliminating the need for loops using higher-order functor operations in B O S Q U E . The use of higher-order functions allows for a natural, concise, and explicit way to e xpress collection processing. Most directly the representation is strictly more token efficient than the equiv alent loop-based code and we av oid the need for the agent to repeatedly generate common loop inde xing and control flo w , with the associated risks of off-by-one errors, incorrect variable name selection, and in verted conditions, that are regular occurrences in these types of code [ 21 ]. Thus, the use of higher-order functions (and B O S Q UE ) not only supports the goal of token efficiency , but also improv es the probability of successful (correct) code generation! This approach also allo ws for a more direct and explicit e xpres- sion of intent. Again, from the perspective of agentic code generation, the mapping from latent intent to semantically meaningful operation names improves the likelihood of of correct operation selection and, when “reading code” enables the agent to simply focus attention on a single operation name instead of needed to analyze all compo- nents in a multiline looping implementation. Interestingly , human dev elopers also benefit from this increased clarity when reading and revie wing code, as, they can also immediately understand the intent of the code without parsing through control flo w details. For example, the use of allOf makes it clear that the intent is to check if all elements satisfy a condition, which is more explicit than a loop with a conditional check and a break statement. The final feature of B O S Q UE that we highlight here is the ability to easily create strong type aliases and enforce inv ariants on, both aliased and composite, data values. Consider the code in Figure 3 that declares two type aliases, Fahrenheit and ZipCode , and two composite entities, TempRange and TempForecast . The code in Figure 3 shows how B O S Q U E allo ws developers to create strong type aliases that pro vide explicit semantic identity to otherwise primiti ve v alues. This allows the de veloper , or AI agent, to express intent more clearly . For example, using Fahrenheit type Fahrenheit = Int; type ZipCode = CString of /[0-9]{5}('-'[0-9]{4})/c; entity TempRange { field low: Fahrenheit; field high: Fahrenheit; invariant $low <= $high; } entity TempForecast { field location: ZipCode; field temp: TempRange; } Figure 3: Examples of types aliases and in variants in B O S Q U E . instead of Int makes it clear that the value represents a temperature (in Fahrenheit) and prev ents unit-confusion [ 22 ] or argument con- fusion bugs [ 40 ]. As we will see in Section 5.1 , this is very useful when specifying APIs where communication formats hea vily use primitiv e values. Beyond simple type aliasing, we can also attach explicit inv ari- ants to both aliased and composite data types. In this example, the ZipCode alias uses a regular expression to declare that a ZipCode value is a string and to be valid it must match the specific pattern 4 . Similarly , the TempRange entity declares an in variant that the low field must be less than or equal to the high field. These in variants can be checked at compile time or later as dynamic checks or in the S U N D E W v alidator . This ability to explicitly specify intent and inv ariant properties as part of the type system greatly enhances both the ability to reason about code and also to catch errors early in traditional dev elopment. It also provides a po werful mechanism for AI agents to generate code that is more likely to be correct, as the in variants can be used to guide both the initial generation, by making the constraints explicit for the LLM, and also used to provide feedback with failures of test-cases or static analysis systems. The validation of string structures is particularly important when APIs and data formats heavily use strings to represent structured data. T racking the possible data content, including sensitiv e PII or un-sanitized user controlled input, is otherwise a difficult problem that requires reasoning o ver flo ws across the entire program. W ith ov ersights leading to potentially serious security vulnerabilities [ 34 ] like SQL injection or leaks of sensiti ve data. These examples highlight the core design philosophy of the B O S QU E language and how it supports the goals of AISE. By elim- inating complexity and pro viding powerful abstractions, B O S Q U E enables dev elopers and AI agents to write code that is easier to gen- erate & reason about as well as providing multi-layered support for safety & fault detection. 3 Agentic B O S Q U E Fully integrating the B O S QU E language with agents and including them a first class part of the system requires additional extensions. As currently described, B O S Q UE is a general purpose programming 4 The regular expression language used by B OS Q UE is a specialized design targeted to eliminating common forms of ReDoS attacks on validation [ 11 ] Mark Marron % ** Transfer amt from payer account to payee account. ** % api transfer(amt: USD, payer: Account, payee: Account) env={ PAYMENT_AUTHORIZATION: OAUTH_TOKEN, PAYMENT_LIMIT: USD } permissions={ \account:${payer.routing}/${payer.account}\ } requires 0.0 < amt; requires amt <= env.PAYMENT_LIMIT || $events.contains(Approve{|payee=payee, amt=amt|}); ; % ** * Given a natural language (plaintext) message, * compute the amount to pay and send to the payee. ** % action splitBill(msg: String, payee: Account) { let amt = agent Chat::compute
Comments & Academic Discussion
Loading comments...
Leave a Comment