import { serve } from "@upstash/workflow/nextjs";
import { agentWorkflow } from "@upstash/workflow-agents";
export const { POST } = serve(async (context) => {
const agents = agentWorkflow(context);
const model = agents.openai('gpt-3.5-turbo');
// Define worker agents
const worker1 = agents.agent({
model,
name: 'worker1',
maxSteps: 1,
background: 'You are an agent that explains quantum physics.',
tools: {}
});
const worker2 = agents.agent({
model,
name: 'worker2',
maxSteps: 1,
background: 'You are an agent that explains relativity.',
tools: {}
});
const worker3 = agents.agent({
model,
name: 'worker3',
maxSteps: 1,
background: 'You are an agent that explains string theory.',
tools: {}
});
// Await results
const [result1, result2, result3] = await Promise.all([
agents.task({ agent: worker1, prompt: "Explain quantum physics." }).run(),
agents.task({ agent: worker2, prompt: "Explain relativity." }).run(),
agents.task({ agent: worker3, prompt: "Explain string theory." }).run(),
]);
// Aggregating results
const aggregator = agents.agent({
model,
name: 'aggregator',
maxSteps: 1,
background: 'You are an agent that summarizes multiple answers.',
tools: {}
});
const task = await agents.task({
agent: aggregator,
prompt: `Summarize these three explanations: ${result1.text}, ${result2.text}, ${result3.text}`
})
const finalSummary = await task.run();
console.log(finalSummary.text);
});