CaveAgent LLM을 상태형 런타임 오퍼레이터로 변환하기

읽는 시간: 6 분
...

📝 원문 정보

- Title: CaveAgent Transforming LLMs into Stateful Runtime Operators
- ArXiv ID: 2601.01569
- 발행일: 2026-01-04
- 저자: Maohao Ran, Zhenglin Wan, Cooper Lin, Yanting Zhang, Hongyu Xin, Hongwei Fan, Yibo Xu, Beier Luo, Yaxin Zhou, Wangbo Zhao, Lijie Yang, Lang Feng, Fuchao Yang, Jingxuan Wu, Yiqiao Huang, Chendong Ma, Dailing Jiang, Jianbo Deng, Sihui Han, Bo An, Yike Guo, Jun Song

📝 초록

이 논문에서는 대형 언어 모델(LLM)을 기반으로 하는 새로운 시스템인 CaveAgent를 제시합니다. 이 시스템은 LLM의 강력한 코드 생성 능력을 활용하여, 프로세스 중심의 함수 호출 패러다임에서 객체 지향 상태 관리로 이동하는 것을 목표로 합니다. 이를 통해 기존 문제점들을 해결하고, 복잡한 논리적 의존성을 효율적으로 처리하며, 다중 에이전트 간의 정확한 협업을 가능하게 합니다.

💡 논문 해설

1. **상태 관리 런타임 시스템 도입**: 이는 LLM이 복잡한 작업을 수행할 때 필요한 중간 결과를 저장하고 재사용할 수 있는 방법입니다. 이를 통해, 에이전트는 긴 기억을 유지하면서도 텍스트 직렬화의 제약에서 벗어나 효율적으로 작동합니다. 2. **객체 지향 함수 호출**: Python의 "모든 것이 객체" 철학을 활용해 코드를 직접 실행하고 중간 결과를 객체로 저장하여 에이전트가 복잡한 작업을 빠르게 해결할 수 있습니다. 3. **다중 에이전트 조정**: 각 에이전트 간에 상태를 공유하며 동기화하여, 전체 시스템의 일관성을 유지하면서도 효율적으로 작업을 수행합니다.

📄 논문 발췌 (ArXiv Source)

도시 시뮬레이션: 상태 기반 런타임 매개 다중 에이전트 협업의 단순 예제

서론

대형 언어 모델(LLMs)은 다양한 자연어 처리 작업에서 뛰어난 성능을 보이는 통합 지식 획득과 인간 비슷한 추론 능력을 보여주었습니다. 이러한 기본 기능 위에 도구 통합 추론(TIR)이 추가되어 외부 도구나 애플리케이션 프로그래밍 인터페이스(APIs)와 상호작용하는 LLM 에이전트를 크게 향상시켰습니다. 이는 그들의 정보 접근 및 해결 공간을 확대시키고, 과학적 발견, 수학 문제 해결, 웹 GUI 탐색 및 로봇 공학과 같은 다양한 도메인에 적용 가능성을 제공합니다.

그러나 이러한 유망한 전망에도 불구하고, 기존의 도구 사용 프로토콜은 LLMs가 미리 정의된 JSON 스키마를 준수하고 정확한 도구 이름 및 인자들을 포함하는 구조화된 JSON 객체를 생성하도록 요구합니다. 예를 들어 주식 데이터를 검색하려면 모델은 엄격하게 다음과 같은 JSON 문자열을 합성해야 합니다: {"tool": "get_stock", "params": {"ticker": "AAPL", "date": "today"}}. 이는 문법과 필드 제약 사항에 대한 정확한 준수를 필요로 합니다. 그러나 이러한 접근 방법은 1) 유연성: 에이전트가 단일 도구 호출(또는 병렬 배치)을 실행하고 출력을 직렬화한 다음 결과를 다음 생성으로 다시 맥락에 전달하는 엄격하고 반복적인 루프로 제약받습니다. 이는 복잡한 작업을 처리할 때, 연속 도구 상호작용의 정교한 오케스트레이션을 요구하며, 컨텍스트 적응과 중복으로 인해 성능이 저하됩니다. 2) 환영현상: 신뢰할 수 있는 도구 호출 능력을 달성하기 위해서는 LLM이 도구 관련 토큰을 무학습 정밀도로 출력해야 합니다. 그러나 실제에서는 맥락 학습에 의존하여 도구 생성을 안내하면, 존재하지 않는 매개변수를 발명하거나 유형 제약 조건을 위반하는 심각한 환영현상이 발생합니다. 초기 턴에서의 오류는 대화를 통해 전파되어 다중 턴 작업에서 누적적인 실패를 초래할 수 있습니다. 또한 JSON 스키마에 맞추기 위해 후속 훈련된 LLM은 많은 시간과 계산 리소스가 필요하며, 때로는 후 훈련으로 인해 LLM의 지능 수준이 감소할 수도 있습니다.

