IP Library › Granted Patent US 12,619,399
Granted Patent B1
US 12,619,399 · App. 18/345,938 · Granted May 5, 2026

Requirements discovery for generative ai software development assistant

Inventors: Mark Rambow (Falkensee, DE); Jonathan Weiss (Berlin, DE)
Assignee: Amazon Technologies, Inc.
G06F8/35H04L51/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,619,399
App. No.
18/345,938
Filed
Jun 30, 2023
Granted
May 5, 2026
Kind
B1
Art Unit
2192
USPC
717/104
Abstract

Techniques for leveraging a large language model (LLM) in software development are described. A description of a software development task is received from a user. Data associated with the software system is obtained from a data source. An LLM is prompted to identify at least one aspect of the task which requires clarification from the user, at least partly by providing the obtained data to the LLM and asking the LLM to identify a question for the user which remains unanswered by the obtained data. The question is presented to the user. An answer to the question is received from the user. The LLM is prompted to respond to propose an implementation of the task at least partly based on the data associated with the software system and the answer received from the user. The proposed implementation is received from the LLM and caused to be displayed to the user.

Claims (78)

1 . A system comprising:

a large language model (LLM) hosted in a multi-tenant provider network; and

a software development service (SDS) provided by the multi-tenant provider network, the SDS executing SDS code using one or more processors to cause the SDS to:

receive, by a system design agent of the executing SDS code from a user, a description of a software development task to make a change to a software system;

prompt, by the system design agent of the executing SDS code, the LLM with a first prompt to generate a set of questions related to the software development task, wherein the first prompt includes the description of the software development task;

receive, by the system design agent of the executing SDS code, the set of questions from the LLM;

obtain, by one or more data-gathering context aggregators of the executing SDS code in response to receiving the description of the software development task to make the change to the software system, data associated with at least the software system by one or more of (i) accessing source code of the software system, (ii) accessing documentation about the software system, or (iii) accessing information about resources in the multi-tenant provider network which are used to run the software system;

prompt, by the system design agent of the executing SDS code, the LLM with a second prompt to answer individual questions in the set of questions using the obtained data;

receive answers to some questions in the set of questions from the LLM;

determine that a particular question in the set of questions remains unanswered;

request a response from the user to the particular question;

receive an answer to the particular question from the user;

prompt, by the system design agent of the executing SDS code, the LLM with a third prompt to respond with a proposed solution to the software development task, wherein the third prompt includes the answers received from the LLM and the answer to the particular question received from the user as well as at least some of the obtained data;

receive a response to the software development task from the LLM; and

send the response to the software development task to the user.

2 . The system of claim 1 , further comprising a chat-based interface configured to receive the description of the software development task from the user and output the response to the software development task to the user.

3 . The system of claim 1 , wherein the first prompt includes a limit on a maximum number of questions that can be included in the set of questions.

4 . A system comprising:

a large language model (LLM) in a multi-tenant provider network; and

a software development service (SDS) in the multi-tenant provider network, the SDS executing SDS code using one or more processors to cause the SDS to:

receive, by a system design agent of the executing SDS code from a user, a description of a software development task to make a change to a software system;

obtain, by one or more data-gathering context aggregators of the executing SDS code in response to receiving the description of the software development task to make the change to the software system, data associated with at least the software system from a data source by one or more of (i) accessing source code of the software system, (ii) accessing documentation about the software system, or (iii) accessing information about resources in the multi-tenant provider network which are used to run the software system;

prompt, by the system design agent of the executing SDS code, the LLM to identify at least one aspect of implementing the change to the software system which requires clarification from the user, at least partly by providing the obtained data to the LLM and asking the LLM to identify a question for the user which remains unanswered by the obtained data;

present the question to the user;

receive an answer to the question from the user;

prompt, by the system design agent of the executing SDS code, the LLM to respond to propose an implementation of the change to the software system at least partly based on the data associated with the software system and the answer received from the user;

receive the proposed implementation of the change to the software system from the LLM; and

cause display of the proposed implementation of the change to the software system to the user.

5 . The system of claim 4 , wherein to prompt the LLM to identify at least one aspect of implementing the change which requires clarification from the user, the SDS is to:

