에이전트(Agent)는 도구(Tools)를 갖춘 LLM이 목표 달성을 위해 루프(Loop)를 실행하는 형태로 정의됨
LLM이 외부 컨텍스트(Context)를 활용하기 위해 함수 호출(Function Calling)을 통한 도구 사용 방식 설명
하네스(Harness)는 LLM 이후의 모든 것을 관리하며, 에이전트의 지속 실행 또는 완료 여부를 결정하는 핵심 요소임
인터페이스(Interface)와 하네스(Harness)의 분리 가능성을 강조하며, UI가 없는 에이전트도 존재함을 시사
에이전트(Agent)는 대규모 언어 모델(LLM)을 핵심 두뇌로 삼고, 외부 도구(Tools)를 활용하여 주어진 목표를 달성하는 반복적인 루프(Loop)를 실행하는 시스템으로 정의됨.
LLM: 자연어 이해 및 생성, 추론을 담당하며 에이전트의 지능적 판단 근거 제공
도구(Tools): 함수 호출(Function Calling) 메커니즘을 통해 LLM이 학습 데이터에 없는 외부 정보나 기능을 활용할 수 있도록 지원하며, 이는 컨텍스트 확장(Context Expansion)의 핵심임
루프(Loop): 에이전트 프로그램의 핵심으로, LLM의 출력을 분석하여 목표 달성 여부를 판단하고 다음 단계를 결정하는 자동화된 실행 흐름을 의미함.
에이전틱 하네스(Agentic Harness)는 LLM의 출력을 받아 에이전트의 실행 흐름을 제어하고 목표 달성 여부를 판단하는 보이지 않는 기반 시스템을 지칭함.
하네스(Harness): LLM 이후의 모든 로직, 즉 도구 호출, 루프 제어, 상태 관리 등을 담당하며 에이전트의 핵심 동작(Core Operation)을 정의함
인터페이스(Interface): 사용자가 에이전트와 상호작용하는 부분(UI, API 등)으로, 하네스와 독립적으로 교체 가능함
이러한 분리는 유연성(Flexibility)을 높여, 동일한 하네스 로직을 유지하면서 다양한 사용자 경험을 제공하거나, 심지어 UI 없이 백그라운드에서 작동하는 에이전트 개발을 가능하게 함.
에이전트의 루프(Loop)는 LLM이 생성한 결과가 목표 달성에 충분한지 여부를 프로그래밍적으로 검증하는 핵심 메커니즘임.
자가 평가(Self-Evaluation): 에이전트 프로그램은 LLM의 출력 텍스트나 구조화된 데이터를 분석하여, 정의된 완료 조건(Completion Criteria)을 만족하는지 판단함
반복 실행 제어: 목표가 달성되지 않았다면, 루프는 다음 단계로 진행하기 위한 추가적인 LLM 호출이나 도구 사용을 트리거함
이 과정은 에이전트가 단순히 지시를 따르는 것을 넘어, 능동적으로 목표를 추구하고 진행 상황을 관리하도록 만드는 데 필수적임.
LLM이 학습 데이터에 없는 최신 정보나 특정 도메인 지식을 활용하기 위해 함수 호출(Function Calling) 기능이 중요하게 작용함.
동적 컨텍스트 주입: LLM은 사용 가능한 도구 목록을 보고, 필요에 따라 특정 함수의 호출을 요청함. 이 함수는 외부 API 호출, 데이터베이스 조회 등을 통해 실시간 데이터(Real-time Data)를 가져옴
결과 통합: LLM은 함수 호출 결과를 입력받아 이를 바탕으로 다음 추론이나 응답 생성을 진행함. 이는 LLM의 지식 범위를 동적으로 확장시키는 효과를 가져옴
결과적으로, 함수 호출은 LLM 기반 에이전트가 단순 텍스트 생성을 넘어 실제 세계와 상호작용하고 복잡한 작업을 수행할 수 있게 하는 핵심 기술임.