최근 연구들은 코드 기반 도구 사용을 통해 이러한 문제를 해결하려고 시도했습니다. 그러나 대부분 프로세스 중심 패러다임을 채택하여 런타임 상태가 내부화되고 텍스트에 국한됩니다. 상호작용은 “텍스트화 병목"을 강제합니다: 변수는 텍스트 출력만을 통해 외부 시스템에 접근 가능하며, 사용자와의 통신을 위해 텍스트 문자열로 직렬화해야 합니다(e.g., DataFrame 출력). 이 제약으로 인해 구조화된, 조작 가능한 객체의 직접 입력 및 출력이 금지되어 복잡한 비텍스트 데이터(예: 대규모 데이터 세트, 동영상)를 처리하거나 다운스트림 작업과 상호 작용하는 것이 비효율적이거나 불가능합니다. 이러한 제약을 해결하기 위해:

우리는 Python의 "모든 것이 객체" 철학을 활용하여 전체 *객체 지향* 기능 호출 및 상호작용을 구현하고, 맥락 엔지니어링을 **영속** 런타임에 위임하며 직렬화 손실 없이 고성능 객체의 직접 주입과 검색을 가능하게 하여 LLM의 강력한 코드 생성 능력을 최대한 활용하는 시스템을 구축하고자 합니다.

우리는 CaveAgent라는 오픈 소스 플랫폼을 제시합니다. 이는 LLM 에이전트에서 상태 기반 런타임 관리의 개념을 선도합니다. 이는 코드 기반 함수 호출 패러다임을 “프로세스 중심 함수 호출"에서 영속적인 “객체 지향 상태 조작"으로 전환하는 것을 나타냅니다. CaveAgent는 두 가지 스트림 아키텍처를 사용하여 LLM 에이전트와 환경 간의 상호 작용을 강화합니다: 추론에 사용되는 시맨틱 스트림과 상태 관리 및 코드 실행에 사용되는 런타임 스트림. 이 프레임워크에서 시맨틱 스트림은 가벼운 형태로 유지되며, 함수의 API와 변수의 추상적인 설명만을 수신합니다. LLM의 내재된 코딩 능력을 활용하여 런타임 스트림—우리의 상태 관리 주요 장소—를 조작하는 코드를 생성합니다. 복잡한 데이터 구조(예: 그래프, DataFrame 등)를 직접 런타임에 영속적인 객체로 주입함으로써 맥락 엔지니어링의 다른 형태를 달성합니다: 에이전트는 고성능 데이터를 간결한 변수 참조를 통해 조작하고, 저장소를 제한된 맥락 창에서 영속 런타임에 분리하여 재사용 가능하게 합니다. 구체적으로, 중간 결과(예: DataFrame, 계획 트리 또는 주요 메타데이터)는 새로 주입된 상태 변수에 저장되어 후속 사용이나 다운스트림 애플리케이션을 위해 에이전트가 적절한 변수를 능동적으로 검색합니다. 이를 통해 치명적인 잊음을 피하고 효율적인 맥락 압축 및 오류 없는 장기 기억을 가능하게 합니다. 런타임은 “외부 메모리 사전” 역할을 하며, 또한 복잡한 논리적 의존성을 해결하는 몇 단계의 솔루션을 가능하게 합니다. 다양한 논리적으로 상호 연관된 도구와 직접 코드로 상호작용하여 에이전트는 복잡한 워크플로를 구성할 수 있습니다(예: 데이터 필터링 후 분석). 이 접근 방법은 다중 라운드 함수 호출에 의해 발생하는 잠재적인 오류 및 불안정성을 피합니다. 또한, 런타임의 투명성은 에이전트 행동을 완전히 검증 가능하게 하며, 중간 프로그래밍 상태와 최종 출력 객체에 대한 체크를 지원하여 다양한 데이터 유형의 검증 가능한 미세한 보상 신호 생성을 가능하게 합니다. 이 기능은 강화 학습에 엄격한 틀을 제공합니다.

