Single Agent Baseline
단일 에이전트 기준선
문제의 배경
더 복잡한 패턴으로 들어가기 전에 기준선부터 세운다. 이 패턴은 에이전틱 시스템의 가장 단순한 형태다. 에이전트 하나가 다양한 도구에 접근해 워크플로 전체를 처리한다. 대부분의 에이전틱 구현이 여기서 시작하며, 더 앞선 아키텍처를 재는 잣대 노릇을 한다.
맥락
도구 사용을 요구할 만큼 복잡하지만, 여럿이 협업하는 부담까지는 필요 없는 과업에 이상적이다. 과업 지향 에이전틱 시스템을 짓는 가장 흔한 출발점이다.
문제
목표를 이루기 위해 일련의 반자율적 행동을 수행할 수 있는, 기본적이면서도 제 구실을 하는 에이전트를 어떻게 구성할 것인가.
해법
LLM으로 구동되는 단일 에이전트를 만든다. 도구(함수 또는 API) 집합과, 지시 프롬프트로 서술된 목표를 준다. ReAct(추론–행동)나 더 정교한 프랙탈 사고사슬(FCoT) 같은 추론 프레임워크를 써서, 에이전트의 LLM 중추가 어떤 도구를 어떤 순서로 어떤 매개변수로 호출할지 스스로 결정한다. 사고 과정(추론)과 실행 로직(계획) 전부가 이 하나의 에이전트 안에 담긴다.
사례 — 단순한 대출 승인 에이전트
구현 예시 · Python
# 에이전트가 쓸 목(mock) 도구 def get_credit_score(applicant_id: str) -> int: """주어진 신청인 ID의 신용점수를 조회한다.""" return 720 class SingleLoanAgent: def process_application(self, applicant_id: str, loan_amount: int): # LLM이 도구를 골라 호출한다 credit_score = self.tools["get_credit_score"](applicant_id) # 도구 출력에 근거해 LLM이 결정을 내리는 과정을 시뮬레이션 response = "Approved" if credit_score >= 680 else "Denied" print(f"AGENT DECISION: The loan for {applicant_id} is {response}.") return response loan_agent = SingleLoanAgent() loan_agent.process_application(applicant_id="john_doe_123", loan_amount=50000)
장점
- 단순함 — 가장 큰 이점은 구현과 디버깅의 단순함이다. 멀티 에이전트 시스템에 견주면 단일 에이전트의 행동과 상태를 관리하고 관찰하기가 훨씬 쉽다.
단점
- 확장성 — 도구 수나 도메인 복잡도가 늘어나면 잘 확장되지 않는다. 단일 에이전트가 과부하에 걸리고 프롬프트가 관리하기 어려울 만큼 복잡해져, 성능 저하와 오류 가능성 증가로 이어진다.
구현 지침
이 패턴은 완결된 자족적 실행 루프를 제공해, 함수 호출로 도구를 써서 특정 목표를 이루게 한다. 그러나 이 단순한 에이전트는 무상태다. 과거 상호작용의 기억이 없어 새 과업마다 처음인 것처럼 다룬다. 더 지능적이고 개인화된 경험을 만들려면 에이전트가 앞서 무슨 일이 있었는지 기억할 수 있어야 한다.