mirror of
https://github.com/khoaliber/n8nworkflows.xyz.git
synced 2026-04-19 17:14:37 +00:00
creation
This commit is contained in:
@@ -0,0 +1,375 @@
|
||||
Generate Complete Database Schemas with Claude Multi-Agent System for SQL Databases
|
||||
|
||||
https://n8nworkflows.xyz/workflows/generate-complete-database-schemas-with-claude-multi-agent-system-for-sql-databases-9544
|
||||
|
||||
|
||||
# Generate Complete Database Schemas with Claude Multi-Agent System for SQL Databases
|
||||
|
||||
### 1. Workflow Overview
|
||||
|
||||
This workflow automates the generation of complete, production-ready database schemas for SQL databases using a multi-agent AI system powered by Claude (Anthropic). It is designed for users who provide detailed database requirements via a form. The system iteratively creates, reviews, optimizes, and finally generates executable SQL scripts for the specified database technology, supporting PostgreSQL, MySQL, MSSQL, and MariaDB.
|
||||
|
||||
**Target Use Cases:**
|
||||
- Rapid prototyping of scalable, normalized database schemas
|
||||
- AI-assisted database design and review for startups and enterprises
|
||||
- Automated SQL migration script generation with best practices
|
||||
- Iterative improvement and quality assurance via AI feedback loops
|
||||
|
||||
**Logical Blocks:**
|
||||
- **1.1 Input Reception and Initialization:** Receives user input via form and initializes workflow variables.
|
||||
- **1.2 Multi-Agent Schema Design Pipeline:** Runs through three AI agents sequentially—Architect, Reviewer, and Optimizer—to create and refine the schema iteratively.
|
||||
- **1.3 Quality Gate and Iteration Control:** Evaluates the optimizer's score and decides to proceed or retry up to 3 times.
|
||||
- **1.4 SQL Script Generation:** Converts final schema design into an executable SQL script.
|
||||
- **1.5 Execution and Response Handling:** Optionally executes the SQL script in PostgreSQL and returns success or error responses.
|
||||
- **1.6 User Interaction and Completion:** Displays final results or errors back to user via form completion node.
|
||||
|
||||
---
|
||||
|
||||
### 2. Block-by-Block Analysis
|
||||
|
||||
#### 1.1 Input Reception and Initialization
|
||||
|
||||
- **Overview:** Collects database requirements from the user via a web form and initializes key variables for iteration and feedback.
|
||||
- **Nodes Involved:** Form Submission, Initialize Variables
|
||||
|
||||
**Node Details:**
|
||||
|
||||
- **Form Submission**
|
||||
- Type: Form Trigger
|
||||
- Role: Collect user input on database requirements including technology, industry, scale, workflows, integrations, special requirements, and contact email.
|
||||
- Configuration: Various form fields including textarea, dropdown, number, and email with required validation.
|
||||
- Outputs: JSON object with user responses.
|
||||
- Edge cases: Missing required fields; malformed input; slow user response.
|
||||
|
||||
- **Initialize Variables**
|
||||
- Type: Set node
|
||||
- Role: Initialize `iteration_count` to 0, `previous_feedback` to "=" (empty placeholder), and store form data for workflow context.
|
||||
- Configuration: Sets three variables from JSON input.
|
||||
- Inputs: Output from Form Submission.
|
||||
- Outputs: Initialized context for agents.
|
||||
- Edge cases: None significant; fails if input missing.
|
||||
|
||||
---
|
||||
|
||||
#### 1.2 Multi-Agent Schema Design Pipeline
|
||||
|
||||
- **Overview:** Runs three AI agents in sequence, each powered by Claude Sonnet 4.5, to create, review, and optimize the proposed database schema using the input data and iterative feedback.
|
||||
- **Nodes Involved:** Architect Model, Agent 1: Database Architect, Reviewer Model, Agent 2: Schema Reviewer, Optimizer Model, Agent 3: Optimizer & Scorer, Track Iteration
|
||||
|
||||
**Node Details:**
|
||||
|
||||
- **Architect Model**
|
||||
- Type: Anthropic LM Chat node
|
||||
- Role: Base model configuration for Agent 1.
|
||||
- Parameters: Temperature 0.3, topP 0.9 for balanced creativity and consistency.
|
||||
- Credentials: Anthropic API
|
||||
- Output: Model response to Agent 1.
|
||||
|
||||
- **Agent 1: Database Architect**
|
||||
- Type: Langchain Agent node
|
||||
- Role: Designs initial database schema as JSON based on form data and previous feedback if any.
|
||||
- Prompt: Detailed instructions to design scalable, normalized DB schema with tables, columns, PK, indexes, FKs, enums, extensions, relationships, reasoning.
|
||||
- Input: Form data and previous feedback from Initialize Variables or Track Iteration.
|
||||
- Output: JSON design of schema.
|
||||
- Edge cases: Incomplete feedback; model hallucinations; overly complex schemas.
|
||||
|
||||
- **Reviewer Model**
|
||||
- Type: Anthropic LM Chat node
|
||||
- Role: Base model configuration for Agent 2.
|
||||
- Parameters: Temperature 0.1, topP 0.85 for strict analytical review.
|
||||
- Credentials: Anthropic API
|
||||
|
||||
- **Agent 2: Schema Reviewer**
|
||||
- Type: Langchain Agent node
|
||||
- Role: Reviews Agent 1 schema for normalization, indexing, data types, constraints, performance, scalability, security; outputs structured feedback with severity levels.
|
||||
- Prompt includes original requirements and schema from Agent 1.
|
||||
- Output: Structured feedback with CRITICAL to LOW issues and positives.
|
||||
- Edge cases: Missed issues; false positives; incomplete feedback.
|
||||
|
||||
- **Optimizer Model**
|
||||
- Type: Anthropic LM Chat node
|
||||
- Role: Base model config for Agent 3.
|
||||
- Parameters: Temperature 0.5, topP 0.95 for balanced polish and creativity.
|
||||
- Credentials: Anthropic API
|
||||
|
||||
- **Agent 3: Optimizer & Scorer**
|
||||
- Type: Langchain Agent node
|
||||
- Role: Applies final polish, adds advanced features (materialized views, helper functions), monitoring recommendations, comprehensive score card with grades and justifications, implementation guidance.
|
||||
- Prompt includes original requirements, schema, and review feedback.
|
||||
- Output: Score card and enhanced schema.
|
||||
- Edge cases: Over-optimism; missing critical fixes.
|
||||
|
||||
- **Track Iteration**
|
||||
- Type: Set node
|
||||
- Role: Increment iteration count, update previous feedback with Agent 3 output for retry loop, preserve form data.
|
||||
- Inputs: Agent 3 output and Initialize Variables data.
|
||||
- Outputs: Updated context for next iteration or decision.
|
||||
|
||||
---
|
||||
|
||||
#### 1.3 Quality Gate and Iteration Control
|
||||
|
||||
- **Overview:** Evaluates if the schema score is good enough (grade A or B) to proceed to SQL generation or if the workflow should retry up to 3 times for improvement.
|
||||
- **Nodes Involved:** Is Score A or B?, Can Retry?, Max Iterations Reached
|
||||
|
||||
**Node Details:**
|
||||
|
||||
- **Is Score A or B?**
|
||||
- Type: If node
|
||||
- Role: Regex match on Agent 3's output to detect overall grade A or B.
|
||||
- True path: Proceed to SQL generation.
|
||||
- False path: Proceed to retry or max iteration check.
|
||||
|
||||
- **Can Retry?**
|
||||
- Type: If node
|
||||
- Role: Checks if current iteration count ≤ 3 to allow retry.
|
||||
- True path: Loop back to Agent 1 for redesign with previous feedback.
|
||||
- False path: Proceed to Max Iterations Reached.
|
||||
|
||||
- **Max Iterations Reached**
|
||||
- Type: Set node
|
||||
- Role: Sets message indicating max 3 iterations reached and proceeds with best design available.
|
||||
- Outputs: Passes through current iteration and form data for final steps.
|
||||
|
||||
---
|
||||
|
||||
#### 1.4 SQL Script Generation
|
||||
|
||||
- **Overview:** Converts the finalized database schema design into a detailed, production-ready SQL migration script, tailored for the specified database technology.
|
||||
- **Nodes Involved:** SQL Generator Model, Agent 4: Generate SQL Script
|
||||
|
||||
**Node Details:**
|
||||
|
||||
- **SQL Generator Model**
|
||||
- Type: Anthropic LM Chat node
|
||||
- Role: Base model config for Agent 4.
|
||||
- Parameters: Temperature 0.2, topP 0.85 for precision.
|
||||
- Credentials: Anthropic API
|
||||
|
||||
- **Agent 4: Generate SQL Script**
|
||||
- Type: Langchain Agent node
|
||||
- Role: Generates full SQL migration script with transaction handling, extension creation (PostgreSQL), enums, tables, indexes, constraints, comments, idempotency, rollback script.
|
||||
- Input: Database technology, final schema, and optimizations.
|
||||
- Output: Plain SQL script text (no markdown or commentary).
|
||||
- Edge cases: Syntax errors; dialect incompatibility; large output truncation.
|
||||
|
||||
---
|
||||
|
||||
#### 1.5 Execution and Response Handling
|
||||
|
||||
- **Overview:** Optionally executes the generated SQL script on a PostgreSQL database and handles success or failure responses to provide user feedback.
|
||||
- **Nodes Involved:** If User Is Using Excel (condition node), Execute SQL in PostgreSQL, Success Response, Error Response
|
||||
|
||||
**Node Details:**
|
||||
|
||||
- **If User Is Using Excel**
|
||||
- Type: If node
|
||||
- Role: Checks if the database technology contains "postgres" (case insensitive) to determine if auto-execution is possible.
|
||||
- True path: Execute SQL in PostgreSQL
|
||||
- False path: Bypass execution and show form completion only.
|
||||
|
||||
- **Execute SQL in PostgreSQL**
|
||||
- Type: PostgreSQL node
|
||||
- Role: Executes the SQL script generated by Agent 4 against configured PostgreSQL database.
|
||||
- Configuration: Uses stored PostgreSQL credentials.
|
||||
- On error: Continues workflow with error output.
|
||||
- Output: Success or error JSON.
|
||||
|
||||
- **Success Response**
|
||||
- Type: Set node
|
||||
- Role: Constructs a JSON response with status "success," message, SQL script, schema design, review feedback, score card, iteration count, and database tech for final output.
|
||||
- Input: Execute SQL success output and agent outputs.
|
||||
|
||||
- **Error Response**
|
||||
- Type: Set node
|
||||
- Role: Constructs a JSON response with status "failed," error message, SQL script, schema, feedback, score card, iteration count, and tech. Advises manual use of script if execution fails.
|
||||
- Input: Execute SQL error output and agent outputs.
|
||||
|
||||
---
|
||||
|
||||
#### 1.6 User Interaction and Completion
|
||||
|
||||
- **Overview:** Presents the final workflow output to the user via a form completion node, either after successful execution or in failure cases without execution.
|
||||
- **Nodes Involved:** Form, Form End Without Execute
|
||||
|
||||
**Node Details:**
|
||||
|
||||
- **Form**
|
||||
- Type: Form node
|
||||
- Role: Completion interface that shows final success or error JSON back to user with a title and message.
|
||||
- Input: From Success Response or Error Response nodes.
|
||||
|
||||
- **Form End Without Execute**
|
||||
- Type: Form node
|
||||
- Role: Completion interface used when SQL script is generated but not executed (non-PostgreSQL DBs).
|
||||
- Input: From If User Is Using Excel false branch.
|
||||
|
||||
---
|
||||
|
||||
### 3. Summary Table
|
||||
|
||||
| Node Name | Node Type | Functional Role | Input Node(s) | Output Node(s) | Sticky Note |
|
||||
|-------------------------|----------------------------------|-------------------------------------------------|----------------------------|-------------------------------|------------------------------------------------------------|
|
||||
| Form Submission | Form Trigger | Collects user database requirements | | Initialize Variables | ## 📝 Form Intake - user fills database requirements |
|
||||
| Initialize Variables | Set | Initializes iteration and feedback variables | Form Submission | Agent 1: Database Architect | ## 🔧 Setup Phase - prepares data for agent pipeline |
|
||||
| Architect Model | Anthropic LM Chat | Base model config for Architect Agent | | Agent 1: Database Architect | ## 🤖 Agent 1: Architect - initial schema design |
|
||||
| Agent 1: Database Architect | Langchain Agent | Designs initial database schema | Initialize Variables | Agent 2: Schema Reviewer | ## 🤖 Agent 1: Architect - initial schema design |
|
||||
| Reviewer Model | Anthropic LM Chat | Base model config for Reviewer Agent | | Agent 2: Schema Reviewer | ## 🤖 Agent 2: Reviewer - quality control & validation |
|
||||
| Agent 2: Schema Reviewer | Langchain Agent | Reviews schema for normalization & best practices | Agent 1: Database Architect | Agent 3: Optimizer & Scorer | ## 🤖 Agent 2: Reviewer - quality control & validation |
|
||||
| Optimizer Model | Anthropic LM Chat | Base model config for Optimizer Agent | | Agent 3: Optimizer & Scorer | ## 🤖 Agent 3: Optimizer - final polish & scoring |
|
||||
| Agent 3: Optimizer & Scorer | Langchain Agent | Refines schema, adds features, scores design | Agent 2: Schema Reviewer | Is Score A or B? | ## 🤖 Agent 3: Optimizer - final polish & scoring |
|
||||
| Track Iteration | Set | Tracks iteration count and feedback for retry | Agent 3: Optimizer & Scorer | Can Retry? | ## 🔁 Retry Loop - iterative improvement system |
|
||||
| Is Score A or B? | If | Checks if score grade is A or B | Agent 3: Optimizer & Scorer | Agent 4: Generate SQL Script / Track Iteration | ## 🔄 Quality Gate - ensures high-quality output |
|
||||
| Can Retry? | If | Checks if iteration count ≤ 3 for retries | Track Iteration | Agent 1: Database Architect / Max Iterations Reached | ## 🔄 Quality Gate - ensures high-quality output |
|
||||
| Max Iterations Reached | Set | Sets message when max retries reached | Can Retry? | Agent 4: Generate SQL Script | ## 🔄 Quality Gate - ensures high-quality output |
|
||||
| SQL Generator Model | Anthropic LM Chat | Base model config for SQL script generation | | Agent 4: Generate SQL Script | ## 🤖 Agent 4: SQL Generator - converts schema to SQL |
|
||||
| Agent 4: Generate SQL Script | Langchain Agent | Generates production-ready SQL migration script | Max Iterations Reached / Is Score A or B? | If User Is Using Excel | ## 🤖 Agent 4: SQL Generator - converts schema to SQL |
|
||||
| If User Is Using Excel | If | Checks if DB tech is PostgreSQL to decide execution | Agent 4: Generate SQL Script | Execute SQL in PostgreSQL / Form End Without Execute | ## Query Execute - auto runs script on PostgreSQL |
|
||||
| Execute SQL in PostgreSQL | PostgreSQL | Executes SQL script on PostgreSQL database | If User Is Using Excel | Success Response / Error Response | ## Query Execute - auto runs script on PostgreSQL |
|
||||
| Success Response | Set | Constructs success response JSON | Execute SQL in PostgreSQL | Form | ## ✅ Execution Validation - handles success gracefully |
|
||||
| Error Response | Set | Constructs failure response JSON | Execute SQL in PostgreSQL | Form | ## ✅ Execution Validation - handles failure gracefully |
|
||||
| Form | Form | Shows final success or failure message to user | Success Response / Error Response | | ## ✅ Execution Validation - handles success & failures |
|
||||
| Form End Without Execute | Form | Shows final message when script not executed | If User Is Using Excel (false) | | ## ✅ Execution Validation - handles success & failures |
|
||||
|
||||
---
|
||||
|
||||
### 4. Reproducing the Workflow from Scratch
|
||||
|
||||
1. **Create Form Submission Node**
|
||||
- Type: Form Trigger
|
||||
- Configure fields:
|
||||
- What are you building? (textarea, required)
|
||||
- Database Technology (dropdown: PostgreSQL, MySQL, MSSQL, MariaDB, required)
|
||||
- Industry/Niche (text, required)
|
||||
- What data do you need to track? (textarea)
|
||||
- Team Size (number)
|
||||
- Expected Scale (text)
|
||||
- Key Workflows (textarea)
|
||||
- Any integrations needed? (text)
|
||||
- Special Requirements (textarea)
|
||||
- Your Email (email, required)
|
||||
- Set form title and description accordingly.
|
||||
|
||||
2. **Add Set Node "Initialize Variables"**
|
||||
- Assign:
|
||||
- iteration_count = 0 (number)
|
||||
- previous_feedback = "=" (string)
|
||||
- form_data = entire JSON from Form Submission (object)
|
||||
- Connect output of Form Submission to this node.
|
||||
|
||||
3. **Add Anthropic LM Chat Node "Architect Model"**
|
||||
- Model: Claude Sonnet 4.5
|
||||
- Temperature: 0.3, topP: 0.9
|
||||
- Connect to Agent 1 (see next step).
|
||||
|
||||
4. **Add Langchain Agent Node "Agent 1: Database Architect"**
|
||||
- Text input: Template including all form_data fields and previous_feedback/iteration_count.
|
||||
- System message: Senior DB architect instructions for schema design output as structured JSON.
|
||||
- Connect input to Initialize Variables output.
|
||||
- Connect AI model to Architect Model node.
|
||||
|
||||
5. **Add Anthropic LM Chat Node "Reviewer Model"**
|
||||
- Model: Claude Sonnet 4.5
|
||||
- Temperature: 0.1, topP: 0.85
|
||||
- Connect to Agent 2 node.
|
||||
|
||||
6. **Add Langchain Agent Node "Agent 2: Schema Reviewer"**
|
||||
- Input: JSON stringified form_data and Agent 1 output schema.
|
||||
- System message: Reviewer checklist, output structured feedback with severity levels.
|
||||
- Connect input from Agent 1 output.
|
||||
- Connect AI model to Reviewer Model node.
|
||||
|
||||
7. **Add Anthropic LM Chat Node "Optimizer Model"**
|
||||
- Model: Claude Sonnet 4.5
|
||||
- Temperature: 0.5, topP: 0.95
|
||||
- Connect to Agent 3 node.
|
||||
|
||||
8. **Add Langchain Agent Node "Agent 3: Optimizer & Scorer"**
|
||||
- Input: Original requirements, proposed schema, review feedback.
|
||||
- System message: Instructions to polish, add advanced features, score, provide guidance.
|
||||
- Connect input from Agent 2 output.
|
||||
- Connect AI model to Optimizer Model node.
|
||||
|
||||
9. **Add Set Node "Track Iteration"**
|
||||
- Assign:
|
||||
- iteration_count = previous iteration_count + 1
|
||||
- previous_feedback = Agent 3 output
|
||||
- form_data = initial form_data
|
||||
- Connect input from Agent 3 output.
|
||||
|
||||
10. **Add If Node "Can Retry?"**
|
||||
- Condition: iteration_count ≤ 3
|
||||
- True: loop back to Agent 1 (for redesign with updated feedback)
|
||||
- False: proceed to Max Iterations Reached node.
|
||||
|
||||
11. **Add Set Node "Max Iterations Reached"**
|
||||
- Assign message indicating max attempts reached.
|
||||
- Pass through iteration_count and form_data.
|
||||
- Connect input from Can Retry? false output.
|
||||
|
||||
12. **Add If Node "Is Score A or B?"**
|
||||
- Regex check on Agent 3 output for grades A or B.
|
||||
- True: proceed to SQL generation.
|
||||
- False: proceed to Track Iteration (retry loop).
|
||||
|
||||
13. **Add Anthropic LM Chat Node "SQL Generator Model"**
|
||||
- Model: Claude Sonnet 4.5
|
||||
- Temperature: 0.2, topP: 0.85
|
||||
- Connect to Agent 4 node.
|
||||
|
||||
14. **Add Langchain Agent Node "Agent 4: Generate SQL Script"**
|
||||
- Input: Database technology, final schema, optimizations.
|
||||
- System message: Detailed instructions for generating production-ready SQL migration script with transaction handling, comments, rollback, idempotency.
|
||||
- Connect AI model to SQL Generator Model node.
|
||||
|
||||
15. **Add If Node "If User Is Using Excel"**
|
||||
- Condition: Check if database technology string contains "postgres" (case-insensitive).
|
||||
- True: Execute SQL node.
|
||||
- False: Skip execution and proceed to form completion.
|
||||
|
||||
16. **Add PostgreSQL Node "Execute SQL in PostgreSQL"**
|
||||
- Credentials: PostgreSQL account credentials.
|
||||
- Query: SQL script output from Agent 4.
|
||||
- Operation: executeQuery
|
||||
- On error: Continue error output.
|
||||
|
||||
17. **Add Set Node "Success Response"**
|
||||
- On successful SQL execution, set JSON response with status "success", message, SQL script, schema design, review feedback, score card, iterations, and database tech.
|
||||
- Connect from Execute SQL success output.
|
||||
|
||||
18. **Add Set Node "Error Response"**
|
||||
- On failure, set JSON response with status "failed", error message, SQL script, schema, review feedback, score card, iterations, and tech.
|
||||
- Connect from Execute SQL error output.
|
||||
|
||||
19. **Add Form Node "Form"**
|
||||
- Operation: completion
|
||||
- Completion title: "SQL Creation Finished"
|
||||
- Completion message: bind to JSON of Success Response or Error Response nodes.
|
||||
- Connect from Success Response and Error Response nodes.
|
||||
|
||||
20. **Add Form Node "Form End Without Execute"**
|
||||
- Operation: completion
|
||||
- Completion title: "SQL Creation Finished"
|
||||
- Completion message: bind to JSON from Agent 4 output (when SQL is not executed).
|
||||
- Connect from If User Is Using Excel false output.
|
||||
|
||||
21. **Add Sticky Notes**
|
||||
- Add descriptive sticky notes at each major section for user guidance and customization tips.
|
||||
|
||||
---
|
||||
|
||||
### 5. General Notes & Resources
|
||||
|
||||
| Note Content | Context or Link |
|
||||
|----------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|
|
||||
| Average workflow execution time is 60-90 seconds with ~85% success on first attempt. Cost per run estimated at $0.15-$0.30. | Workflow Overview Sticky Note |
|
||||
| Suggested improvements include A/B testing agent prompts, caching patterns, pre-built industry templates, and parallel execution. | Workflow Overview Sticky Note |
|
||||
| Retry loop currently maxes at 3 iterations; increasing retries or adding manual review can improve quality but increase cost. | Retry Loop Sticky Note |
|
||||
| Agent prompts are carefully tuned with temperature and topP to balance creativity, strictness, and polish across the design pipeline.| Agent Sticky Notes 1-4 |
|
||||
| SQL generated includes transaction handling, idempotency, and rollback script for safe deployment. | Agent 4 Sticky Note |
|
||||
| Execution node supports automatic running of scripts only for PostgreSQL; other DBs require manual execution of generated SQL. | Query Execute Sticky Note |
|
||||
| Error handling ensures user receives usable output even if execution fails, including the generated SQL script for manual use. | Execution Validation Sticky Note |
|
||||
|
||||
---
|
||||
|
||||
**Disclaimer:** The content above is derived exclusively from an automated n8n workflow utilizing AI language models. All data processed is lawful and publicly provided. No illegal or protected content is included.
|
||||
Reference in New Issue
Block a user