daggerai
Version:
A simple and powerful Typescript based agent framework to help businesses thrive in the AI Agent revolution.
87 lines • 3.08 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const dotenv_1 = __importDefault(require("dotenv"));
const path_1 = require("path");
dotenv_1.default.config({ path: (0, path_1.resolve)(__dirname, '../../', '.env') });
const agent_1 = require("../core/agent");
const squad_1 = require("../core/squad");
const task_1 = require("../core/task");
const anthropic_1 = require("../llm/anthropic");
async function runSquad() {
const squad = new squad_1.Squad();
const llm = new anthropic_1.ChatAnthropic({
model: 'claude-3-haiku-20240307',
maxTokens: 4000,
});
// const llm = new ChatOpenAI({
// model: 'gpt-3.5-turbo',
// maxTokens: 4000,
// })
const salesAssistant = new agent_1.Agent({
id: '1',
role: 'Sales Improver',
backstory: 'You are a sales specialist.',
goal: 'You always want to increase sales',
});
const salesStrategy = new task_1.Task({
name: 'Sales Strategy',
description: 'Think of a strategy to increase sales.',
expectedOutput: 'A markdown list of strategies to increase sales.',
agent: salesAssistant,
tools: [],
memories: [],
inputs: [],
llm,
});
const salesPlan = new task_1.Task({
name: 'Sales Plan',
description: 'Create a plan to implement the strategy.',
expectedOutput: 'A markdown list of steps to implement the strategy.',
agent: salesAssistant,
tools: [],
memories: [],
inputs: [],
llm,
});
const salesResponsibilities = new task_1.Task({
name: 'Sales Execution',
description: 'Create a list of responsible people for each step.',
expectedOutput: 'A markdown list of responsible people for each step.',
agent: salesAssistant,
tools: [],
memories: [],
inputs: [],
llm,
});
squad.add(salesStrategy);
squad.add(salesPlan);
squad.add(salesResponsibilities);
squad.connect(salesStrategy, salesPlan);
squad.connect(salesPlan, salesResponsibilities);
// you can list to various events to get updates on the squad progress
squad.events.on('squad.started', () => {
console.log('Squad started!');
});
squad.events.on('agent.started', task => {
console.log(`Task started: ${task.name}`);
});
squad.events.on('agent.finished', task => {
console.log(`Task finished: ${task.output}`);
});
squad.events.on('tool.called', tool => {
console.log(`Tool called: ${tool.tool}`);
});
squad.events.on('tool.finished', tool => {
console.log(`Tool finished: ${tool}`);
});
squad.events.on('squad.finished', () => {
console.log('Squad finished!');
});
const results = await squad.evaluate({ inputs: [] });
console.log(results);
}
runSquad();
//# sourceMappingURL=sales_plan.js.map