| # Pub/Sub Multi-Agent System - Example Configurations | |
| **Note**: This deployment includes **phi4-mini** (general purpose), **MedAIBase/MedGemma1.5:4b** (medical/healthcare), and **deepseek-coder:1.3b** (coding) models. | |
| **Important**: Use `{question}` in prompts to access the user's question, `{schema}` for database schema, and `{input}` for messages from subscribed topics (all case insensitive). | |
| ## Example 1: Natural Language to SQL Pipeline (using phi4-mini) | |
| ### Agent 1: Question Analyzer | |
| - **Title**: Question Analyzer | |
| - **Prompt**: | |
| ``` | |
| Given this database schema: | |
| {schema} | |
| User question: {question} | |
| Analyze the question and identify: | |
| 1. What tables are needed | |
| 2. What columns are needed | |
| 3. What the user wants to retrieve | |
| Respond with a clear analysis. | |
| ``` | |
| - **Model**: phi4-mini | |
| - **Subscribe Topic**: START | |
| - **Publish Topic**: QUESTION_ANALYZED | |
| ### Agent 2: SQL Generator | |
| - **Title**: SQL Generator | |
| - **Prompt**: | |
| ``` | |
| Based on this analysis: | |
| {input} | |
| Database schema: | |
| {schema} | |
| Original question: {question} | |
| Generate a SQL query that answers the user's question. | |
| Return ONLY the SQL query, no explanation. | |
| ``` | |
| - **Model**: phi4-mini | |
| - **Subscribe Topic**: QUESTION_ANALYZED | |
| - **Publish Topic**: SQL_GENERATED | |
| ### Agent 3: SQL Validator | |
| - **Title**: SQL Validator | |
| - **Prompt**: | |
| ``` | |
| Check if this SQL query is valid and correct: | |
| {input} | |
| Schema: | |
| {schema} | |
| If valid, return "VALID: " followed by the query. | |
| If invalid, return "INVALID: " followed by the corrected query. | |
| ``` | |
| - **Model**: phi4-mini | |
| - **Subscribe Topic**: SQL_GENERATED | |
| - **Publish Topic**: FINAL | |
| --- | |
| ## Example 2: Medical Symptom Analysis (Using MedGemma) | |
| **User Question**: "Patient has fever, cough, and shortness of breath for 3 days" | |
| ### Agent 1: Symptom Extractor | |
| - **Title**: Symptom Extractor | |
| - **Prompt**: | |
| ``` | |
| Patient report: {question} | |
| Extract all symptoms mentioned in the patient report. | |
| List them clearly and concisely. | |
| ``` | |
| - **Model**: MedAIBase/MedGemma1.5:4b | |
| - **Subscribe Topic**: START | |
| - **Publish Topic**: SYMPTOMS_EXTRACTED | |
| ### Agent 2: Preliminary Assessment | |
| - **Title**: Preliminary Assessment | |
| - **Prompt**: | |
| ``` | |
| Based on these symptoms: | |
| {input} | |
| Provide a preliminary medical assessment including: | |
| 1. Possible conditions | |
| 2. Severity level | |
| 3. Recommended next steps | |
| Note: This is for educational purposes only, not medical advice. | |
| ``` | |
| - **Model**: MedAIBase/MedGemma1.5:4b | |
| - **Subscribe Topic**: SYMPTOMS_EXTRACTED | |
| - **Publish Topic**: FINAL | |
| - **Subscribe Topic**: SYMPTOMS_EXTRACTED | |
| - **Publish Topic**: ASSESSMENT_COMPLETE | |
| --- | |
| ## Example 3: Code Review and Debugging (Using DeepSeek Coder) | |
| **User Question**: "Review this Python function for bugs" | |
| **Data Source:** | |
| - Label: `Code` | |
| - Content: | |
| ```python | |
| def calculate_average(numbers): | |
| total = 0 | |
| for num in numbers: | |
| total += num | |
| return total / len(numbers) | |
| ``` | |
| ### Agent 1: Bug Detector | |
| - **Title**: Bug Detector | |
| - **Prompt**: | |
| ``` | |
| Review this code for bugs: | |
| {Code} | |
| Identify any bugs, edge cases, or potential issues. | |
| ``` | |
| - **Model**: deepseek-coder:1.3b | |
| - **Subscribe Topic**: START | |
| - **Publish Topic**: BUGS_FOUND | |
| ### Agent 2: Code Fixer | |
| - **Title**: Code Fixer | |
| - **Prompt**: | |
| ``` | |
| Based on these identified issues: | |
| {input} | |
| Original code: | |
| {Code} | |
| Provide the corrected code with fixes for all issues. | |
| ``` | |
| - **Model**: deepseek-coder:1.3b | |
| - **Subscribe Topic**: BUGS_FOUND | |
| - **Publish Topic**: FINAL | |
| --- | |
| ## Example 4: Research Paper Analysis | |
| ### Agent 1: Abstract Analyzer | |
| - **Title**: Abstract Analyzer | |
| - **Prompt**: | |
| ``` | |
| Paper abstract: {input} | |
| Analyze the abstract and extract: | |
| 1. Main research question | |
| 2. Methodology | |
| 3. Key findings | |
| ``` | |
| - **Model**: phi4-mini | |
| - **Subscribe Topic**: START | |
| - **Publish Topic**: ABSTRACT_ANALYZED | |
| ### Agent 2: Methodology Reviewer | |
| - **Title**: Methodology Reviewer | |
| - **Prompt**: | |
| ``` | |
| Based on this analysis: | |
| {input} | |
| Evaluate the research methodology: | |
| 1. Is it appropriate for the research question? | |
| 2. What are the strengths? | |
| 3. What are potential limitations? | |
| ``` | |
| - **Model**: phi4-mini | |
| - **Subscribe Topic**: ABSTRACT_ANALYZED | |
| - **Publish Topic**: METHODOLOGY_REVIEWED | |
| ### Agent 3: Summary Generator | |
| - **Title**: Summary Generator | |
| - **Prompt**: | |
| ``` | |
| Based on this methodology review: | |
| {input} | |
| Generate a comprehensive summary of the paper suitable for a literature review. | |
| ``` | |
| - **Model**: phi4-mini | |
| - **Subscribe Topic**: METHODOLOGY_REVIEWED | |
| - **Publish Topic**: SUMMARY_COMPLETE | |
| --- | |
| ## Example 5: Content Moderation Pipeline (using phi4-mini) | |
| ### Agent 1: Content Classifier | |
| - **Title**: Content Classifier | |
| - **Prompt**: | |
| ``` | |
| Content: {input} | |
| Classify this content into one of these categories: | |
| - SAFE | |
| - NEEDS_REVIEW | |
| - INAPPROPRIATE | |
| Provide classification and brief reasoning. | |
| ``` | |
| - **Model**: phi4-mini | |
| - **Subscribe Topic**: START | |
| - **Publish Topic**: CLASSIFIED | |
| ### Agent 2: Detailed Review (only for NEEDS_REVIEW) | |
| - **Title**: Detailed Reviewer | |
| - **Prompt**: | |
| ``` | |
| Classification result: {input} | |
| If the content was marked as NEEDS_REVIEW, provide: | |
| 1. Specific concerns | |
| 2. Severity level (low/medium/high) | |
| 3. Recommended action | |
| If not NEEDS_REVIEW, just respond "NO REVIEW NEEDED" | |
| ``` | |
| - **Model**: phi4-mini | |
| - **Subscribe Topic**: CLASSIFIED | |
| - **Publish Topic**: REVIEW_COMPLETE | |
| --- | |
| ## Example 5: Medical Symptom Analysis (phi4-mini can handle basic medical tasks) | |
| ### Agent 1: Symptom Categorizer | |
| - **Title**: Symptom Categorizer | |
| - **Prompt**: | |
| ``` | |
| Patient symptoms: {input} | |
| Categorize these symptoms by body system: | |
| - Cardiovascular | |
| - Respiratory | |
| - Neurological | |
| - Gastrointestinal | |
| - Other | |
| List each symptom under its appropriate category. | |
| ``` | |
| - **Model**: phi4-mini | |
| - **Subscribe Topic**: START | |
| - **Publish Topic**: SYMPTOMS_CATEGORIZED | |
| ### Agent 2: Diagnostic Reasoning | |
| - **Title**: Diagnostic Reasoning | |
| - **Prompt**: | |
| ``` | |
| Categorized symptoms: | |
| {input} | |
| Based on these symptoms, provide: | |
| 1. Most likely differential diagnoses (top 3) | |
| 2. Supporting evidence for each | |
| 3. Recommended diagnostic tests | |
| Note: This is for educational purposes only. | |
| ``` | |
| - **Model**: phi4-mini | |
| - **Subscribe Topic**: SYMPTOMS_CATEGORIZED | |
| - **Publish Topic**: DIAGNOSIS_COMPLETE | |
| --- | |
| ## Tips for Creating Effective Agents | |
| 1. **Clear Subscribe/Publish Topics**: Use descriptive names like "SQL_GENERATED" not just "STEP2" | |
| 2. **Prompt Placeholders**: | |
| - Use `{question}` for the user's input question | |
| - Use `{input}` for the message from the subscribed topic | |
| - Use `{schema}` to access the database schema | |
| - All three can be used together in any prompt | |
| 3. **Model Selection**: | |
| - **phi4-mini**: Versatile general-purpose model - text analysis, SQL, reasoning, classification | |
| - **cniongolo/biomistral**: Medical and scientific tasks - diagnosis, clinical reasoning, biomedical analysis | |
| 4. **Final Results**: | |
| - Publish to topic "FINAL" to display results in the Final Result box | |
| - Only the last agent in your chain should publish to FINAL | |
| 4. **Chain Design**: | |
| - Start simple with 2-3 agents | |
| - Each agent should have ONE clear purpose | |
| - Test each agent individually first | |
| 5. **Error Handling**: | |
| - If an agent has no subscribers for its publish topic, the chain stops | |
| - Make sure START has at least one subscriber | |
| - Check that all topics form a connected chain | |
| 6. **Debugging**: | |
| - Watch the execution log carefully | |
| - Check which topics have subscribers | |
| - Verify message flow through the bus | |