Open gnovelli opened 1 year ago
Good suggestion, thanks a lot. We will take it into consideration. Some of your suggestions are in the roadmap.
To make the software development cycle iterative and integrate agents that examine and modify the code, you can adopt an approach similar to the Agile development model. Here's a possible solution:
Phase Definition:
a. Requirements: Receive the description of the requirements from the customer/user.
b. Design: Your GPT agent designs a solution based on the requirements.
c. Implementation: The GPT agent writes the code according to the design.
d. Review: Another set of agents examines the produced code.
e. Feedback: The user or another agent provides feedback on the product.
f. Modification/Iteration: Based on feedback, return to the design or implementation phase.
Reviewing Agents: Create or train specific agents to examine the produced code. These agents could specialize in finding bugs, style issues, or potential improvements.
User Feedback: Implement an interface through which the user can provide specific feedback on the produced software. This feedback could pertain to issues, missing features, or improvement suggestions.
Iteration Agents: These agents take the feedback (from both the reviewing agent and the user) and make the necessary changes to the code or return to the design phase.
Automate the Cycle: Once an iteration is complete, the system should automatically start the next one, unless a stopping criterion is met (e.g., a maximum number of iterations or user approval).
Logging and Tracking: Maintain a detailed record of each iteration, including the changes made, feedback received, and decisions taken. This will help understand and improve the process over time.
Continuous Integration and Continuous Deployment (CI/CD): Consider implementing CI/CD tools to automate the testing and deployment of the software after each iteration.
The success of this approach will largely depend on the quality of the agents you develop and the effectiveness of your interactions with the user. Ensure you have a good feedback mechanism and respond quickly to user needs.
Great idea, this is what we most want to do
Any update on enhancing existing software products?
Well, the functionality to incrementally add requirements was already supported in version 0.6, and this feature was further enhanced in version 0.7. However, the incremental development mode indeed encountered some issues:
We believe that these foundational efforts will accelerate research in incremental development in the future.
I have used your interesting software and it produces very nice output. I propose these possible ehancements. 1) To provide the possibility, in an iterative fashion, to enhance the software product itself and update all it's architectural views and implementation details until the user stop this iteration. 2) To save checkpoints of such iteration with some versioning control 3) To provide the possibility to restart the iteration from the last checkpoint saved 4) To analyze the code produced and identify any possible manual modification as a part of the produced software lifecycle itself
Firstly point 1.
Other points are more complex.