203. AI 에이전트 워크플로우 매니저
Hard
바이브코딩
Vibe ContestVibe AgentMCPAI AgentWorkflow
문제 설명
[문제]
AI 에이전트들을 등록하고, 여러 단계를 묶은 워크플로우를 정의/실행하는 MCP 서버를 구현한다(단순화 버전). 에이전트는 이름으로 식별되는 작업 단위이고, 워크플로우는 "단계 이름들의 목록"이다. 워크플로우를 실행하면 그 단계 목록을 순서대로 진행한다.
서버 인스턴스는 다음을 유지한다:
agents: 등록된 에이전트 이름들의 집합(중복 없는 모음)
workflows: 워크플로우 이름 -> 단계 목록([step1, step2, ...])
execution_log: 실행할 때마다 (워크플로우 이름, 진행한 단계 수)를 쌓는 기록
[구현할 함수]
- register_agent(agent_name: str) -> int
에이전트를 등록한다. 등록 후 전체 에이전트 수를 반환한다.
- create_workflow(name: str, steps: List[str]) -> int
워크플로우 이름과 단계 목록을 받아 정의한다. 정의 후 전체 워크플로우 수를 반환한다.
- execute_workflow(name: str) -> int
해당 이름의 워크플로우를 실행하고 진행한 단계 수를 반환한다. 존재하지 않는 워크플로우면 0 을 반환한다.
- get_execution_log() -> int
지금까지 쌓인 실행 기록의 개수를 반환한다.
- list_agents() -> List[str]
등록된 에이전트 이름들을 정렬된(사전순) 배열로 반환한다. 하나도 없으면 빈 배열 [] 을 반환한다.
[입력/상태]
서버는 agents 집합, workflows 사전, execution_log 리스트를 유지한다.
[제약]
- 초기 상태에는 에이전트/워크플로우/기록이 모두 없다.
- 존재하지 않는 워크플로우 실행은 0 을 반환한다.
- list_agents 결과는 사전순 정렬 배열이다.
[예시] (각 예시는 초기 빈 상태에서 시작)
register_agent("agent1") -> 1
create_workflow("w", ["a", "b"]) -> 1
execute_workflow("없음") -> 0 # 없는 워크플로우
get_execution_log() -> 0 # 실행 전
list_agents() -> [] # 등록 전
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.