prompt the LLM with a first prompt to generate a set of questions, wherein the first prompt includes the description of the software development task;

receive the set of questions from the LLM; and

prompt the LLM with a second prompt to answer questions in the set of questions using the obtained data, wherein the question for the user which remains unanswered is a question in the set of questions.

6 . The system of claim 5 , wherein the obtained data is also associated with a plurality of other software systems accessible to the user, and wherein to ask the LLM to identify the question for the user which remains unanswered by the obtained data, the SDS is to:

prompt the LLM to indicate whether there is a consensus across answers to the question based on each software system represented in the obtained data including the software system and the other software systems; and

receive, from the LLM, an indication that there is not consensus in answers to the question.

7 . The system of claim 5 , wherein to ask the LLM to identify a question for the user which remains unanswered by the obtained data, the SDS is to:

prompt the LLM to provide a confidence score associated with an LLM-provided answer to the question for the software system;

receive the confidence score from the LLM; and

determine that the confidence score does not satisfy a threshold.

8 . The system of claim 5 , wherein the first prompt includes a limit on a maximum number of questions that can be included in the set of questions.

9 . The system of claim 8 , wherein the SDS is further configured to:

prompt the LLM with a third prompt to identify an estimated number of questions related to design considerations to respond to the software development task; and

receive the estimated number of questions from the LLM, wherein the limit is the estimated number of questions.

10 . The system of claim 5 , wherein an application including a chat-based interface provides an interface for the user, the description of the software development task received from the application, and the proposed implementation of the change to the software system sent to the application.

11 . The system of claim 5 , wherein the SDS is further configured to:

prompt the LLM with a validation prompt to check whether the set of questions conforms with a response definition, the validation prompt including the response definition and the set of questions; and

receive, from the LLM, an indication that the set of questions conforms with the response definition.

12 . The system of claim 4 , wherein the SDS is further configured to:

prompt the LLM with a sanitization prompt to check whether the answer from the user includes objectionable material; and

receive, from the LLM, an indication that the answer does not include objectionable material.

13 . A computer-implemented method comprising:

receiving, by a system design agent implemented by a software development service (SDS) executing SDS code using one or more processors, from a user, a description of a software development task to make a change to a software system;

obtaining, by one or more data-gathering context aggregators of the executing SDS code in response to receiving the description of the software development task to make the change to the software system, data associated with at least the software system from a data source by one or more of (i) accessing source code of the software system, (ii) accessing documentation about the software system, or (iii) accessing information about resources in a multi-tenant provider network which are used to run the software system;

prompting, by the system design agent of the executing SDS code, a large language model (LLM) to identify at least one aspect of implementing the change to the software system which requires clarification from the user, at least partly by providing the obtained data to the LLM and asking the LLM to identify a question for the user which remains unanswered by the obtained data;

presenting the question to the user;

receiving an answer to the question from the user;

prompting, by the system design agent of the executing SDS code, the LLM to respond to propose an implementation of the change to the software system at least partly based on the data associated with the software system and the answer received from the user;

receiving the proposed implementation of the change to the software system from the LLM; and

causing display of the proposed implementation of the change to the software system to the user.

14 . The computer-implemented method of claim 13 , wherein to prompt the LLM to identify at least one aspect of implementing the change which requires clarification from the user includes:

prompting the LLM with a first prompt to generate a set of questions, wherein the first prompt includes the description of the software development task;

receiving the set of questions from the LLM; and

prompting the LLM with a second prompt to answer questions in the set of questions using the obtained data, wherein the question for the user which remains unanswered is a question in the set of questions.

15 . The computer-implemented method of claim 14 , wherein the obtained data is also associated with a plurality of other software systems accessible to the user, and wherein to ask the LLM to identify the question for the user which remains unanswered by the obtained data includes:

prompting the LLM to indicate whether there is a consensus across answers to the question based on each software system represented in the obtained data including the software system and the other software systems; and

receiving, from the LLM, an indication that there is not consensus in answers to the question.

16 . The computer-implemented method of claim 14 , wherein to ask the LLM to identify the question for the user which remains unanswered by the obtained data includes:

