Files
connectai/src/agents/AgentWorkflowManager.ts
T

51 lines
1.7 KiB
TypeScript

import { PlannerAgent, ResearcherAgent, WriterAgent } from './factory';
import { AgentEngine, PipelineStage } from '../lib/engine';
export class AgentWorkflowManager {
/**
* 리팩토링된 고성능 에이전트 엔진을 통해 워크플로우를 실행합니다.
*/
public static async runStrictWorkflow(
prompt: string,
modelName: string,
brainContext: string,
signal: AbortSignal,
onProgress: (step: string, message: string) => void
): Promise<string> {
const planner = new PlannerAgent(modelName);
const researcher = new ResearcherAgent(modelName);
const writer = new WriterAgent(modelName);
const engine = new AgentEngine(planner, researcher, writer);
const missionId = `mission_${Date.now()}`;
try {
return await engine.runMission(
missionId,
prompt,
brainContext,
signal,
(stage: PipelineStage, message: string) => {
onProgress(this.mapStageToUI(stage), message);
}
);
} catch (error: any) {
if (error.name === 'AbortError' || error.message.includes('cancelled')) {
throw error;
}
throw new Error(`[Workflow Manager] ${error.message}`);
}
}
private static mapStageToUI(stage: PipelineStage): string {
const maps: Record<PipelineStage, string> = {
idle: '대기',
planner: 'Planner',
researcher: 'Researcher',
writer: 'Writer',
completed: '완료',
error: '오류'
};
return maps[stage] || '진행 중';
}
}