마지막으로, CaveAgent는 직렬화 손실 없는 아티팩트 전달을 지원하여 원래의 Python 객체를 반환함으로써 직접 다운스트림 작업(예: UI 렌더링, 시각화 및 구조 검증)에 사용할 수 있습니다. 런타임은 쉽게 직렬화되고 재로드될 수 있어 세션 간 에이전트의 전체 상태 보존과 진정한 장기 기억 및 작업 연속성을 가능하게 합니다. 이는 LLM을 고립된 텍스트 생성자에서 상호 운용 가능한 계산 엔티티로 변환하여 복잡한 소프트웨어 생태계와 자동화된 의사결정 프레임워크에 원활하게 통합합니다.

또한, 이 논문은 CaveAgent의 함수 호출 패러다임이 단일 에이전트 기능을 넘어서 런타임 매개 다중 에이전트 조정를 선도할 수 있는 잠재력을 보여줍니다. Figure 1과 Figure 2의 하단 오른쪽 서브그림을 참조하십시오. 기존 프레임워크에서는 에이전트가 손실이 많고 높은 지연 시간의 텍스트 메시지 전송을 통해 조정되는 반면, CaveAgent는 직접 상태 조작을 통해 에이전트 간 상호 작용을 가능하게 합니다. 이 패러다임에서는 관리자 에이전트가 프로그래밍적으로 하위 에이전트의 런타임에 변수를 주입하여 환경 또는 작업 맥락을 동적으로 변경할 수 있습니다. 따라서 애매한 자연어 지시문 없이도 행동을 효과적으로 제어합니다. 또한, 여러 에이전트는 통합된 공유 런타임에서 작동하며, 즉시 동기화를 달성합니다: 하나의 에이전트가 공유 객체(예: 도시 시뮬레이션에서 전역 ‘날씨’ 엔티티 업데이트)를 수정하면 참조를 통해 모든 피어가 즉시 변경을 인식합니다. 이는 복잡한 직렬화 대화의 웹을 정확하고 검증 가능한 상태 흐름으로 변환하여 대규모 조정이 일관되고 근본적으로 유지되도록 합니다(런타임 매개 다중 에이전트 조정의 세부 사항은 부록 12에서 확인 가능합니다). 우리의 기여를 다음과 같이 요약합니다:

CaveAgent의 주요 장점
  • CaveAgent라는 새로운 함수 호출 패러다임을 도입하여 상태 기반 런타임 관리의 개념을 선도합니다. 이 아키텍처는 프로세스 중심 함수 호출에서 지속적이고 객체 지향 상태 관리를 위한 전환을 나타냅니다. CaveAgent는 맥락 엔지니어링을 영속 런타임에 위임하여 텍스트 직렬화의 토큰 오버헤드와 정밀도 손실을 제거하고 복잡한 논리적으로 상호 종속적인 작업을 해결하는 지름길로 이어집니다.
  • 프레임워크의 프로그래밍 가능한 검사 가능성은 중간 상태에 대한 결정적 피드백을 제공하며, 주관적인 인간 주석 없이도 이 패러다임에서 **검증 가능한 보상 강화 학습(RLVR)**에 대한 엄격한 기초를 확립합니다.
  • 우리는 표준 벤치마크(Tau$`^2`$Bench 등)에서 CaveAgent의 도구 사용 능력을 평가하고 다양한 도메인을 통해 종합적인 사례 연구를 제공하여 CaveAgent의 독특한 장점을 보여줍니다. 또한, 상태 기반 런타임 매개 다중 에이전트 조정 패러다임을 확장할 잠재력을 식별하고 양적 결과를 제공하여 이 방향으로의 미래 연구 기회를 열어놓습니다.

