논문: Context Assembly as the Controlled Variable: A Control-Theoretic View of Harness Policies for Frozen LLM Agents 코드/데이터: github.com/dpaul0501/context-optimization-rl 동반 논문(응용편): A Control System, a Dataset, and a Recipe for Making Frozen LLM Agents Learn a Domain


핵심 주장 한 줄

에이전트 하네스에서 “무엇을 통제할 것인가”에 대한 답이 도구 선택이나 코드 재작성이 아니라 “컨텍스트 어셈블리”여야 한다는 주장이다. 프롬프트 템플릿, few-shot 예시, 검색 깊이, 검증 패스 수, 단계 예산 — 이것들을 하나의 유한한 행동 공간(action space)으로 정의하고, 동결된 모델 바깥에서 contextual bandit이나 REINFORCE가 온라인으로 학습하는 구조를 제안한다.

왜 지금 이 질문인가

2026년 중반, LLM 에이전트를 제어 이론의 렌즈로 보는 연구가 폭발적으로 늘었다. 이 논문은 자신들의 기여가 “제어 이론을 LLM 에이전트에 처음 도입했다”고 주장하지 않는다. 대신, 기존 연구들이 무엇을 통제 대상으로 삼았는지를 비교 표로 정리하고, 자신들의 차이점을 명확히 한다.

연구통제 대상학습 메커니즘감사 가능성코드 접근 필요
Stable Agentic Control (Anonymous, 2026)도구 선택 (유한 카탈로그)결정론적 정책 + Lyapunov형식적 (ISS, Lean 검증)불필요
Sparse Agentic Control (Majumdar, 2026)행동 선택 (거대 공간)ℓ₁,₂ 정규화 정책샘플 복잡도 바운드불필요
Regulatory Control (Nogueira & Skogestad, 2026)운영자 에이전트 라우팅ARC 스타일 루프 분해구조적 (설계에 의한)불필요
Meta-Harness (Lee et al., 2026)하네스 코드에이전트 코드 서치 제안자경험적만필요
HyperAgents (Meta AI, 2026)에이전트 + 하네스 코드자기 참조 메타 에이전트경험적만필요
본 논문컨텍스트 어셈블리Bandit / REINFORCE경험적 안정성 + 교정불필요

차이점이 명확하다. 기존 제어 이론 연구는 도구 선택이나 에이전트 간 메시지 라우팅을 통제한다. Meta-Harness와 HyperAgents는 하네스 코드 자체를 재작성하지만, 이는 비싼 에이전트 루프를 필요로 하고 감사가 어렵다. 이 논문의 접근은 중간 지점이다: 하네스 코드를 건드리지 않으면서도, 도구 선택보다 훨씬 표현력이 높은 “컨텍스트 구성”을 학습 대상으로 삼는다.

729가지 컨텍스트 구성 공간

이 논문이 정의하는 컨텍스트 구성 공간 𝒞는 여섯 가지 레버의 조합이다.

  • 프롬프트 스타일 — 시스템 프롬프트 템플릿 변형
  • 도구/검색 정책 — 어떤 도구를 활성화할지, 검색 깊이는 얼마나 할지
  • 메모리 정책 — 이전 에피소드에서 무엇을 검색할지
  • 계획(Planning) 정책 — 계획 단계를 몇 번 수행할지
  • 검증(Verification) 정책 — 답 검증 패스를 몇 번 돌릴지
  • 단계 예산(Step budget) — 최대 몇 단계까지 허용할지

여섯 레버의 카테시안 곱은 |𝒞| = 729개의 구성을 만든다. 하네스 엔지니어가 오늘날 수동으로 튜닝하는 것과 동일한 차원이지만, 이 논문은 이것을 명시적인 행동 공간으로 정의하고 외부 정책(contextual bandit 또는 REINFORCE)이 온라인으로 학습하게 한다.

내부 정책 vs 외부 정책

  • 내부 정책 π_θ: 동결된 LLM. θ는 절대 업데이트되지 않는다.
  • 외부 정책 π_φ: 컨텍스트 구성 C_t를 선택하는 정책. task 특징 f(x_t)에 대해 선형 가치 함수 또는 softmax 정책으로 파라미터화된다.

