TypeScript Async AI Agents
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.
Installation
npm install praisonaiyarn add praisonaiUsage Examples
Single Agent Example
Create and run a single agent to perform a specific task:
import { Agent, AgentTeam } 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 AgentTeam({
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:
import { Agent, AgentTeam } 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 AgentTeam({
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:
import { Agent, AgentTeam } from 'praisonai';
async function main() {
// Create agents first
const dietAgent = new Agent({
name: "DietAgent",
role: "Nutrition Expert",
goal: "Create healthy and delicious recipes",
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 name
2. List of ingredients with quantities
3. Step-by-step cooking instructions
4. Nutritional information
5. Health benefits
Format your response in markdown.`
});
const blogAgent = new Agent({
name: "BlogAgent",
role: "Food Blogger",
goal: "Write engaging blog posts about food and recipes",
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 title
2. Include an introduction about healthy eating`
});
// Create tasks as plain objects — Team reads description/agent directly
const createRecipesTask = {
name: "Create Recipes",
description: "Create 5 healthy and delicious recipes",
agent: dietAgent
};
const writeBlogTask = {
name: "Write Blog",
description: "Write a blog post about the recipes",
agent: blogAgent,
dependsOn: [createRecipesTask] // This task depends on the recipes being created first
};
// Run the tasks
const praisonAI = new AgentTeam({
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();Running the Examples
Quick Start
- Simple Usage
bash export OPENAI_API_KEY='your-api-key' - With Configuration
Create a new TypeScript file (e.g.,
app.ts) with any of the above examples. - Run the Example
bash npx ts-node app.ts