Skip to main content
Glama
orneryd

M.I.M.I.R - Multi-agent Intelligent Memory & Insight Repository

by orneryd
complex-lambda-test.json11.3 kB
{ "name": "Complex Lambda Integration Test", "description": "Tests multiple lambdas, parallel groups feeding transformers, and transformers as final tasks", "version": "1.0", "tasks": [ { "id": "research-1", "taskType": "agent", "title": "Research: AI Fundamentals", "description": "Research core AI/ML concepts", "agentRoleDescription": "Technical researcher specializing in AI fundamentals. Provide concise, bullet-point summaries.", "recommendedModel": "gpt-4.1", "prompt": "Research and provide a brief summary (5-7 bullet points) about the fundamentals of machine learning. Focus on: supervised vs unsupervised learning, neural networks basics, and common use cases. Keep it concise.", "dependencies": [], "parallelGroup": 1, "estimatedDuration": "2 min", "estimatedToolCalls": 0, "successCriteria": ["Contains bullet points", "Covers ML fundamentals"], "qcRole": "Research QC - verify accuracy and completeness", "verificationCriteria": ["Information is accurate", "At least 5 bullet points"], "maxRetries": 1 }, { "id": "research-2", "taskType": "agent", "title": "Research: LLM Applications", "description": "Research LLM use cases", "agentRoleDescription": "Technical researcher specializing in AI applications. Provide concise, bullet-point summaries.", "recommendedModel": "gpt-4.1", "prompt": "Research and provide a brief summary (5-7 bullet points) about Large Language Model applications. Focus on: code generation, content creation, and data analysis use cases. Keep it concise.", "dependencies": [], "parallelGroup": 1, "estimatedDuration": "2 min", "estimatedToolCalls": 0, "successCriteria": ["Contains bullet points", "Covers LLM applications"], "qcRole": "Research QC - verify accuracy and completeness", "verificationCriteria": ["Information is accurate", "At least 5 bullet points"], "maxRetries": 1 }, { "id": "research-3", "taskType": "agent", "title": "Research: AI Ethics", "description": "Research AI ethics and safety", "agentRoleDescription": "Technical researcher specializing in AI ethics. Provide concise, bullet-point summaries.", "recommendedModel": "gpt-4.1", "prompt": "Research and provide a brief summary (5-7 bullet points) about AI ethics and safety considerations. Focus on: bias in AI, responsible AI development, and transparency. Keep it concise.", "dependencies": [], "parallelGroup": 1, "estimatedDuration": "2 min", "estimatedToolCalls": 0, "successCriteria": ["Contains bullet points", "Covers AI ethics"], "qcRole": "Research QC - verify accuracy and completeness", "verificationCriteria": ["Information is accurate", "At least 5 bullet points"], "maxRetries": 1 }, { "id": "consolidator-lambda", "taskType": "transformer", "title": "Research Consolidator", "description": "Combines all research outputs into structured format", "dependencies": ["research-1", "research-2", "research-3"], "parallelGroup": null, "lambdaId": "inline-consolidator", "lambdaName": "ResearchConsolidator", "lambdaLanguage": "typescript", "lambdaScript": "/**\n * Consolidates research from multiple agents into a structured summary\n * Uses the unified LambdaInput contract\n */\nfunction transform(input: any): string {\n console.log(`Consolidating ${input.tasks.length} research outputs`);\n \n // Build sections from each research task\n const sections = input.tasks.map((task: any, idx: number) => {\n const output = task.workerOutput || task.transformerOutput || 'No output';\n const qcStatus = task.qcResult?.passed ? '✅ Verified' : '⚠️ Needs Review';\n const score = task.qcResult?.score || 'N/A';\n \n return `## Section ${idx + 1}: ${task.taskTitle}\n**QC Status**: ${qcStatus} (Score: ${score})\n\n${output}`;\n });\n \n // Create consolidated document\n return `# Consolidated Research Report\n\n**Generated by**: ${input.meta.lambdaName}\n**Source Tasks**: ${input.tasks.length}\n**Execution ID**: ${input.meta.executionId}\n\n---\n\n${sections.join('\\n\\n---\\n\\n')}\n\n---\n\n## Summary Statistics\n- Total research areas: ${input.tasks.length}\n- Passed QC: ${input.tasks.filter((t: any) => t.qcResult?.passed).length}\n- Average QC Score: ${Math.round(input.tasks.reduce((sum: number, t: any) => sum + (t.qcResult?.score || 0), 0) / input.tasks.length)}`;\n}" }, { "id": "synthesizer", "taskType": "agent", "title": "Knowledge Synthesizer", "description": "Creates executive summary from consolidated research", "agentRoleDescription": "Executive summary writer. Create clear, actionable insights from research.", "recommendedModel": "gpt-4.1", "prompt": "", "dependencies": ["consolidator-lambda"], "parallelGroup": null, "estimatedDuration": "2 min", "estimatedToolCalls": 0, "successCriteria": ["Executive summary created", "Key insights identified"], "qcRole": "Summary QC - verify clarity and completeness", "verificationCriteria": ["Summary is clear", "Includes actionable insights"], "maxRetries": 1 }, { "id": "final-formatter-lambda", "taskType": "transformer", "title": "Final Report Formatter", "description": "Formats the final output as a polished report (TESTS: Lambda as final task)", "dependencies": ["synthesizer"], "parallelGroup": null, "lambdaId": "inline-formatter", "lambdaName": "ReportFormatter", "lambdaLanguage": "typescript", "lambdaScript": "/**\n * Formats the synthesizer output as a polished final report\n * This is a FINAL TASK - output should be saved as deliverable\n */\nfunction transform(input: any): string {\n const synthOutput = input.tasks[0];\n const content = synthOutput.workerOutput || synthOutput.transformerOutput || '';\n \n return `# 📊 AI Research Report - Executive Summary\n\n**Generated**: ${new Date().toISOString()}\n**Pipeline**: Research → Consolidation → Synthesis → Formatting\n**Lambda**: ${input.meta.lambdaName}\n\n---\n\n${content}\n\n---\n\n## Report Metadata\n- Source Task: ${synthOutput.taskTitle}\n- QC Passed: ${synthOutput.qcResult?.passed ? 'Yes ✅' : 'No ⚠️'}\n- Processing Pipeline: 3 Agents → 2 Lambdas\n- Final Format: Markdown Report\n\n*This report was automatically generated by the Mimir Orchestration Pipeline.*`;\n}" }, { "id": "data-analyzer", "taskType": "agent", "title": "Data Pattern Analyzer", "description": "Independent analysis branch - analyzes data patterns", "agentRoleDescription": "Data analyst specializing in pattern recognition. Provide structured analysis.", "recommendedModel": "gpt-4.1", "prompt": "Analyze common patterns in software development workflows. Provide:\n1. Top 3 workflow patterns\n2. Key metrics to track\n3. Common bottlenecks\n\nKeep response concise (under 300 words).", "dependencies": [], "parallelGroup": null, "estimatedDuration": "2 min", "estimatedToolCalls": 0, "successCriteria": ["Patterns identified", "Metrics provided"], "qcRole": "Analysis QC - verify logical reasoning", "verificationCriteria": ["Analysis is logical", "Contains actionable insights"], "maxRetries": 1 }, { "id": "stats-lambda", "taskType": "transformer", "title": "Analysis Statistics Generator", "description": "Generates statistics from analysis (TESTS: Another Lambda as final task)", "dependencies": ["data-analyzer"], "parallelGroup": null, "lambdaId": "inline-stats", "lambdaName": "StatsGenerator", "lambdaLanguage": "typescript", "lambdaScript": "/**\n * Generates statistics and structured output from the analysis\n * This is a FINAL TASK - output should be saved as deliverable\n */\nfunction transform(input: any): string {\n const analysis = input.tasks[0];\n const content = analysis.workerOutput || '';\n \n // Count some basic stats from the content\n const wordCount = content.split(/\\s+/).length;\n const sentenceCount = (content.match(/[.!?]+/g) || []).length;\n const bulletPoints = (content.match(/^[\\s]*[-•*\\d.]+/gm) || []).length;\n \n return `# 📈 Analysis Statistics Report\n\n## Content Analysis\n| Metric | Value |\n|--------|-------|\n| Word Count | ${wordCount} |\n| Sentences | ${sentenceCount} |\n| Bullet Points | ${bulletPoints} |\n| QC Score | ${analysis.qcResult?.score || 'N/A'} |\n| QC Status | ${analysis.qcResult?.passed ? 'Passed ✅' : 'Review Needed ⚠️'} |\n\n## Source Analysis\n${content}\n\n---\n\n**Generated by**: ${input.meta.lambdaName}\n**Task**: ${analysis.taskTitle}\n**Duration**: ${analysis.duration}ms\n\n*This statistics report demonstrates Lambda as a final pipeline stage.*`;\n}" } ], "parallelGroups": [ { "id": 1, "name": "Research Phase", "taskIds": ["research-1", "research-2", "research-3"], "color": "#3b82f6" } ], "lambdas": [ { "id": "inline-consolidator", "name": "ResearchConsolidator", "description": "Consolidates multiple research outputs into structured report", "language": "typescript", "version": "1.0" }, { "id": "inline-formatter", "name": "ReportFormatter", "description": "Formats final output as polished report", "language": "typescript", "version": "1.0" }, { "id": "inline-stats", "name": "StatsGenerator", "description": "Generates statistics from analysis output", "language": "typescript", "version": "1.0" } ], "projectPlan": { "overview": { "goal": "Test complex Lambda workflow patterns including parallel inputs and final-stage transformers", "complexity": "High", "estimatedDuration": "10-15 minutes" }, "phases": [ { "name": "Research Phase", "description": "3 parallel agents research different AI topics", "tasks": ["research-1", "research-2", "research-3"] }, { "name": "Consolidation Phase", "description": "Lambda consolidates all 3 research outputs", "tasks": ["consolidator-lambda"] }, { "name": "Synthesis Phase", "description": "Agent creates executive summary from consolidated research", "tasks": ["synthesizer"] }, { "name": "Final Formatting", "description": "Lambda formats final report (tests Lambda as final task)", "tasks": ["final-formatter-lambda"] }, { "name": "Independent Analysis", "description": "Separate branch with agent → lambda ending", "tasks": ["data-analyzer", "stats-lambda"] } ] }, "testScenarios": [ "Multiple agents → single Lambda (3→1 consolidation)", "Lambda output → Agent input (transformed prompt injection)", "Lambda as final task (deliverable capture)", "Multiple Lambda chains in same workflow", "Parallel execution + sequential Lambda processing" ] }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/orneryd/Mimir'

If you have feedback or need assistance with the MCP directory API, please join our Discord server