prompting the LLM to provide a confidence score associated with an LLM-provided answer to the question for the software system;

receiving the confidence score from the LLM; and

determining that the confidence score does not satisfy a threshold.

17 . The computer-implemented method of claim 14 , wherein the first prompt includes a limit on a maximum number of questions that can be included in the set of questions.

18 . The computer-implemented method of claim 17 , further comprising:

prompting the LLM with a third prompt to identify an estimated number of questions related to design considerations to respond to the software development task; and

receiving the estimated number of questions from the LLM, wherein the limit is the estimated number of questions.

19 . The computer-implemented method of claim 14 , wherein an application including a chat-based interface provides an interface for the user, the description of the software development task received from the application, and the proposed implementation of the change to the software system sent to the application.

20 . The computer-implemented method of claim 13 , further comprising:

prompting the LLM with a sanitization prompt to check whether the answer from the user includes objectionable material; and

receiving, from the LLM, an indication that the answer does not include objectionable material.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2025
From: RAMBOW, MARK; WEISS, JONATHAN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 070926/0067 →
References Cited (75)
US 11029947B2 · Jayaraman et al. · 2021 [cited by applicant]
US 11182163B1 · Beals et al. · 2021 [cited by applicant]
US 11340968B1 · Malamut et al. · 2022 [cited by applicant]
US 11815943B1 · Rosendahl et al. · 2023 [cited by applicant]
US 11816455B2 · Bodin et al. · 2023 [cited by applicant]
US 11894996B2 · Yadav et al. · 2024 [cited by applicant]
US 11934801B2 · Rahmani et al. · 2024 [cited by applicant]
US 12182506B2 · Saxena · 2024 [cited by examiner]
US 12210839B1 · Burton · 2025 [cited by applicant]
US 12307168B2 · Orsos Barrenechea · 2025 [cited by applicant]
US 20060200748A1 · Shenfield · 2006 [cited by applicant]
US 20070266039A1 · Boykin et al. · 2007 [cited by applicant]
US 20080140705A1 · Luo · 2008 [cited by applicant]
US 20090138898A1 · Grechanik et al. · 2009 [cited by applicant]
US 20100114962A1 · Ahadian et al. · 2010 [cited by applicant]
US 20160085545A1 · Togan et al. · 2016 [cited by applicant]
US 20160283228A1 · Sullivan · 2016 [cited by applicant]
US 20170024311A1 · Andrejko et al. · 2017 [cited by applicant]
US 20170235661A1 · Liu et al. · 2017 [cited by applicant]
US 20180316568A1 · Gill et al. · 2018 [cited by applicant]
US 20200117446A1 · Smith et al. · 2020 [cited by applicant]
US 20200167134A1 · Dey et al. · 2020 [cited by applicant]
US 20200272435A1 · Apte et al. · 2020 [cited by applicant]
US 20210263643A1 · Thom et al. · 2021 [cited by applicant]
US 20210374558A1 · Tommasi et al. · 2021 [cited by applicant]
US 20220019427A1 · Davis et al. · 2022 [cited by applicant]
US 20220261242A1 · Pakiteeri et al. · 2022 [cited by applicant]
US 20220342779A1 · Minarik et al. · 2022 [cited by applicant]
US 20230185594A1 · Venkatram et al. · 2023 [cited by applicant]
US 20230280985A1 · Hayashi et al. · 2023 [cited by applicant]
US 20230376841A1 · Le et al. · 2023 [cited by applicant]
US 20230409290A1 · Duggal et al. · 2023 [cited by applicant]
US 20240004361A1 · Morris et al. · 2024 [cited by applicant]
US 20240070288A1 · Koteshwara et al. · 2024 [cited by applicant]
US 20240095463A1 · Leary et al. · 2024 [cited by applicant]
US 20240220229A1 · Matos et al. · 2024 [cited by applicant]
US 20240220393A1 · Matos et al. · 2024 [cited by applicant]
US 20240220505A1 · Shashi et al. · 2024 [cited by applicant]
US 20240256423A1 · Zhang et al. · 2024 [cited by applicant]
US 20240281218A1 · Masad et al. · 2024 [cited by applicant]
US 20240283675A1 · Pelski et al. · 2024 [cited by applicant]
US 20240311087A1 · Bathula · 2024 [cited by applicant]
US 20240311090A1 · Duggal et al. · 2024 [cited by applicant]
US 20240311114A1 · Duggal et al. · 2024 [cited by applicant]
US 20240311375A1 · Bisti et al. · 2024 [cited by applicant]
US 20240345807A1 · Duggal et al. · 2024 [cited by applicant]
US 20240354065A1 · Stephens et al. · 2024 [cited by applicant]
US 20240354501A1 · Bouguerra · 2024 [cited by examiner]
US 20240362209A1 · Almaer et al. · 2024 [cited by applicant]
US 20240403438A1 · Chan et al. · 2024 [cited by applicant]
US 20240419917A1 · Clement · 2024 [cited by examiner]
US 20240427564A1 · Petrov et al. · 2024 [cited by applicant]
US 20240427566A1 · Lin et al. · 2024 [cited by applicant]
US 20240427567A1 · Murthy et al. · 2024 [cited by applicant]
US 20240427994A1 · Odland et al. · 2024 [cited by applicant]
US 20250004915A1 · Rudenko et al. · 2025 [cited by applicant]
US 20250077227A1 · Guttridge et al. · 2025 [cited by applicant]
EP 3616064B1 · 2023 [cited by applicant]
A. Fan et al., “Large Language Models for Software Engineering: Survey and Open Problems,” in 2023 IEEE/ACM International Conference on Software Engineering: Future of Software Engineering (ICSE-FoSE), Melbourne, Austra… [cited by applicant]
Chen M, Tworek J, Jun H, Yuan Q, Pinto HP, Kaplan J, Edwards H, Burda Y, Joseph N, Brockman G, Ray A. Evaluating large language models trained on code. arXiv preprint arXiv:2107.03374. Jul. 7, 2021. (Year: 2021). [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 18/345,959, Mar. 27, 2025, 30 pages. [cited by applicant]
Huang, Xin et al., “Question Answering Using Retrieval Augmented Generation with Foundation Models in Amazon SageMaker JumpStart”, AWS Machine Learning Blog dated May 2, 2023, Available at <https://aws.amazon.com/blogs/… [cited by applicant]
Osika, Anton. “GPT Engineer”, GitHub, Downloaded from <https://github.com/AntonOsika/gpt-engineer> on Jul. 13, 2023, 4 pages. [cited by applicant]
“Template Anatomy”, AWS CloudFormation User Guide, Downloaded from <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html> on Jul. 13, 2023, 5 pages. [cited by applicant]
“Getting Started—Concepts”, Downloaded from <https://web.archive.org/web/20230530025306/https://python.langchain.com/en/latest/getting_started/concepts.html> on Jun. 19, 2023, 3 pages. [cited by applicant]
“Getting Started—Quickstart Guide”, Downloaded from <https://web.archive.org/web/20230520225431/https://python.langchain.com/en/latest/getting_started/getting_started.html> on Jun. 19, 2023, 14 pages. [cited by applicant]
“Getting Started—Tutorials”, Downloaded from <https://web.archive.org/web/20230521001928/https://python.langchain.com/en/latest/getting_started/tutorials.html> on Jun. 19, 2023, 4 pages. [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 18/345,947, May 23, 2025, 9 pages. [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 18/345,925, May 22, 2025, 15 pages. [cited by applicant]
Ross, Steven, et al., The Programmer's Assistant User Experience, IUI '23 Companion: Companion Proceedings of the 28th International Conference on Intelligent User Interfaces, Mar. 2023, 3 pages, [retrieved on May 16, 2… [cited by applicant]
Final Office Action, U.S. Appl. No. 18/345,959, Oct. 8, 2025, 31 pages. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 18/345,925, Nov. 10, 2025, 2 pages. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 18/345,925, Sep. 23, 2025, 12 pages. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 18/345,947, Nov. 7, 2025, 5 pages. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 18/345,947, Sep. 17, 2025, 8 pages. [cited by applicant]
Cited By (1)
US 12,743,415