Architecture Exploration and Reflection Meet LLM-based Agents
1. Summary
- Generate ranked decision candidates (with explanation) for the software architecture design process via tree search.
3. Handwritten Then Keyed Notes
3.1. Introduction
- Proposes "ReArch": a design agent that incorporates architectural knowledge and explores decision spaces and reflects on proposed decision candidates to produce a ranking of design decisions for a given set of requirements within a given system context.
- Explores decisions via 2 approaches (and an added reflection step):
- ReAct
- Language Agent Tree Search (LATS)
- A previous project, "ArchMind" gave users a set of design tools which were manually invoked, this project attempts to be more autonomous by simply providing an output of ranked proposed decision candidates.
The goals are:- increase quality of analysis & decision making during design process when discussing alternatives
- reduce barriers of formal representations, specialized technical knowledge, increase accessibility for varying levels of expertise
- Retains manual design process while leveraging reasoning & generation capability of Large Language Model (LLM).
3.2. Background
3.2.1. Agent, LLM
3.2.2. ReAct
- ReAct is a method of utilizing a LLM in cycles of: reason -> act -> observe -> continue ? exceed max cycles -> stop
- Authors suggest it can be employed in software architecture domain but must be equipped with adequate tools and instructions.
- Challenges:
- varying response quality
- refining reasoning
- exploring alternatives
Above can be partially addressed by adding a "reflection" step:- Reflection is an opportunity to store a memory
- Reflection can:
- assess all requirements met
- judge decision quality
- identify tradeoffs
Reflection may trigger:- exploration
- additional subsequent decisions
4. Annotations
4.2. Introduction
4.2.1. Previous approaches relying on formal representations present adoption challenges.
Although automated approaches have been proposed for these tasks [1, 2], many of them rely on for- mal specifications of requirements and architectural models to leverage search methods (e.g., evolutionary algorithms, model checkers) and quality-attribute solvers. Other works have framed architecture synthesis as a planning problem. While these approaches have shown promise, their reliance on formal representations presents practical adoption challenges.