배경

에이전트 도구 사용의 발전

본 섹션에서는 LLMs에서 함수 호출(도구 사용)을 공식화합니다. 우리는 파라미터 $`\theta`$를 가진 LLM 에이전트 $`\mathcal{M}_\theta`$가 사용자 질의 $`q`$를 해결하도록 고려합니다. 이 에이전트는 도구 라이브러리 $`\mathcal{T} = \{t_1, t_2, \dots, t_N\}`$로 장비되어 있습니다. 각 도구 $`t_i`$는 튜플 $(n_i, d_i, \rho_i)$로 정의되며, 각각 도구 이름, 설명 및 매개변수 공간을 나타냅니다. 문제는 다단계 의사결정 과정으로 모델됩니다. 시간 단계 $`k`$에서 주어진 맥락 역사 $`H_k`$, 에이전트가 응답을 생성합니다. 역사 $`H_k`$는 다음과 같은 상호작용 시퀀스로 정의됩니다:

MATH
\begin{equation}
    H_k = \{q, (r_1, a_1, o_1), \dots, (r_{k-1}, a_{k-1}, o_{k-1})\}
\end{equation}
클릭하여 더 보기

여기서 $`r_k`$는 내부 추론(생각)을 나타내고, $`a_k`$는 도구 행동을 나타내며, $`o_k`$는 실행 관찰을 나타냅니다.

ReAct 패러다임