외부 정책이 최적화하는 보상 함수는 단순한 정답 여부가 아니다:

R = R_task + λ_v·R_verify + λ_p·R_policy − λ_c·C_tokens − λ_l·C_latency − λ_h·P_unsupported

정답 점수, 검증 통과 여부, 정책 준수 여부에서 토큰 비용, 지연 시간, 근거 없는 주장 페널티를 뺀다. 다목적 보상이다.

Figure 1: Bandit과 REINFORCE 컨트롤러의 윈도우 평균 보상. 60 에피소드에서는 안정성이 관찰되지 않는다.

안정성: 60 에피소드로는 안 된다

제어 이론에서 “안정성(stability)“은 시스템이 발산하지 않고 궤도를 유지하는 성질이다. 이 논문은 Zhang et al. (2026)의 정의를 따른다: 윈도우 평균 보상이 단조 감소하지 않으면 안정적이다.

형식적으로는 맞는 명제다. ε-greedy bandit은 충분한 샘플이 쌓이면 기대 보상이 단조 증가한다. REINFORCE도 학습률이 충분히 작으면 마찬가지다.

하지만 실험 결과는 달랐다. 2개 시드, 60 에피소드, 총 240 에피소드를 돌렸더니:

  • Bandit 시드 1: 기울기 −0.0045/에피소드 (감소)
  • Bandit 시드 2: 기울기 +0.0005/에피소드 (사실상 평탄)
  • REINFORCE 시드 1: 기울기 −0.0024/에피소드 (감소)
  • REINFORCE 시드 2: 기울기 −0.0008/에피소드 (감소)

4개 중 3개가 하락 추세다. 저자들은 이를 숨기지 않고 그대로 보고한다.

이유는 단순하다. 729개의 행동 공간에서 60 에피소드라면, 각 행동당 평균 0.08번밖에 시도하지 못한다. Majumdar (2026)가 지적한 Ω(M) 샘플 복잡도 regime에 갇힌 것이다. 동반 논문(응용편)에서도 300 에피소드에서 정적 DSPy 기준선을 넘지 못했다.

핵심 통찰: 729-구성 행동 공간은 단일 머신에서 하루 만에 샘플링할 수 있는 에피소드 예산에 비해 너무 크다. 형식적 안정성 명제는 옳지만, 실용적 에피소드 예산에서는 전제가 성립하지 않는다.

교정(Calibration): 신뢰도가 2자리수 잘못 맞는다

더 흥미로운 발견은 불확실성 교정 분석이다. 컨트롤러가 자신이 선택한 행동에 대해 얼마나 자신감을 갖는지, 그 자신감이 실제 정답 여부와 얼마나 잘 맞는지를 측정했다.

선택 시점의 신뢰도를 softmax 점수로 정의하고, 10개 분위로 나누어 Expected Calibration Error(ECE)를 계산했다.

신뢰도를 10개 분위로 나누어 Expected Calibration Error(ECE)를 계산했다. 결과는 ECE = 0.607 — 매우 큰 값이다.

ECE = 0.607. 이는 매우 큰 값이다.

  • 평균 신뢰도: 0.0014 (bandit), 0.0014 (REINFORCE)
  • 실제 성공률: 0.64 (bandit), 0.58 (REINFORCE)

신뢰도와 정확도가 약 2자리수 차이가 난다. 원인은 구조적이다. 729개의 거의 동일한 점수를 가진 행동에 softmax를 취하면, 점수 분포가 집중되기 전까지는 1/729 ≈ 0.0014 근처에서 벗어나지 못한다. 반면 실제 성공률은 태스크와 모델에 의해 결정되는 이진 결과의 베이스 레이트다.

실용적 의미: 729-구성 행동 공간에서의 raw softmax 확률은 인간 에스컬레이션 신호로 사용할 수 없다. 모든 에피소드가 “저신뢰도”로 보이기 때문이다. 온도 스케일링(temperature scaling)이나 상위 두 행동 간의 가치 차이(value margin)로 재정의해야 한다.

