A production-ready Multi AI Agents framework for TypeScript Async
PraisonAI is a production-ready Multi AI Agents framework for TypeScript Async, designed to create AI Agents to automate and solve problems ranging from simple tasks to complex challenges. It provides a low-code solution to streamline the building and management of multi-agent LLM systems, emphasising simplicity, customisation, and effective human-agent collaboration.
Create and run a single agent to perform a specific task:
Copy
import { Agent, PraisonAIAgents } from 'praisonai';async function main() { // Create a simple agent (no task specified) const agent = new Agent({ name: "BiologyExpert", instructions: "Explain the process of photosynthesis in detail.", verbose: true }); // Run the agent const praisonAI = new PraisonAIAgents({ agents: [agent], tasks: ["Explain the process of photosynthesis in detail."], verbose: true }); try { console.log('Starting single agent example...'); const results = await praisonAI.start(); console.log('\nFinal Results:', results); } catch (error) { console.error('Error:', error); }}main();
Multi-Agent Example
Create and run multiple agents working together:
Copy
import { Agent, PraisonAIAgents } from 'praisonai';async function main() { // Create multiple agents with different roles const researchAgent = new Agent({ name: "ResearchAgent", instructions: "Research and provide detailed information about renewable energy sources.", verbose: true }); const summaryAgent = new Agent({ name: "SummaryAgent", instructions: "Create a concise summary of the research findings about renewable energy sources. Use {previous_result} as input.", verbose: true }); const recommendationAgent = new Agent({ name: "RecommendationAgent", instructions: "Based on the summary in {previous_result}, provide specific recommendations for implementing renewable energy solutions.", verbose: true }); // Run the agents in sequence const praisonAI = new PraisonAIAgents({ agents: [researchAgent, summaryAgent, recommendationAgent], tasks: [ "Research and analyze current renewable energy technologies and their implementation.", "Summarize the key findings from the research.", "Provide actionable recommendations based on the summary." ], verbose: true }); try { console.log('Starting multi-agent example...'); const results = await praisonAI.start(); console.log('\nFinal Results:', results); } catch (error) { console.error('Error:', error); }}main();
Task-Based Agent Example
Create agents with specific tasks and dependencies:
Copy
import { Agent, Task, PraisonAIAgents } from 'praisonai';async function main() { // Create agents first const dietAgent = new Agent({ name: "DietAgent", role: "Nutrition Expert", goal: "Create healthy and delicious recipes", backstory: "You are a certified nutritionist with years of experience in creating balanced meal plans.", verbose: true, instructions: `You are a professional chef and nutritionist. Create 5 healthy food recipes that are both nutritious and delicious.Each recipe should include:1. Recipe name2. List of ingredients with quantities3. Step-by-step cooking instructions4. Nutritional information5. Health benefitsFormat your response in markdown.` }); const blogAgent = new Agent({ name: "BlogAgent", role: "Food Blogger", goal: "Write engaging blog posts about food and recipes", backstory: "You are a successful food blogger known for your ability to make recipes sound delicious and approachable.", verbose: true, instructions: `You are a food and health blogger. Write an engaging blog post about the provided recipes.The blog post should:1. Have an engaging title2. Include an introduction about healthy eating` }); // Create tasks const createRecipesTask = new Task({ name: "Create Recipes", description: "Create 5 healthy and delicious recipes", agent: dietAgent }); const writeBlogTask = new Task({ name: "Write Blog", description: "Write a blog post about the recipes", agent: blogAgent, dependencies: [createRecipesTask] // This task depends on the recipes being created first }); // Run the tasks const praisonAI = new PraisonAIAgents({ tasks: [createRecipesTask, writeBlogTask], verbose: true }); try { console.log('Starting task-based example...'); const results = await praisonAI.start(); console.log('\nFinal Results:', results); } catch (error) { console.error('Error:', error); }}main();