전통적인 ReAct 패러다임에서는 추론 $`r_k`$와 행동 $`a_k`$가 모델의 어휘 $`\mathcal{V}`$에서 연속적인 자연어 시퀀스로 생성됩니다. 생성 확률은 다음과 같이 형식화됩니다: $`P(r_k, a_k | H_k) = \prod_{j=1}^{L} P_\theta(w_j | H_k, w_{a_k$는 원시 텍스트 문자열(예: `"Action: Search[query]"`)으로, 이를 실행 가능한 함수 및 매개변수를 추출하기 위해 휴리스틱 파서 $\mathcal{P}가 필요합니다. $\hat{a}_k$를 원시 텍스트 출력이라고 할 때, 효과적인 행동은 다음과 같이 얻어집니다: $a_k = \mathcal{P}(\hat{a}_k), \quad \text{s.t.} \quad \hat{a}k \in \mathcal{V}^*$. 이 형식화는 *환영현상*과 *형식 오류*에 약점을 가집니다. $P\theta$의 지원이 전체 어휘 $\mathcal{V}를 포함하므로, $`\sum_{w \notin \text{valid\_syntax}} P_\theta(w | \dots) > 0`$ 입니다.

JSON 스키마 함수 호출

비구조화 텍스트 생성의 모호성을 해결하기 위해 현대 에이전트는 JSON 스키마 함수 호출을 채택합니다. 여기서 도구 세트 $\mathcal{T}`는 구조화된 스키마 집합 $\mathcal{S} = \{S_1, \dots, S_N\}로 확장됩니다. 일반적으로 JSON Schema 형식으로 정의됩니다. 추론 과정은 여전히 자연어로 유지되지만 행동 생성은 제약된 디코딩 프로세스로 변환됩니다. 모델은 명시적으로 $`\mathcal{S}`에 조건화되어 있으며, 행동 $a_k$는 더 이상 자유 텍스트가 아니라 구조화된 객체 $\boldsymbol{j}_k$(JSON 객체)입니다. JSON 객체를 올바르게 생성하도록 도와주기 위해 In-Context Learning을 활용하여 스키마 구조를 내부화할 수 있습니다. 중요한 점은 특수 토큰(예: `)이 추론 단계와 행동 단계 사이를 명시적으로 구분합니다. 에이전트 RL의 최근 발전에서는 복합 보상 신호를 사용하여 강화 학습을 통해 모델이 올바른 JSON 형식과 함수 호출 매개변수를 출력하도록 촉구하지만, 이 논문은 주로 추론 시간 기술에 초점을 맞추고 있습니다.

본질적으로, JSON 스키마 함수 호출은 텍스트 기반 직렬화 루프로 작동합니다. 이 프로세스는 세 단계로 구성됩니다: (1) 맥락 직렬화: 구조화된 스키마 $\mathcal{S}`가 텍스트 설명으로 평평해져 맥락 엔지니어링을 통해 시스템 프롬프트에 주입됩니다; (2) 문자열 생성: LLM은 텍스트 지시문 기반의 문자열 JSON 유페이로드를 예측하는 뉴럴 제너레이터 역할을 합니다; (3) 실행: 외부 미들웨어는 이 문자열을 분석하고 실제 코드를 실행한 후 실행 결과를 텍스트로 직렬화하여 맥락 창을 업데이트합니다. 이 패러다임은 LLM의 전통적인 맥락 엔지니어링 프레임워크에서 근본적으로 벗어나지 않으며, 맥락 폭발, 환영현상 및 오류 전파와 같은 내재적 제약 사항을 겪습니다.

코드 기반 함수 호출

이러한 제약 사항을 해결하기 위해 최근 연구는 codeact와 같은 실행 가능한 코드를 기능 호출의 매체로 활용합니다. 그러나 현재 코드 에이전트는 아키텍처상의 한계가 있습니다. CodeAct은 기본적으로 외부 객체 주입 및 검색에 대한 명시적인 API를 노출하지 않습니다. 상호작용은 LLM을 통해 “텍스트화” 병목으로 엄격하게 중재되며, 중간 상태는 표준 출력(e.g., print)로 직렬화되어 사용자에게 인식될 수 있습니다. 예를 들어 에이전트가 분석에 외부 데이터가 필요할 때 Codeact은 일반적으로 Python을 통해 데이터 세트를 다운로드합니다(예: pd.read_csv(url)). 이 접근 방식은 본질적으로 유연성이 부족하며, 인터페이스 경계는 텍스트 직렬화에 의존하여 이미 존재하는 Python 객체(예: 메모리 내 DataFrame, 학습된 모델 또는 사용자 정의 클래스 인스턴스)를 직접 주입하기 어렵습니다. 또한 이 접근 방식은 비텍스트나 고차원성 아티팩트(예: 원시 동영상 스트림, 대규모 데이터베이스) 처리가 어려울 뿐만 아니라 맥락 폭발, LLM의 분산 및 환영현상 위험을 노출합니다.

다음 섹션에서는 CaveAgent가 Python의 “모든 것이 객체” 철학에 기반하여 객체 지향 패러다임을 선도하는 방법을 보여줍니다. 이를 위해 두 개의 병렬 맥락 스트림을 유지하고 맥락 관리를 영속 Python 런타임 스트림에 위탁합니다.


📊 논문 시각자료 (Figures)

Figure 1



Figure 2



Figure 3



Figure 4



Figure 5



Figure 6



Figure 7



Figure 8



Figure 9



Figure 10



Figure 11



Figure 12



Figure 13



Figure 14



Figure 15



Figure 16



Figure 17



Figure 18



Figure 19



Figure 20



Figure 21



Figure 22



감사의 말씀

이 글의 저작권은 연구하신 과학자분들께 있으며, 인류 문명 발전에 공헌해주신 노고에 감사를 드립니다.

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키