Prosecution Insights
Last updated: October 02, 2026
Application No. 18/741,720

AUTOMATED AI-DRIVEN SOFTWARE DEVELOPMENT

Non-Final OA §103§112
Filed
Jun 12, 2024
Priority
Mar 12, 2024 — provisional 63/564,158
Examiner
HURUY, FEVEN HABTEMARIAM
Art Unit
2191
Tech Center
2100 — Computer Architecture & Software
Assignee
Microsoft Technology Licensing, LLC
OA Round
1 (Non-Final)
83%
Grant Probability
Favorable
1-2
OA Rounds
4m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 83% — above average
83%
Career Allowance Rate
5 granted / 6 resolved
+28.3% vs TC avg
Strong +25% interview lift
Without
With
+25.0%
Interview Lift
resolved cases with interview
Typical timeline
2y 7m
Avg Prosecution
12 currently pending
Career history
27
Total Applications
across all art units

Statute-Specific Performance

§101
17.0%
-23.0% vs TC avg
§103
55.1%
+15.1% vs TC avg
§102
4.2%
-35.8% vs TC avg
§112
22.0%
-18.0% vs TC avg
Black line = Tech Center average estimate • Based on career data from 6 resolved cases

Office Action

§103 §112
CTNF 18/741,720 CTNF 101453 DETAILED ACTION This is the initial Office action based on the application filed on June 12, 2024. Claims 1-20 are pending. Notice of Pre-AIA or AIA Status 07-03-aia AIA 15-10-aia The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA. Drawings 06-22-07 The drawings are objected to as failing to comply with 37 CFR 1.84(p)(5) because they include the following reference characters not mentioned in the description: re ference characters 214, 218, 220, 222, 234, 238, and 240 in Figure 2 and reference characters 624 and 642 in Figure 5 . Corrected drawing sheets in compliance with 37 CFR 1.121(d), or amendment to the specification to add the reference character(s) in the description in compliance with 37 CFR 1.121(b) are required in reply to the Office action to avoid abandonment of the application. Any amended replacement drawing sheet should include all of the figures appearing on the immediate prior version of the sheet, even if only one figure is being amended. Each drawing sheet submitted after the filing date of an application must be labeled in the top margin as either “Replacement Sheet” or “New Sheet” pursuant to 37 CFR 1.121(d). If the changes are not accepted by the examiner, the applicant will be notified and informed of any required corrective action in the next Office action. The objection to the drawings will not be held in abeyance. Claim Objections 07-29-01 AIA Claim s 1-2, 6, 8-9, 15-18, and 20 are objected to because of the following informalities: Claims 1 and 15, line 20 and line 18 respectively, recite “a secure execution environment.” It should read – the secure execution environment --. Claims 2, 9, and 16, line 3, line 5, and line 4 respectively, recite “AI.” It should read – artificial intelligence (AI) --. Claims 6 and 18, line 4 and line 5 respectively, recite “API.” It should read – application programming interface (API) --. Claim 8, line 3, recites “the messages.” It should read – messages --. Claims 16 and 17, line 2 and line 2 respectively, recite “ a computing device.” It should read – the computing device --. Claims 17 and 18 contain a typographical error: Claims 17 and 18 should presumably depend on Claim 16, not Claim 15 because Claim 16 recites earlier the limitation “ a plurality of AI-agents. ” Claim 20, line 1, recites “a software engineering task.” It should read – the software engineering task --. Appropriate correction is required. Claim Rejections - 35 USC § 112 The following is a quotation of 35 U.S.C. 112(b): (b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention. Claims 1-8 and 17-20 are rejected under 35 U.S.C. 112(b) as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor regards as the invention. Claim 1 recites, in lines 12-13, the limitation “the output.” There is insufficient antecedent basis for this limitation in the claim. In the interest of compact prosecution, the Examiner subsequently interprets the limitation as – an output – in Claim 1. Claims 2-8 depend on Claim 1. Therefore, Claims 2-8 suffer the same deficiency as Claim 1. Claim 4 recites, in line 1, the limitation “the given prompt.” There is insufficient antecedent basis for this limitation in the claim. In the interest of compact prosecution, the Examiner subsequently interprets the limitation as – a given prompt – in Claim 4. Claim 4 recites, in line 2, the limitation “the one or more actions.” The claims are rendered vague and indefinite because it is unclear to the Examiner whether the limitation is referring back to “one or more actions” recited in line 4 of Claim 3 or “one or more actions” recited in lines 5-6 of Claim 2. In the interest of compact prosecution, the Examiner interprets this limitation as referring back to “one or more actions” recited in line 4 of Claim 3. Claims 17 and 18 recite, in line 4 and line 4 respectively, the limitation “the plurality of AI-agents.” There is insufficient antecedent basis for this limitation in the claims. In the interest of compact prosecution, the Examiner subsequently interprets Claims 17 and 18 as depending on Claim 16 for the purpose of further examination. Note that such dependency order would provide sufficient antecedent basis for this limitation in the claims (see the claim objection to Claims 17 and 18 hereinabove). Claims 19 and 20 depend on Claim 18. Therefore, Claims 19 and 20 suffer the same deficiency as Claim 18. Claim Rejections - 35 USC § 103 07-20-aia AIA The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. 07-21-aia AIA Claim s 1-4, 8, and 15-17 are rejected under 35 U.S.C. 103 as being unpatentable over US 12,530,173 (hereinafter “Buliani”) in view of “OpenCodeInterpreter: Integrating Code Generation with Execution and Refinement” (hereinafter “Zheng”), US 2025/0061186 (hereinafter “Sharma”), and US 2024/0386216 (hereinafter “Sodhi”) . As per Claim 1, Buliani discloses: A system for autonomously processing a software engineering task, comprising: a processor (col. 36 lines 16-19, “In the illustrated example, the computer system 3000 includes one or more processors 3010 coupled to a system memory 3020 via an input/output (I/O) interface 3030.”) ; and a memory that stores a program that is configured to be executed by the processor (col. 36 lines 39-40, “The system memory 3020 can store instructions and data accessible by the processor(s) 3010.”; col. 37 lines 47-49 & lines 52-56, “In some examples, the system memory 3020 can be one example of a computer-accessible medium configured to store program instructions and data as described above […] Generally speaking, a computer-accessible medium can include any non-transitory storage media or memory media such as magnetic or optical media, e.g., disk or DVD/CD coupled to the computer system 3000 via the I/O interface 3030.”) , the program includes instructions to perform actions that: obtain, from user input, the software engineering task to perform without user intervention (col. 4 lines 36-41, “The SDS acts as an intermediary between users and GAI models, enriching user prompts with additional instructions and/or context, monitoring model responses, and, in some cases, performing various “under-the-hood” interactions with the model without requiring action by the user (emphasis added).”; col. 11 lines 35-38, “Task-specific agents formalize various software development effort workflows, operating to expand user prompts, curate LLM responses, and provide the LLM with additional context often without user intervention (emphasis added).”; col. 24 lines 54-58, “At operation 1402, the development task agent receives a request from the client 1401, the request including a task prompt [software engineering task] (typically in the form of a description or other indication of a desired change to a software program or system) (emphasis added).”) ; create an initial message for a generative neural model to determine an initial command that performs a first step towards achieving the software engineering task (Figure 15; col. 25 lines 37-44, “At operation 1508, the development agent can send a prompt [initial message] including an action or step from the action plan to a code generation model 1598 (e.g., another generative AI model 197), the prompt including a request to generate code for the indication action or step [initial command] and, optionally, context for the application (e.g., the application summary). At operation 1510, the development agent can receive the recommended code change(s) (emphasis added).”; col. 11 lines 61-67, “Other models 198 can include code generation models, which may be within the same family as LLMs but trained and/or fine tuned on a corpus more narrowly curated to software development documents (e.g., application code, comments, documentation, programming books, etc.) rather than general texts encompassing a range of other fields (emphasis added).”) ; continue creation of one or more follow-on messages with the generative neural model, wherein each of the one or more follow-on messages comprises a follow-on prompt for the generative neural model to determine a follow-on command to execute given a current state of the conversation for the software engineering task (Figure 15; col. 25 lines 30-34, “At operation 1504, the development task agent sends a prompt including the task prompt and the application summary to the LLM (be it the LLM 1399 or 1499), the prompt requesting that the LLM subdivide the task into a set of actions (also referred to as “an action plan”).”; col. 25 lines 37-46, “At operation 1508, the development agent can send a prompt including an action or step from the action plan to a code generation model 1598 (e.g., another generative AI model 197), the prompt including a request to generate code for the indication action or step and, optionally, context for the application (e.g., the application summary). At operation 1510, the development agent can receive the recommended code change(s). As indicated, the development agent can prompt [follow-on message and follow-on prompt] the code generation model 1598 for recommended code changes [follow-on command] for each action in the action plan [current state of the conversation for the software engineering task] (emphasis added).”; col. 5 lines 32-36 & lines 40-45, “In some examples, a development task agent of the SDS can cause an LLM to subdivide a given software development task into discrete actions by prompting the LLM for the set of actions a user would need to take to complete a particular task […] For each action, the development task agent obtain detailed actions from the LLM for the developer to take to complete the action. The development task agent tracks the gathering of this detailed information, keeping the LLM on task by including context related to the status of the additional detailed information gathering in subsequent prompts (emphasis added).”) . Buliani discloses “ initial command, ” “ initial message, ” and “ a conversation for the software engineering task, ” but does not explicitly disclose: obtain a status of the execution of the initial command from the execution of the initial command; log the initial message, the status of the execution of the initial command and the output of the initial command in a conversation for the software engineering task. However, Zheng discloses: obtain a status of the execution of the initial command from the execution of the initial command (page 1 Figure 1) [Examiner’s Remarks: Note that Zheng shows in Figure 1 obtaining an error status of the execution of the initial command/code.] ; log the initial message, the status of the execution of the initial command and the output of the initial command in a conversation for the software engineering task (page 1 Figure 1; page 24 Figure A9) [Examiner’s Remarks: Note that Zheng shows in both Figure 1 and Figure A9 a conversation for a software engineering task that logs the initial message from the “User,” the status/output of the executed command/code.] . Buliani and Zheng are both within the same field of endeavor as the claimed invention regarding the utilization of machine learning models to perform a software engineering task. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Zheng into the teaching of Buliani to include “obtain a status of the execution of the initial command from the execution of the initial command; log the initial message, the status of the execution of the initial command and the output of the initial command in a conversation for the software engineering task.” The modification would be obvious because one of ordinary skill in the art would be motivated to log the initial message and status/output of the executed command in order to help a model successfully correct errors and make improvements in its response (Zheng, page 23). The combination of Buliani and Zheng discloses “ the initial command, ” “ follow-on command, ” and “ the conversation for the software engineering task, ” but does not explicitly disclose: execute the initial command in a secure execution environment; wherein each follow-on command is executed in a secure execution environment, wherein output of each execution of each follow-on command is logged in the conversation for the software engineering task . However, Sharma discloses: execute the [code] in a secure execution environment (paragraph [0039], “Secure VMs 140 ensure that mutually attested code 160 running inside the TEE is trusted and has not been tampered with, which helps prevent code-level vulnerabilities (emphasis added).”; paragraph [0095], “[…] writing, to a shared storage account 355 configured by the data clean room orchestration system 110, output data 350 that results from executing the mutually attested code 160 on the two or more partner datasets 210-a and 210-b in the TEE 325 (emphasis added).”; paragraph [0049], “TEEs are tamper-resistant environments that enable users to safely run sensitive workloads inside of an enclave.”) ; wherein each [code] is executed in a secure execution environment, wherein output of each execution of each [code] is logged in the [shared storage account] (paragraph [0039], “Secure VMs 140 ensure that mutually attested code 160 running inside the TEE is trusted and has not been tampered with, which helps prevent code-level vulnerabilities (emphasis added).”; paragraph [0095], “[…] writing, to a shared storage account 355 configured by the data clean room orchestration system 110, output data 350 that results from executing the mutually attested code 160 on the two or more partner datasets 210-a and 210-b in the TEE 325 (emphasis added).”; paragraph [0049], “TEEs are tamper-resistant environments that enable users to safely run sensitive workloads inside of an enclave.”) . Sharma is within the same field of endeavor as the claimed invention regarding the execution of code in a secure execution environment. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Sharma into the combined teachings of Buliani and Zheng to include “execute the initial command in a secure execution environment; wherein each follow-on command is executed in a secure execution environment, wherein output of each execution of each follow-on command is logged in the conversation for the software engineering task.” The modification would be obvious because one of ordinary skill in the art would be motivated to execute the initial or follow-on command in a secure execution environment and log its output in order to prevent malicious entities from accessing the data, prevent code-level vulnerabilities, and safely run workloads inside of an enclave since TEEs are tamper-resistant environments (Sharma, paragraphs [0039 & 0049]). The combination of Buliani, Zheng, and Sharma disclose “ execute each follow-on command from the one or more follow-on messages ” and “ the software engineering task, ” but does not explicitly disclose: execute each follow-on command from the one or more follow-on messages until a stop command is received as a next follow-on command ; and upon receipt of a follow-on command indicating a stop command, terminate processing the software engineering task. However, Sodhi discloses: execute each [action] until a stop command is received as a next follow-on command (Figure 5: 545, 550; abstract, “A task, such as task completed using a website, may be automated by submitting prompts to a language model and requesting that that language model provide one or more next actions to be performed to complete the task (emphasis added).”; paragraph [0082], “At step 545, the web page operation indicated by the next action of the response of the language model is implemented or executed to obtain a next web page (emphasis added).”; paragraph [0084], “At step 550, it is determined if the task specified by the instruction text is complete […] In some instances or implementations, the response of the language model may indicate that the task is complete (e.g., a next action of DONE ) (emphasis added).”) ; and upon receipt of a follow-on command indicating a stop command, terminate processing [a task] (Figure 5: 550; paragraph [0084], “At step 550, it is determined if the task specified by the instruction text is complete […] In some instances or implementations, the response of the language model may indicate that the task is complete (e.g., a next action of DONE ) (emphasis added).”) . Sodhi is within the same field of endeavor as the claimed invention regarding the use of models and termination of a process upon receipt of a stop command. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Sodhi into the combined teachings of Buliani, Zheng, and Sharma to include “execute each follow-on command from the one or more follow-on messages until a stop command is received as a next follow-on command; and upon receipt of a follow-on command indicating a stop command, terminate processing the software engineering task.” The modification would be obvious because one of ordinary skill in the art would be motivated to execute commands until a stop command is received from a model in order to effectively ensure all actions/commands to perform a task have been completed as well as enhance efficiency and reduce human effort by automating this process (Sodhi, paragraphs [0004 & 0084]). As per Claim 2, the rejection of Claim 1 is incorporated; and Buliani further discloses: configure a plurality of AI-agents (Figure 1; col. 11 lines 35-38, “ Task-specific agents formalize various software development effort workflows, operating to expand user prompts, curate LLM responses, and provide the LLM with additional context often without user intervention (emphasis added).”; col. 18 lines 12-14, “An orchestrator agent such as the orchestrator agent 201 serves to identify other task-specific agents 207 to be executed.”) , wherein an AI-agent generates a prompt to a particular generative neural model for the particular generative neural model to determine the initial command or follow-on command (Figures 1 & 15; col. 25 lines 37-46, “At operation 1508, the development agent can send a prompt including an action or step from the action plan to a code generation model 1598 (e.g., another generative AI model 197), the prompt including a request to generate code for the indication action or step and, optionally, context for the application (e.g., the application summary). At operation 1510, the development agent can receive the recommended code change(s). As indicated, the development agent can prompt the code generation model 1598 for recommended code changes for each action in the action plan.”) , wherein the AI-agent is configured to perform one or more actions on a user’s codebase (col. 23 lines 1-6, “As described above, the SDS can obtain the application source code, for example because the user has indicated where its source repository is and provides access to the SDS , and also access documentation about the application and/or the cloud provider resources it runs on (ex: compute instances, block storage, databases, etc) (emphasis added).”; col. 24 lines 54-60, “At operation 1402, the development task agent receives a request from the client 1401, the request including a task prompt (typically in the form of a description or other indication of a desired change to a software program or system). Accompanying the request may be one or more parameters identifying data sources (e.g., code repositories and the like).”; col. 25 lines 49-52, “In some examples, the development agent can obtain code diffs from another service of the provider network, providing the original source code and the recommended code change(s).”) . As per Claim 3, the rejection of Claim 2 is incorporated; and Buliani discloses “ the plurality of AI-agents (Figure 1; col. 11 lines 35-38, “ Task-specific agents formalize various software development effort workflows, operating to expand user prompts, curate LLM responses, and provide the LLM with additional context often without user intervention (emphasis added).”),” but the combination of Buliani, Sharma, and Sodhi does not explicitly disclose: configure each of the plurality of AI-agents with a system prompt, instructions, and one or more actions. However, Zheng discloses: configure each of the plurality of [AI models] with a system prompt, instructions, and one or more actions (page 17, “We employ GPT models to emulate human behavior in generating feedback.”; page 17: Prompt for GPT models mimicking human feedback with canonical solution; page 14, “We illustrate the prompts used in multi-turn execution feedback and multi-turn human feedback respectively.”; page 14: System prompt for multi-turn execution feedback) [Examiner’s Remarks: Note that Zheng shows in page 17 system prompts for GPT models that includes instructions and one or more actions.] . Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Zheng into the combined teachings of Buliani, Sharma, and Sodhi to include “configure each of the plurality of AI-agents with a system prompt, instructions, and one or more actions.” The modification would be obvious because one of ordinary skill in the art would be motivated to configure agents with a system prompt, instructions, and actions in order to effectively define the capabilities of each agent and ensure they behave according to the provided information to provide substantial support for software development (Zheng, page 1 Section 1 Introduction & page 17). As per Claim 4, the rejection of Claim 3 is incorporated; and Buliani discloses “ a select AI-agent (col. 12 lines 37-40, “Depending on the initial user prompt, the orchestrator agent 201 can identify the task requested to be performed and invoke the associated task-specific agent. The orchestrator agent 201 leverages an LLM to determine whether a given prompt falls within a supported set of tasks and to identify which task-specific agent should be invoked.”) , ” but the combination of Buliani, Sharma, and Sodhi does not explicitly disclose: the given prompt includes the system prompt, instructions, and the one or more actions of a select AI-agent . However, Zheng discloses: the given prompt includes the system prompt, instructions, and the one or more actions of [an AI model] (page 17, “We employ GPT models to emulate human behavior in generating feedback.”; page 17: Prompt for GPT models mimicking human feedback with canonical solution; page 14, “We illustrate the prompts used in multi-turn execution feedback and multi-turn human feedback respectively.”; page 14: System prompt for multi-turn execution feedback) [Examiner’s Remarks: Note that Zheng shows in page 17 system prompts for GPT models that includes instructions and one or more actions.] . Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Zheng into the combined teachings of Buliani, Sharma, and Sodhi to include “the given prompt includes the system prompt, instructions, and the one or more actions of a select AI-agent.” The modification would be obvious because one of ordinary skill in the art would be motivated to give a system prompt, instructions, and actions of an AI agent in order to effectively define the capabilities of each agent and ensure they behave according to the provided information to provide substantial support for software development (Zheng, page 1 Section 1 Introduction & page 17). As per Claim 8, the rejection of Claim 1 is incorporated; and Buliani discloses “ the conversation, ” but the combination of Buliani, Sharma, and Sodhi does not explicitly disclose: upon a number of the messages in the conversation exceeding a threshold, terminate processing the software engineering task. However, Zheng discloses: upon a number of the messages in the conversation exceeding a threshold, terminate processing the software engineering task (page 1 Figure 1; page 6 Section 3 Experimental Setup, “For each task, the code generation and evaluation process concludes either when the model’s solution successfully passes the evaluation or when it reaches the set maximum of two rounds.”; page 6 Section 4.2 Results of Mutli-turn Code Generation, “This section evaluates the proficiency of Open-CodeInterpreter in multi-turn interactions through iterative refinement, leveraging interpreter diagnostics and human insights. Our experimental evaluation imposes a two-round limit on iterations to maintain fairness and consistency across tasks.”) . Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Zheng into the combined teachings of Buliani, Sharma, and Sodhi to include “upon a number of the messages in the conversation exceeding a threshold, terminate processing the software engineering task.” The modification would be obvious because one of ordinary skill in the art would be motivated to terminate a task when it exceeds a number of messages/rounds in order to effectively maintain fairness and consistency across tasks (Zheng, page 1 Section 1 Introduction & page 17). Claim 15 is a hardware storage device claim corresponding to system Claim 1 and is rejected for the same reasons as given in the rejection of Claim 1, except for the limitation: log the initial message, the status of the execution of the initial command and the initial command in a conversation for the software engineering task. Buliani discloses “ initial message, ” “ initial command, ” and “ a conversation for the software engineering task, ” but does not explicitly disclose: log the initial message, the status of the execution of the initial command and the initial command in a conversation for the software engineering task. However, Zheng discloses: log the initial message, the status of the execution of the initial command and the initial command in a conversation for the software engineering task (page 1 Figure 1; page 24 Figure A9) [Examiner’s Remarks: Note that Zheng shows in both Figure 1 and Figure A9 a conversation for a software engineering task that logs the initial message from the “User,” the initial command/code, and the status/output of the executed command/code.] . Buliani and Zheng are both within the same field of endeavor as the claimed invention regarding the utilization of machine learning models to perform a software engineering task. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Zheng into the teaching of Buliani to include “log the initial message, the status of the execution of the initial command and the initial command in a conversation for the software engineering task.” The modification would be obvious because one of ordinary skill in the art would be motivated to log the initial message and status/output of the executed command in order to help a model successfully correct errors and make improvements in its response (Zheng, page 23). As per Claim 16, the rejection of Claim 15 is incorporated; and the remainder of Claim 16 is a hardware storage device claim corresponding to system Claim 2 and is rejected for the same reasons as given in the rejection of that claim. As per Claim 17, the rejection of Claim 16 is incorporated [Note that the Examiner is interpreting this claim in regard to the sixth bullet point of the claim objections] ; and the remainder of Claim 17 is a hardware storage device claim corresponding to system Claim 3 and is rejected for the same reasons as given in the rejection of that claim . 07-22-aia AIA Claim 5 is rejected under 35 U.S.C. 103 as being unpatentable over Buliani in view of Zheng, Sharma, and Sodhi as applied to Claim 2 above, and further in view of US 2023/0245651 (hereinafter “Wang”) . As per Claim 5, the rejection of Claim 2 is incorporated; and the combination of Buliani, Zheng, Sharma, and Sodhi does not explicitly disclose: wherein the configuration of the plurality of AI-agents is user-defined. However, Wang discloses: wherein the configuration of the plurality of AI-agents is user-defined (paragraph [0245], “The AI generator’s toolkit comprises various modules that enable users to configure personalized AI agents , including persona modules, dialog rule modules, interface options, and functions for AI agents to deliver services (emphasis added).”) . Wang is within the same field of endeavor as the claimed invention regarding the utilization of user-configured AI agents. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Wang into the combined teachings of Buliani, Zheng, Sharma, and Sodhi to include “wherein the configuration of the plurality of AI-agents is user-defined.” The modification would be obvious because one of ordinary skill in the art would be motivated to enable users to configure AI-agents in order to deliver an improved user experience by considering individual preferences (Wang, paragraphs [0034 & 0245]) . 07-22-aia AIA Claim s 6-7 and 18-20 are rejected under 35 U.S.C. 103 as being unpatentable over Buliani in view of Zheng, Sharma, and Sodhi as applied to Claim s 2 and 16 above, and further in view of US 12,424,209 (hereinafter “Guo”) . As per Claim 6, the rejection of Claim 2 is incorporated; and Buliani discloses “ obtain from a select one of the plurality of AI-agents, the initial command to execute (col. 12 lines 37-40, “Depending on the initial user prompt, the orchestrator agent 201 can identify the task requested to be performed and invoke the associated task-specific agent. The orchestrator agent 201 leverages an LLM to determine whether a given prompt falls within a supported set of tasks and to identify which task-specific agent should be invoked.”; col. 25 lines 37-44, “At operation 1508, the development agent can send a prompt including an action or step from the action plan to a code generation model 1598 (e.g., another generative AI model 197), the prompt including a request to generate code for the indication action or step [initial command] and, optionally, context for the application (e.g., the application summary). At operation 1510, the development agent can receive the recommended code change(s) (emphasis added).”; col. 25 lines 53-57, “At operation 1512, t he development task agent sends the action plan to the client (be it the client 1301 or 1401). The development agent can include within the action plan, for each action, the recommended code change(s), if any, obtained from the code generation model 1598 (emphasis added).”) , ” but the combination of Buliani, Zheng, and Sodhi does not explicitly disclose: select an API configured to perform the initial command ; and construct the secure execution environment to invoke the selected API. However, Guo discloses: select an API configured to perform the [task] (col. 3 lines 46-50, “If the system determines the API(s) are capable of performing the action responsive to the user input, the system may select APIs most capable of performing the tasks, provide a response to the user, and cause the APIs to perform the corresponding functions (e.g., actions).”) ; invoke the selected API (col. 3 lines 46-50, “If the system determines the API(s) are capable of performing the action responsive to the user input, the system may select APIs most capable of performing the tasks, provide a response to the user, and cause the APIs to perform the corresponding functions (e.g., actions).”). Guo is within the same field of endeavor as the claimed invention regarding the selection of APIs to perform a task. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Guo into the combined teachings of Buliani, Zheng, and Sodhi to include “select an API configured to perform the initial command; invoke the selected API.” The modification would be obvious because one of ordinary skill in the art would be motivated to select an API to perform a command/task in order to provide an improved user experience by providing a system capable of determining one or more tasks to be completed and determining APIs to process (narrowing the amount of APIs to be considered by a language model) which increases the efficiency and accuracy of a language model (Guo, col. 3 lines 58-61 & col. 4 lines 3-10). However, Sharma discloses: construct the secure execution environment to invoke the [code] (abstract, “The method further includes configuring a trusted execution environment (TEE), including one or more virtual machines (VMs) that are individually or collectively operable to execute the mutually attested code.”) . Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Sharma into the combined teachings of Buliani, Zheng, Sodhi, and Guo to include “construct the secure execution environment to invoke the selected API.” The modification would be obvious because one of ordinary skill in the art would be motivated to construct a secure execution environment to invoke and execute an API in order to prevent malicious entities from accessing the data and safely run/invoke workloads inside of an enclave since TEEs are tamper-resistant environments (Sharma, paragraphs [0039 & 0049]). As per Claim 7, the rejection of Claim 6 is incorporated; and Buliani discloses “ create a follow-on message to a generative neural model for a follow-on command to continue processing the software engineering task (col. 25 lines 37-46, “At operation 1508, the development agent can send a prompt including an action or step from the action plan to a code generation model 1598 (e.g., another generative AI model 197), the prompt including a request to generate code for the indication action or step and, optionally, context for the application (e.g., the application summary). At operation 1510, the development agent can receive the recommended code change(s). As indicated, the development agent can prompt [follow-on message] the code generation model 1598 for recommended code changes [follow-on command] for each action in the action plan (emphasis added).”) , ” but the combination of Buliani, Zheng, and Sodhi does not explicitly disclose: obtain from the secure execution environment output from execution of the selected API. However, Guo discloses: the selected API (col. 3 lines 46-50, “If the system determines the API(s) are capable of performing the action responsive to the user input, the system may select APIs most capable of performing the tasks, provide a response to the user, and cause the APIs to perform the corresponding functions (e.g., actions).”). Guo is within the same field of endeavor as the claimed invention regarding the selection of APIs to perform a task. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Guo into the combined teachings of Buliani, Zheng, and Sodhi to include “the selected API.” The modification would be obvious because one of ordinary skill in the art would be motivated to select an API to perform a command/task in order to provide an improved user experience by providing a system capable of determining one or more tasks to be completed and determining APIs to process (narrowing the amount of APIs to be considered by a language model) which increases the efficiency and accuracy of a language model (Guo, col. 3 lines 58-61 & col. 4 lines 3-10). However, Sharma discloses: obtain from the secure execution environment output from execution of the [code] (paragraph [0095], “[…] writing, to a shared storage account 355 configured by the data clean room orchestration system 110, output data 350 that results from executing the mutually attested code 160 on the two or more partner datasets 210-a and 210-b in the TEE 325.”; abstract, “The method further includes configuring a trusted execution environment (TEE), including one or more virtual machines (VMs) that are individually or collectively operable to execute the mutually attested code.”) . Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Sharma into the combined teachings of Buliani, Zheng, Sodhi, and Guo to include “construct the secure execution environment to invoke the selected API.” The modification would be obvious because one of ordinary skill in the art would be motivated to construct a secure execution environment to invoke and execute an API in order to prevent malicious entities from accessing the data and safely run/invoke workloads inside of an enclave since TEEs are tamper-resistant environments (Sharma, paragraphs [0039 & 0049]). As per Claim 18, the rejection of Claim 16 is incorporated [Note that the Examiner is interpreting this claim in regard to the sixth bullet point of the claim objections] ; and the remainder of Claim 18 is a hardware storage device claim corresponding to system Claim 6 and is rejected for the same reasons as given in the rejection of that claim. As per Claim 19, the rejection of Claim 18 is incorporated; and the remainder of Claim 19 is a hardware storage device claim corresponding to system Claim 7 and is rejected for the same reasons as given in the rejection of that claim. As per Claim 20, the rejection of Claim 18 is incorporated; and Buliani further discloses: wherein a software engineering task comprises code generation, test code generation, code completion, software bug classification, software bug repair code, software vulnerability detection, or software vulnerability repair code (col. 5 lines 32-39, “In some examples, a development task agent of the SDS can cause an LLM to subdivide a given software development task into discrete actions by prompting the LLM for the set of actions a user would need to take to complete a particular task. Exemplary tasks include modifying an interface between software components, adding support for a new feature, changing an order processing backend on a website, migrating data from one database to another, etc.”; col. 25 lines 37-42, “At operation 1508, the development agent can send a prompt including an action or step from the action plan to a code generation model 1598 (e.g., another generative AI model 197), the prompt including a request to generate code for the indication action or step and, optionally, context for the application (e.g., the application summary).”) . 07-21-aia AIA Claim s 9 and 10 are rejected under 35 U.S.C. 103 as being unpatentable over "AgentCoder: Multi-Agent-based Code Generation with Iterative Testing and Optimisation" (hereinafter “Huang”) in view of Buliani, US 2022/0188146 (hereinafter “Li”) , and Sodhi . As per Claim 9, Huang discloses: A computer-implemented method for autonomously processing a software engineering task, comprising: obtaining, via user input, the software engineering task (page 4 Figure 1; page 3 Section 3.1 Programmer agent, “Specifically, as shown in Fig. 1, during the code generation stage, the human developer will require the programmer agent to generate code snippets to complete specific tasks , the programmer agent employs a Chain-of-Thought approach to simulate the typical programming process, methodically breaking down the task into smaller, manageable steps. (emphasis added).”) ; generating a conversation with one or more AI-agents and a codebase environment to perform operations to process the software engineering task, […], wherein the codebase environment executes the command determined by the generative neural model in a [local environment], wherein the conversation comprises a plurality of messages transmitted to and received from the one or more AI-agents and transmitted to and received from the codebase environment (page 4 Figure 1; page 2 Section 1 Introduction, “In this paper, we address the above-mentioned problems by proposing Multiagent-Code Generation, namely AgentCoder. AgentCoder contains three different agents, i.e., the programmer agent, the test designer agent, and the test executor agent […] The test executor agent interacts with both the programmer agent and the test designer agent: it executes the tests from the test designer agent against the code generated by the programmer agent and then provides test execution results to the programmer agent [perform operations to process the software engineering task] . Once the feedback is obtained by the test executor agent from the local environment (i.e., local terminal), it checks whether the feedback contains error information (e.g., runtime error and assertion error) . If all test cases pass the generated code, the test executor agent provides the code snippets with the human developer. Otherwise, the test executor agent feeds back to the programmer agent and then requires it to fix the bug reported in the feedback (emphasis added).”; page 3 Section 3 Methodology, “ The code snippets and test cases are collected by the test executor agent (Agent#3) and executed in the local environment (local terminal) to obtain feedback (i.e., whether the code passes all tests and the error message if the code fails for some tests) . If the test executor agent finds that the code snippets pass all test cases, it will return the code to the user and finish the iteration. Otherwise, the test executor agent will return the test execution error messages to the programmer agent. The iteration then continues, with the programmer agent regenerating code snippets to address the issues identified in the feedback, and the test executor agent re-executes the new code and provides new feedback to the programmer agent, until the test executor agent finds that the code passes all the tests (emphasis added).”; page 4 Section 3.3 Test executer agent, “Distinct from the programmer agent and test designer agent that are powered by LLMs , the test executor agent in our framework is implemented through a Python script interacting with a local environment and the other two agents (an example of the test executor agent is shown in Appendix Figure 10) (emphasis added).”) [Examiner’s Remarks: Note that Huang discloses a multi-agent system that includes a programmer agent (AI agent) that generates code, a test design agent (AI agent) that creates test cases, and test executer agent that collects the generated code snippets and test cases to execute in a local environment (codebase environment) to obtain feedback on whether the code passes the test cases. Huang also discloses that if there were error messages then it continues an iteration of the test executer agent re- executing new code generated by another AI agent until the code passes the tests. One of ordinary skill in the art would readily comprehend that the test executer agent executing code in the local environment after interacting/collecting code from the programmer and test design agents (AI agents) is generating a conversation with one or more AI agent and a codebase environment wherein the conversation comprises a plurality of messages transmitted to and received from both the AI agent and the codebase environment in order to send generated code and test cases to be executed and obtain feedback on the execution result.] . determining, at each of a plurality of iterations, the [code] to process the software engineering task (page 4 Figure 1; page 3 Section 3 Methodology, “ The code snippets and test cases are collected by the test executor agent (Agent#3) and executed in the local environment (local terminal) to obtain feedback (i.e., whether the code passes all tests and the error message if the code fails for some tests) . If the test executor agent finds that the code snippets pass all test cases, it will return the code to the user and finish the iteration. Otherwise, the test executor agent will return the test execution error messages to the programmer agent. The iteration then continues , with the programmer agent regenerating code snippets to address the issues identified in the feedback, and the test executor agent re-executes the new code and provides new feedback to the programmer agent, until the test executor agent finds that the code passes all the tests (emphasis added).”) ; executing, at each iteration of the plurality of iterations, the [code] (page 4 Figure 1; page 3 Section 3 Methodology, “ The code snippets and test cases are collected by the test executor agent (Agent#3) and executed in the local environment (local terminal) to obtain feedback (i.e., whether the code passes all tests and the error message if the code fails for some tests) . If the test executor agent finds that the code snippets pass all test cases, it will return the code to the user and finish the iteration. Otherwise, the test executor agent will return the test execution error messages to the programmer agent. The iteration then continues , with the programmer agent regenerating code snippets to address the issues identified in the feedback, and the test executor agent re-executes the new code and provides new feedback to the programmer agent, until the test executor agent finds that the code passes all the tests (emphasis added).”) . Huang discloses “ obtaining, via user input, the software engineering task, ” “ the one or more AI agents, ” “ determining, at each of a plurality of iterations, the [code] to process the software engineering task, ” “ the conversation, ” and “ executing, at each iteration of the plurality of iterations, the [code], ” but does not explicitly disclose: obtaining, via user input, the software engineering task to process autonomously without user intervention ; wherein the one or more AI-agents generate a prompt to a generative neural model for the generative neural model to determine a command to execute to process the software engineering task; determining, at each of a plurality of iterations, the command to process the software engineering task, wherein at each iteration of the plurality of iterations, the command is generated by the generative neural model given the prompt, wherein the prompt comprises a current state of the conversation at a respective iteration ; executing, at each iteration of the plurality of iterations, the command determined by the generative neural model . However, Buliani discloses: obtaining, via user input, the software engineering task to process autonomously without user intervention (col. 4 lines 36-41, “The SDS acts as an intermediary between users and GAI models, enriching user prompts with additional instructions and/or context, monitoring model responses, and, in some cases, performing various “under-the-hood” interactions with the model without requiring action by the user (emphasis added).”; col. 11 lines 35-38, “Task-specific agents formalize various software development effort workflows, operating to expand user prompts, curate LLM responses, and provide the LLM with additional context often without user intervention (emphasis added).”; col. 24 lines 54-58, “At operation 1402, the development task agent receives a request from the client 1401, the request including a task prompt [software engineering task] (typically in the form of a description or other indication of a desired change to a software program or system) (emphasis added).”); wherein the one or more AI-agents generate a prompt to a generative neural model for the generative neural model to determine a command to execute to process the software engineering task (Figure 15; col. 25 lines 37-44, “At operation 1508, the development agent can send a prompt including an action or step from the action plan to a code generation model 1598 (e.g., another generative AI model 197), the prompt including a request to generate code for the indication action or step and, optionally, context for the application (e.g., the application summary). At operation 1510, the development agent can receive the recommended code change(s) [command] (emphasis added).”; col. 11 lines 61-67, “Other models 198 can include code generation models, which may be within the same family as LLMs but trained and/or fine tuned on a corpus more narrowly curated to software development documents (e.g., application code, comments, documentation, programming books, etc.) rather than general texts encompassing a range of other fields (emphasis added).”) ; determining, at each of a plurality of iterations, the command to process the software engineering task, wherein at each iteration of the plurality of iterations, the command is generated by the generative neural model given the prompt, wherein the prompt comprises a current state of the conversation at a respective iteration (Figure 15; col. 25 lines 30-34, “At operation 1504, the development task agent sends a prompt including the task prompt and the application summary to the LLM (be it the LLM 1399 or 1499), the prompt requesting that the LLM subdivide the task into a set of actions (also referred to as “an action plan”).”; col. 25 lines 37-46, “At operation 1508, the development agent can send a prompt including an action or step from the action plan to a code generation model 1598 (e.g., another generative AI model 197), the prompt including a request to generate code for the indication action or step and, optionally, context for the application (e.g., the application summary). At operation 1510, the development agent can receive the recommended code change(s). As indicated, the development agent can prompt the code generation model 1598 for recommended code changes [command] for each action [iteration] in the action plan [current state of the conversation for the software engineering task] (emphasis added).”; col. 5 lines 32-36 & lines 40-45, “In some examples, a development task agent of the SDS can cause an LLM to subdivide a given software development task into discrete actions by prompting the LLM for the set of actions a user would need to take to complete a particular task […] For each action, the development task agent obtain detailed actions from the LLM for the developer to take to complete the action. The development task agent tracks the gathering of this detailed information, keeping the LLM on task by including context related to the status of the additional detailed information gathering in subsequent prompts (emphasis added).”); the command determined by the generative neural model (see previous citation) . Huang is within the same field of endeavor as the claimed invention regarding the use of AI-agents in processing a software engineering task. Buliani is also within the same field of endeavor as the claimed invention regarding the utilization of machine learning models to perform a software engineering task. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Buliani into the teaching of Huang to include “obtaining, via user input, the software engineering task to process autonomously without user intervention; wherein the one or more AI-agents generate a prompt to a generative neural model for the generative neural model to determine a command to execute to process the software engineering task; determining, at each of a plurality of iterations, the command to process the software engineering task, wherein at each iteration of the plurality of iterations, the command is generated by the generative neural model given the prompt, wherein the prompt comprises a current state of the conversation at a respective iteration; executing, at each iteration of the plurality of iterations, the command determined by the generative neural model.” The modification would be obvious because one of ordinary skill in the art would be motivated to utilize a system that uses task-specific agents to autonomously prompt a generative neural model for processing a software engineering task in order to improve generative neural model responses and help developers fix errors, bugs, and vulnerabilities in a program (Buliani, col. 2 lines 42-47, col. 6 lines 43-48, col. 11 lines 35-38). The combination of Huang and Buliani discloses “ wherein the codebase environment executes the command determined by the generative neural model in a [local environment], ” but does not explicitly disclose: wherein the codebase environment executes the command determined by the generative neural model in a secure execution environment with access to a user codebase . However, Li discloses: in a secure execution environment with access to a user codebase (paragraph [0032], “ The TEEs 202 that are created by the VSE device 226 via the hardware TEE mechanism 214 include sensitive information, such as user codes 240 and user data 242, that needs to be secure (emphasis added).”; paragraph [0001], “Intel® Software Guard Extension (SGX) is a hardware technology that can be used to provide isolated application environments, or enclaves, for secure applications. The Intel SGX features isolated, encrypted memory regions for user-level application code and data (emphasis added).”; paragraph [0002], “Intel SGX has been highly influential within the world of trusted execution environments (TEEs) […].”). Li is within the same field of endeavor as the claimed invention regarding the utilization of a secure execution environment. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of into the combined teachings of Huang and Buliani to include “wherein the codebase environment executes the command determined by the generative neural model in a secure execution environment with access to a user codebase.” The modification would be obvious because one of ordinary skill in the art would be motivated to execute the command/code in a secure environment with access to a user codebase in order to ensure data confidentiality and code integrity through isolated environments (Li, paragraph [0001]). The combination of Huang, Buliani, and Li discloses “ executing, at each iteration of the plurality of iterations, the command determined by the generative neural model ” and “ the software engineering task, ” but does not explicitly disclose: executing, at each iteration of the plurality of iterations, the command determined by the generative neural model until a stop command is received as a next command to execute ; and upon receipt of a stop command, terminating processing of the software engineering task. However, Sodhi discloses: executing [the action] determined by the [model] until a stop command is received as a next command to execute (Figure 5: 545, 550; abstract, “A task, such as task completed using a website, may be automated by submitting prompts to a language model and requesting that that language model provide one or more next actions to be performed to complete the task (emphasis added).”; paragraph [0082], “At step 545, the web page operation indicated by the next action of the response of the language model is implemented or executed to obtain a next web page (emphasis added).”; paragraph [0084], “At step 550, it is determined if the task specified by the instruction text is complete […] In some instances or implementations, the response of the language model may indicate that the task is complete (e.g., a next action of DONE ) (emphasis added).”) ; and upon receipt of a stop command, terminating processing of [a task] (Figure 5: 550; paragraph [0084], “At step 550, it is determined if the task specified by the instruction text is complete […] In some instances or implementations, the response of the language model may indicate that the task is complete (e.g., a next action of DONE ) (emphasis added).”) . Sodhi is within the same field of endeavor as the claimed invention regarding the use of models and termination of a process upon receipt of a stop command. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Sodhi into the combined teachings of Huang, Buliani, and Li to include “executing, at each iteration of the plurality of iterations, the command determined by the generative neural model until a stop command is received as a next command to execute; and upon receipt of a stop command, terminating processing of the software engineering task.” The modification would be obvious because one of ordinary skill in the art would be motivated to execute commands until a stop command is received from a model in order to effectively ensure all actions/commands to perform a task have been completed as well as enhance efficiency and reduce human effort by automating this process (Sodhi, paragraphs [0004 & 0084]). As per Claim 10, the rejection of Claim 9 is incorporated; and Huang discloses “ wherein at each iteration a particular AI-agent is selected to generate [code] (page 4 Figure 1; page 2 Section 1 Introduction, “AgentCoder contains three different agents, i.e., the programmer agent, the test designer agent, and the test executor agent.”; page 3 Section 3 Methodology, “The process begins by inputting tasks/code generation requirements/descriptions into the code generation agent (Agent#1: the programmer agent) […] The code snippets and test cases are collected by the test executor agent (Agent#3) and executed in the local environment (local terminal) to obtain feedback (i.e., whether the code passes all tests and the error message if the code fails for some tests). If the test executor agent finds that the code snippets pass all test cases, it will return the code to the user and finish the iteration. Otherwise, the test executor agent will return the test execution error messages to the programmer agent. The iteration then continues, with the programmer agent regenerating code snippets to address the issues identified in the feedback, and the test executor agent re-executes the new code and provides new feedback to the programmer agent, until the test executor agent finds that the code passes all the tests (emphasis added).”) , ” but the combination of Huang, Li, and Sodhi does not explicitly disclose: wherein at each iteration a particular AI-agent is selected to generate a respective prompt to obtain a respective command that further processes the software engineering task. However, Buliani discloses: a particular AI-agent is selected to generate a respective prompt to obtain a respective command that further processes the software engineering task (col. 12 lines 37-40, “Depending on the initial user prompt, the orchestrator agent 201 can identify the task requested to be performed and invoke [select] the associated task-specific agent. The orchestrator agent 201 leverages an LLM to determine whether a given prompt falls within a supported set of tasks and to identify which task-specific agent should be invoked.”; col. 24 lines 54-58, “At operation 1402, the development task agent receives a request from the client 1401, the request including a task prompt [software engineering task] (typically in the form of a description or other indication of a desired change to a software program or system) (emphasis added).”; col. 25 lines 30-34, “At operation 1504, the development task agent sends a prompt including the task prompt and the application summary to the LLM (be it the LLM 1399 or 1499), the prompt requesting that the LLM subdivide the task into a set of actions (also referred to as “an action plan”).”; col. 25 lines 37-46, “At operation 1508, the development agent can send a prompt including an action or step from the action plan to a code generation model 1598 (e.g., another generative AI model 197), the prompt including a request to generate code for the indication action or step and, optionally, context for the application (e.g., the application summary). At operation 1510, the development agent can receive the recommended code change(s). As indicated, the development agent can prompt the code generation model 1598 for recommended code changes [command] for each action in the action plan (emphasis added).”) . Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Buliani into the combined teachings of Huang, Li, and Sodhi to include “wherein at each iteration a particular AI-agent is selected to generate a respective prompt to obtain a respective command that further processes the software engineering task.” The modification would be obvious because one of ordinary skill in the art would be motivated to select a particular agent to generate a prompt and obtain a respective command in order to ensure the correct agent is selected to correctly perform the task which aids in improving generative neural model responses and helps developers fix errors, bugs, and vulnerabilities in a program (Buliani, col. 2 lines 42-47, col. 6 lines 43-48, col. 11 lines 35-38) . 07-22-aia AIA Claim 11 is rejected under 35 U.S.C. 103 as being unpatentable over Huang in view of Buliani, Li, and Sodhi as applied to Claim 9 above, and further in view of Zheng . As per Claim 11, the rejection of Claim 9 is incorporated; and Huang discloses “ the conversation (page 2 Section 1 Introduction, “AgentCoder contains three different agents, i.e., the programmer agent, the test designer agent, and the test executor agent […] The test executor agent interacts with both the programmer agent and the test designer agent: it executes the tests from the test designer agent against the code generated by the programmer agent and then provides test execution results to the programmer agent. Once the feedback is obtained by the test executor agent from the local environment (i.e., local terminal) , it checks whether the feedback contains error information (e.g., runtime error and assertion error). If all test cases pass the generated code, the test executor agent provides the code snippets with the human developer. Otherwise, the test executor agent feeds back to the programmer agent and then requires it to fix the bug reported in the feedback (emphasis added).”),” but the combination of Huang, Buliani, Li, and Sodhi does not explicitly disclose: logging, at each iteration, the prompt to the generative neural model, the executed command, and output of the executed command in the conversation. However, Zheng discloses: logging, at each iteration, the prompt to the generative neural model, the executed command, and output of the executed command in the conversation (page 24 Figure A9) [Examiner’s Remarks: Note that Zheng shows in Figure A9, on the left side is the first iteration and the right side is the second iteration, in each iteration the prompt, executed command, and its output are logged.] . Zheng is within the same field of endeavor as the claimed invention regarding the utilization of machine learning models to perform a software engineering task. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Zheng into the combined teachings of Huang, Buliani, Li, and Sodhi to include “logging, at each iteration, the prompt to the generative neural model, the executed command, and output of the executed command in the conversation.” The modification would be obvious because one of ordinary skill in the art would be motivated to log the prompt, executed command, and output of the executed command in order to help a model successfully correct errors and make improvements (Zheng, page 23) . 07-22-aia AIA Claim s 12-14 are rejected under 35 U.S.C. 103 as being unpatentable over Huang in view of Buliani, Li, and Sodhi as applied to Claim 9 above, and further in view of Wang . As per Claim 12, the rejection of Claim 9 is incorporated; and Huang discloses “ the one or more AI-agents (page 2 Section 1 Introduction, “AgentCoder contains three different agents, i.e., the programmer agent, the test designer agent, and the test executor agent.”; page 4 Section 3.3 Test executer agent, “Distinct from the programmer agent and test designer agent that are powered by LLMs, the test executor agent in our framework is implemented through a Python script interacting with a local environment and the other two agents (an example of the test executor agent is shown in Appendix Figure 10) (emphasis added).”) , ” but the combination of Huang, Li, and Sodhi does not explicitly disclose: configuring, via user input, the one or more AI-agents with one or more actions, wherein an action is an operation to be performed on the user codebase. However, Buliani discloses: wherein an action is an operation to be performed on the user codebase (col. 23 lines 1-6, “As described above, the SDS can obtain the application source code, for example because the user has indicated where its source repository is and provides access to the SDS , and also access documentation about the application and/or the cloud provider resources it runs on (ex: compute instances, block storage, databases, etc) (emphasis added).”; col. 24 lines 54-60, “At operation 1402, the development task agent receives a request from the client 1401, the request including a task prompt (typically in the form of a description or other indication of a desired change to a software program or system). Accompanying the request may be one or more parameters identifying data sources (e.g., code repositories and the like).”; col. 25 lines 49-52, “In some examples, the development agent can obtain code diffs from another service of the provider network, providing the original source code and the recommended code change(s).”) . Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Buliani into the combined teachings of Huang, Li, and Sodhi to include “wherein an action is an operation to be performed on the user codebase.” The modification would be obvious because one of ordinary skill in the art would be motivated to configure an agent with an action to perform an operation on a user’s codebase such as accessing and recommending code changes in order to help developers fix errors, bugs, and vulnerabilities in a program (Buliani, col. 2 lines 42-47, col. 11 lines 35-38, & col. 25 lines 49-52). However, Wang discloses: configuring, via user input, the one or more AI-agents with one or more actions (paragraph [0245], “The AI generator’s toolkit comprises various modules that enable users to configure personalized AI agents, including persona modules, dialog rule modules, interface options, and functions for AI agents to deliver services.”) . Wang is within the same field of endeavor as the claimed invention regarding the utilization of user-configured AI agents. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Wang into the combined teachings of Huang, Buliani, Li, and Sodhi to include “configuring, via user input, the one or more AI-agents with one or more actions, wherein an action is an operation to be performed on the user codebase.” The modification would be obvious because one of ordinary skill in the art would be motivated to enable users to configure AI-agents in order to deliver an improved user experience by considering individual preferences (Wang, paragraphs [0034 & 0245]). As per Claim 13, the rejection of Claim 12 is incorporated; and Huang further discloses: enabling, via user input, the one or more actions configured to the one or more AI-agents (page 4 Figure 1; page 3 Section 3 Methodology, “The framework of AgentCoder and its pipeline are illustrated in Fig. 1. The process begins by inputting tasks/code generation requirements/descriptions into the code generation agent (Agent#1: the programmer agent).”; page 3 Section 3.1 Programmer agent, “Specifically, as shown in Fig. 1, during the code generation stage, the human developer will require the programmer agent to generate code snippets to complete specific tasks, the programmer agent employs a Chain-of-Thought approach to simulate the typical programming process, methodically breaking down the task into smaller, manageable steps.”) . As per Claim 14, the rejection of Claim 12 is incorporated; and Huang discloses “ the one or more AI-agents (page 2 Section 1 Introduction, “AgentCoder contains three different agents, i.e., the programmer agent, the test designer agent, and the test executor agent.”; page 4 Section 3.3 Test executer agent, “Distinct from the programmer agent and test designer agent that are powered by LLMs, the test executor agent in our framework is implemented through a Python script interacting with a local environment and the other two agents (an example of the test executor agent is shown in Appendix Figure 10) (emphasis added).”) , ” but the combination of but the combination of Huang, Li, Sodhi, and Wang does not explicitly disclose: selecting one of the one or more AI-agents having actions configured for the software engineering task to obtain the command from the generative neural model. However, Buliani discloses: selecting one of the one or more AI-agents having actions configured for the software engineering task to obtain the command from the generative neural model (col. 12 lines 37-40, “Depending on the initial user prompt, the orchestrator agent 201 can identify the task requested to be performed and invoke [select] the associated task-specific agent. The orchestrator agent 201 leverages an LLM to determine whether a given prompt falls within a supported set of tasks and to identify which task-specific agent should be invoked.”; col. 24 lines 54-58, “At operation 1402, the development task agent receives a request from the client 1401, the request including a task prompt [software engineering task] (typically in the form of a description or other indication of a desired change to a software program or system) (emphasis added).”; col. 25 lines 30- 34, “At operation 1504, the development task agent sends a prompt including the task prompt and the application summary to the LLM (be it the LLM 1399 or 1499), the prompt requesting that the LLM subdivide the task into a set of actions (also referred to as “an action plan”).”; col. 25 lines 37-46, “At operation 1508, the development agent can send a prompt including an action or step from the action plan to a code generation model 1598 (e.g., another generative AI model 197), the prompt including a request to generate code for the indication action or step and, optionally, context for the application (e.g., the application summary). At operation 1510, the development agent can receive the recommended code change(s) . As indicated, the development agent can prompt the code generation model 1598 for recommended code changes [command] for each action in the action plan (emphasis added).”) . Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Buliani into the combined teachings of Huang, Li, Sodhi, and Wang to include “selecting one of the one or more AI-agents having actions configured for the software engineering task to obtain the command from the generative neural model.” The modification would be obvious because one of ordinary skill in the art would be motivated to select a particular agent to generate a prompt and obtain a respective command in order to ensure the correct agent is selected to correctly perform the task which aids in improving generative neural model responses and helps developers fix errors, bugs, and vulnerabilities in a program (Buliani, col. 2 lines 42-47, col. 6 lines 43-48, col. 11 lines 35-38) . Conclusion 07-96 AIA The prior art made of record and not relied upon is considered pertinent to applicant's disclosure : “CodePori: Large Scale Model for Autonomous Software Development by Using Multi-Agents” (hereinafter “Rasheed”) discloses a multi-agent model that autonomously generates code (software engineering task) based on a user input prompt. "CodeAgent: Collaborative Agents for Software Engineering" (hereinafter “Tang”) discloses performing one or more actions on a user’s codebase and a given prompt that includes the system prompt, instructions, and the one or more actions of a select AI-agent. US 2016/0254904 (hereinafter “Hjelm”) discloses constructing a secure execution environment to invoke an API. US 2025/0055764 (hereinafter “Carnero”) discloses a particular AI-agent being selected at each iteration. Any inquiry concerning this communication or earlier communications from the examiner should be directed to Feven H. Huruy whose telephone number is (571) 272-3826. The examiner can normally be reached Mon-Fri. 7:30am-3:45pm. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Wei Mui can be reached at (571) 272-3708. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /F.H.H./Examiner, Art Unit 2191 /WEI Y MUI/Supervisory Patent Examiner, Art Unit 2191 Application/Control Number: 18/741,720 Page 2 Art Unit: 2191 Application/Control Number: 18/741,720 Page 3 Art Unit: 2191 Application/Control Number: 18/741,720 Page 4 Art Unit: 2191 Application/Control Number: 18/741,720 Page 5 Art Unit: 2191 Application/Control Number: 18/741,720 Page 6 Art Unit: 2191 Application/Control Number: 18/741,720 Page 7 Art Unit: 2191 Application/Control Number: 18/741,720 Page 8 Art Unit: 2191 Application/Control Number: 18/741,720 Page 9 Art Unit: 2191 Application/Control Number: 18/741,720 Page 10 Art Unit: 2191 Application/Control Number: 18/741,720 Page 11 Art Unit: 2191 Application/Control Number: 18/741,720 Page 12 Art Unit: 2191 Application/Control Number: 18/741,720 Page 13 Art Unit: 2191 Application/Control Number: 18/741,720 Page 14 Art Unit: 2191 Application/Control Number: 18/741,720 Page 15 Art Unit: 2191 Application/Control Number: 18/741,720 Page 16 Art Unit: 2191 Application/Control Number: 18/741,720 Page 17 Art Unit: 2191 Application/Control Number: 18/741,720 Page 18 Art Unit: 2191 Application/Control Number: 18/741,720 Page 19 Art Unit: 2191 Application/Control Number: 18/741,720 Page 20 Art Unit: 2191 Application/Control Number: 18/741,720 Page 21 Art Unit: 2191 Application/Control Number: 18/741,720 Page 22 Art Unit: 2191 Application/Control Number: 18/741,720 Page 23 Art Unit: 2191 Application/Control Number: 18/741,720 Page 24 Art Unit: 2191 Application/Control Number: 18/741,720 Page 25 Art Unit: 2191 Application/Control Number: 18/741,720 Page 26 Art Unit: 2191 Application/Control Number: 18/741,720 Page 27 Art Unit: 2191 Application/Control Number: 18/741,720 Page 28 Art Unit: 2191 Application/Control Number: 18/741,720 Page 29 Art Unit: 2191 Application/Control Number: 18/741,720 Page 30 Art Unit: 2191 Application/Control Number: 18/741,720 Page 31 Art Unit: 2191 Application/Control Number: 18/741,720 Page 32 Art Unit: 2191 Application/Control Number: 18/741,720 Page 33 Art Unit: 2191 Application/Control Number: 18/741,720 Page 34 Art Unit: 2191 Application/Control Number: 18/741,720 Page 35 Art Unit: 2191 Application/Control Number: 18/741,720 Page 36 Art Unit: 2191 Application/Control Number: 18/741,720 Page 37 Art Unit: 2191 Application/Control Number: 18/741,720 Page 38 Art Unit: 2191 Application/Control Number: 18/741,720 Page 39 Art Unit: 2191 Application/Control Number: 18/741,720 Page 40 Art Unit: 2191 Application/Control Number: 18/741,720 Page 41 Art Unit: 2191 Application/Control Number: 18/741,720 Page 42 Art Unit: 2191 Application/Control Number: 18/741,720 Page 43 Art Unit: 2191 Application/Control Number: 18/741,720 Page 44 Art Unit: 2191
Read full office action

Prosecution Timeline

Jun 12, 2024
Application Filed
May 14, 2026
Non-Final Rejection mailed — §103, §112
Jun 11, 2026
Interview Requested
Jul 07, 2026
Applicant Interview (Telephonic)
Jul 07, 2026
Examiner Interview Summary
Sep 24, 2026
Response Filed

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

1-2
Expected OA Rounds
83%
Grant Probability
99%
With Interview (+25.0%)
2y 7m (~4m remaining)
Median Time to Grant
Low
PTA Risk
Based on 6 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month