동결된 모델, 학습하는 하네스

이 논문의 철학적 입장은 명확하다:

  1. 모델은 동결한다. API 뒤의 블랙박스 모델을 그대로 쓴다.
  2. 하네스 코드는 재작성하지 않는다. Meta-Harness나 HyperAgents처럼 에이전트가 자기 코드를 고치는 것이 아니라, 고정된 인간 가독성 레버를 조작한다.
  3. 외부 정책만 학습한다. Bandit이나 REINFORCE가 컨텍스트 구성을 선택하고, 보상을 받고, 가중치를 업데이트한다.

이 접근의 장점은 **감사 가능성(auditability)**이다. 하네스 엔지니어가 무엇을 바꿨는지 diff 하나로 읽을 수 있다. 회귀가 발생하면 임의의 이전 프로그램과의 diff가 아니라, 명명된 레버 중 하나의 값 변경이다.

코드를 실행할 수 있는 인프라가 없는 순수 chat-completions API 환경에서도 동작한다. 방화벽 뒤의 프로덕션 환경에서 바로 적용 가능하다.

동반 논문(응용편)과의 관계

이 논문은 2편짜리 릴리스의 **이론편(Paper 1)**이다. 동반 논문(arXiv:2607.25415)은 같은 컨트롤러를 세 가지 도메인(도구 사용, 코딩, 검색 QA)과 두 모델 제공자에서 실험한 **응용편(Paper 2)**이다. 응용편에서는 729가지 구성을 돌려본 결과, 정적 DSPy 기준선이 학습하는 컨트롤러를 이겼다. 두 논문이 독립적으로 같은 병목(샘플 부족)을 지목하는 것은 이 연구의 정직성을 보여준다.

GitHub 저장소에는 전체 코드, 데이터셋, 궤적 로그, 배포 레시피(RECIPE.md)가 공개되어 있다.

필자 해설: 정직한 부정 결과가 가치 있는 이유

이 논문의 가장 큰 기여는 형식적 분석이나 새로운 알고리즘이 아니다. 오히려 불편한 진실을 있는 그대로 보고하는 태도다.

729개의 컨텍스트 구성을 정의하고, contextual bandit으로 학습시키면 — 60 에피소드에서는 안정성도, 교정도 전부 실패한다. 동반 논문의 300 에피소드에서도 정적 기준선을 넘지 못한다. 저자들은 이것이 형식적 명제의 논리적 오류가 아니라 샘플 예산의 구조적 한계임을 정확히 진단한다.

이것이 실무자에게 유용한 이유는:

  • 컨텍스트 구성 공간을 줄여야 한다. 729개는 너무 많다. 3-4개 레버, 10-20개 구성으로 시작해야 샘플 효율이 확보된다.
  • 신뢰도 신호를 raw softmax로 쓰면 안 된다. Value margin이나 별도 교정 모델이 필요하다.
  • 동결된 모델 + 학습하는 하네스는 실현 가능한 아키텍처이지만, 행동 공간 설계가 성패를 가른다.

Meta-Harness와 HyperAgents가 “에이전트가 하네스를 스스로 진화시킨다”는 그랜드 비전을 제시한다면, 이 논문은 **“어디까지 자동화할 수 있고, 어디서부터 샘플이 부족한가”**를 냉정하게 측정한 연구다. 화려하지 않지만, 배포하려는 사람이 반드시 읽어야 하는 종류의 논문이다.

더 실습해보고 싶은 분들께

에이전트 하네스 설계, 컨텍스트 엔지니어링, 그리고 “동결된 모델을 어떻게 감싸서 제어할 것인가”에 대해 더 깊이 실습해보고 싶다면 다음 두 자료를 추천한다:

이 논문이 제안하는 것처럼 “외부 정책이 학습하는 하네스”를 직접 구현해보고 싶다면, 위 두 자료에서 다루는 기초부터 시작하면 좋다.