Reflection Agend docs improvements
This commit is contained in:
@@ -1,9 +1,17 @@
|
|||||||
# Spring AI Hello World Chat Application
|
# Spring AI Reflection Agent Application
|
||||||
|
|
||||||
A simple command-line chat application demonstrating Spring AI's ChatClient capabilities with AI models.
|
This project demonstrates the use of Spring AI to create a self-improving code generation system. The Reflection Agent uses two ChatClient instances in an iterative loop - one for generation and one for critique - to produce high-quality Java code.
|
||||||
|
|
||||||
It is based on the code in the repository https://github.com/neural-maze/agentic_patterns
|
It is based on the code in the repository https://github.com/neural-maze/agentic_patterns
|
||||||
|
|
||||||
|
The application implements a reflection-based system where the **Reflection Agent**:
|
||||||
|
|
||||||
|
- Uses a **generation ChatClient** to create code based on user prompts
|
||||||
|
- Uses a **critique ChatClient** to review the generated code
|
||||||
|
- Iteratively improves the code by feeding critique back to the **generation ChatClient**
|
||||||
|
- Continues this loop until the **critique ChatClient** is satisfied with the quality
|
||||||
|
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
- Java 17 or higher
|
- Java 17 or higher
|
||||||
- Maven
|
- Maven
|
||||||
@@ -30,17 +38,6 @@ export SPRING_AI_OPENAI_API_KEY=<INSERT KEY HERE>
|
|||||||
3. Run the application using Maven wrapper:
|
3. Run the application using Maven wrapper:
|
||||||
`./mvnw spring-boot:run`
|
`./mvnw spring-boot:run`
|
||||||
|
|
||||||
## Reflection Agent Demo
|
|
||||||
This project demonstrates the use of Spring AI to create a self-improving code generation system. The Reflection Agent uses two ChatClient instances in an iterative loop - one for generation and one for critique - to produce high-quality Java code.
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
The application implements a reflection-based system where the Reflection Agent:
|
|
||||||
|
|
||||||
1. Uses a generation `ChatClient` instance to create code based on user prompts
|
|
||||||
2. Uses a critique `ChatClient` instance to review the generated code
|
|
||||||
3. Iteratively improves the code by feeding critique back to the generation ChatClient
|
|
||||||
4. Continues this loop until the critique ChatClient is satisfied with the quality
|
|
||||||
|
|
||||||
## Project Structure
|
## Project Structure
|
||||||
### Main Components
|
### Main Components
|
||||||
|
|
||||||
@@ -54,27 +51,32 @@ The application implements a reflection-based system where the Reflection Agent:
|
|||||||
|
|
||||||
The Reflection Agent creates two `ChatClient` instances:
|
The Reflection Agent creates two `ChatClient` instances:
|
||||||
|
|
||||||
- **generateChatClient**: For generating Java code based on user requests
|
- `generateChatClient`: For generating Java code based on user requests
|
||||||
- **critiqueChatClient**: For reviewing and critiquing the generated code
|
- `critiqueChatClient`: For reviewing and critiquing the generated code
|
||||||
|
|
||||||
## Generation Process
|
## Generation Process
|
||||||
|
|
||||||
- **User inputs a request**
|
- User inputs a request
|
||||||
- The **generation ChatClient** creates initial code
|
- The generation `ChatClient` creates initial code
|
||||||
- The **critique ChatClient** reviews the code
|
- The critique `ChatClient` reviews the code
|
||||||
- If improvements are needed, the **generation ChatClient** creates a revised version
|
- If improvements are needed, the generation `ChatClient` creates a revised version
|
||||||
- This continues for up to `maxIterations` or until the **critique ChatClient** approves (`<OK>`)
|
- This continues for up to `maxIterations` or until the critique `ChatClient` approves (`<OK>`)
|
||||||
-
|
-
|
||||||
## ChatClient Configurations
|
## ChatClient Configurations
|
||||||
|
|
||||||
- **Generation ChatClient**:
|
- **Generation ChatClient** system prompt:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
You are a Java programmer tasked with generating high quality Java code. Your task is to generate the best content possible for the user's request.
|
You are a Java programmer tasked with generating high quality
|
||||||
|
Java code. Your task is to generate the best content possible
|
||||||
|
for the user's request.
|
||||||
```
|
```
|
||||||
- **Critique ChatClient**:
|
- **Critique ChatClient** system prompt:
|
||||||
```text
|
```text
|
||||||
You are tasked with generating critique and recommendations for the user's generated content. If the user content has something wrong or something to be improved, output a list of recommendations and critiques."
|
You are tasked with generating critique and recommendations for
|
||||||
|
the user's generated content. If the user content has something
|
||||||
|
wrong or something to be improved, output a list of
|
||||||
|
recommendations and critiques.
|
||||||
```
|
```
|
||||||
|
|
||||||
## Example Run
|
## Example Run
|
||||||
@@ -111,4 +113,4 @@ The generation `ChatClient` created improved code with:
|
|||||||
|
|
||||||
## MergeSort
|
## MergeSort
|
||||||
|
|
||||||
The file `AgentMergeSort.md` shows a similar run to create a merge sort algorithm.
|
The file `AgentMergeSort.md` shows a similar run to create a merge sort algorithm. There is also a JUnit test of the code that was generated to show it works.
|
||||||
|
|||||||
Reference in New Issue
Block a user