
2026년에 LLM 채팅이 안티 패턴(Anti-pattern)처럼 느껴지는 이유
요약
LLM과의 단순 채팅 방식이 가진 한계를 언어 행위 이론과 멀티 에이전트 시스템(MAS)의 관점에서 분석합니다. 기존의 요청-응답 방식 대신 에이전트 간의 협상과 상태 공유가 가능한 아키텍처의 필요성을 역설합니다.
핵심 포인트
- 단순 채팅 UI는 세계 모델로서의 기능에 한계가 있음
- 언어 행위 이론을 통한 에이전트 간 상호작용의 재해석
- 멀티 에이전트 시스템에서 느슨한 결합과 협상의 중요성
- 전통적 논리 기반 스키마에서 자연어/JSON 기반으로의 변화
이 글은 제가 이전에 작성한, 그리고 이번 포스트의 기반이 되는 블랙보드 아키텍처(Blackboard architecture)를 소개했던 What is better than your AI loop?의 후속 글입니다.
채팅 (Chat). LLM과 타이핑을 통해 만들어내는 메시지-응답 체인입니다. 이는 단순히 계속 늘어나는 컨텍스트(Context)나 슬라이딩 윈도우(Sliding window)를 통해 아주 쉽게 구현될 수 있습니다.
왜 이것이 저에게 안티 패턴 (Anti-pattern)처럼 느껴질까요? UI로서의 채팅은 괜찮지만, 세계 모델 (World model)로서의 채팅은 그렇지 않습니다.
J.L. Austin이 개척한 언어 행위 이론 (Speech Act Theory)은 언어가 행동의 한 형태라고 말합니다. 1955년 강연에서, 그리고 1962년 사후에 How to Do Things with Words [1]로 출간된 내용에서, Austin은 문장이 단순히 현실을 묘사한다는 생각을 해체하고, 세계의 상태를 변화시키는 표현인 "수행문 (Performatives)"을 도입했습니다. (우연히도, 1962년은 AI 문헌에 최초의 "blackboard"가 등장한 해이기도 합니다 [2].)
이후 John Searle은 이 분야를 체계화하여 언어 행위를 다섯 가지 유형(진술적 언어 행위, 지시적 언어 행위, 약속적 언어 행위, 표현적 언어 행위, 선언적 언어 행위)으로 분류했으며 [3], 이 분류 체계는 철학에서 컴퓨터 과학과 AI로 전이되었습니다.
1990년대에 멀티 에이전트 시스템 (Multi-Agent Systems, MAS)이 등장하면서, 전통적인 RPC 스타일의 통신은 병목 현상이 되었습니다. 요청-응답 (Request-response) 방식은 임피던스 불일치 (Impedance mismatch)를 일으켰습니다. 독립적인 소프트웨어 프로그램들은 협상하고, 계획하며, 지식을 공유해야 했습니다. 자율적인 에이전트들은 단순히 자율성을 유지하기 위해서라도 느슨한 결합 (Loose coupling)이 필요했습니다. 에이전트는 스스로 명령을 거부하거나, 작업을 협상하거나, 상태를 보고할 수 있어야 합니다.
이를 기계가 이해할 수 있도록 표준화하기 위해, 1990년대 초반 DARPA 지식 공유 노력 (Knowledge Sharing Effort)의 일환으로 KQML이 등장했습니다 [4]. 이후 1997년 지능형 물리 에이전트 재단 (FIPA)에서 FIPA-ACL 사양을 발표했습니다 [5]. 이들은 에이전트 통신을 믿음-욕구-의도 (Belief-Desire-Intention, BDI) 양상 논리 (modal logic, 필연성과 가능성 진술/연산자에 의해 확장된 논리)에 기반을 두었습니다. 이는 문제적인 전제 조건들을 가져왔습니다. 예를 들어, _Inform_을 사용하려면 에이전트는 해당 명제를 믿어야 하며, 수신자가 이미 그 명제를 알고 있다고 믿어서는 안 됩니다. 이는 검증이 불가능하며 독심술과 다름없습니다. FIPA-ACL의 이러한 경직된 부호화는 궁극적으로 어려운 문제였으나, 현재는 LLM에 의해 (아마도 의도치 않게) 우아하게 근사화되거나 무료로 해결되고 있습니다.
이러한 형식적 스키마 (formal schema)는 오늘날의 LLM 에이전트들에 의해 널리 채택되지는 않았습니다. 현대의 멀티 에이전트 프레임워크 (예: AutoGen [6] 또는 LangGraph)는 엄격한 양상 논리를 대부분 포기했습니다. 대신 이들은 자연어 스키마와 JSON 래퍼 (wrapper) (예: 2023년에 도입된 OpenAI의 함수 호출 (function-calling) 스키마) 쪽으로 이동했습니다. 하지만 화행 이론 (Speech Act Theory)의 기초적인 원칙들은 여전히 존재하며 식별 가능합니다.
이미지와 함께하는 채팅
사용자가 대화 과정에서 이미지 하나 또는 여러 개의 이미지를 업로드하는 표준적인 채팅 인터페이스를 생각해 봅시다.
저는 이 테스트 이미지를 여러 변형으로 생성했는데, 대부분의 모델이 모든 것을 정확하게 파악하는 것이 놀라울 정도로 까다롭습니다.
표준적인 LLM 채팅 앱에서 시스템은 슬라이딩 컨텍스트 윈도우 (sliding context window)에 의존합니다. 두 번째 질문에 답하기 위해서, 모델은 첫 번째 패스(pass)에서 얻은 이미지의 고도로 압축된 창발적 내부 표현 (emergent internal representation)에 의존하거나, 늘어나는 채팅 기록과 함께 이미지 전체를 다시 인코딩 (re-encode)해야 합니다. 이는 대화를 "다음 토큰 예측 (next token prediction)" 문제로 취급하면서, 동시에 중요한 이미지 세부 사항이 내부 어텐션 가중치 (attention weights)에 포착되었기를 바라는 방식입니다.
제 블랙보드 UI에서의 동일한 대화입니다 - 저널링된 이미지 "Q&A"를 주목해 보세요.
블랙보드에서의 언어 행위 (Speech Acts on a Blackboard)
코딩 에이전트는 채팅(운영자 메시지), 자신의 응답, 그리고 도구 출력(tool outputs)을 이벤트 스트림 (event stream)으로 취급하며, 이로부터 BDI (Belief-Desire-Intention)를 파싱하여 (보통 명시적으로 표현되는) 내부 상태를 도출하는 데 사용합니다. 여기서 여전히 남아 있는 안티 패턴 (anti-pattern) 부분은 채팅 기록을 축적하는 제한된 컨텍스트 윈도우 (context window)입니다. 모든 입력 데이터가 내부 상태에 완전히 표현되는 이상적인 상황이라면 이는 중복된 문제가 되지 않겠지만, 불행히도 현실은 그렇지 않습니다.
따라서 오늘날의 코딩 에이전트/하네스 (harnesses)는 세계 표현 (world representation)에 있어 모델의 창발적 능력을 대체하는 것이 아니라 단지 증폭시키고 있을 뿐입니다. 이들은 도구, 거대한 컨텍스트 윈도우, 그리고 영리한 내부 로직을 사용하여 내재된 한계를 숨깁니다.
에이전트가 요청받은 일을 잊어버리는 것을 경험해 본 적이 있나요?
채팅 또는 에이전트 활용 사례를 이벤트 기반 CQRS 아키텍처 (event-driven, CQRS architecture)로 매핑하면, 우리는 더 이상 에이전트 수행문 (agent performatives)으로 위장한 RPC (Remote Procedure Call)를 다루지 않게 됩니다. 수행문은 세계 모델 (world model) 자체의 상태 변이 (state mutations)로서 작용합니다. Vision Reader KS는 이미지에 대해 대상 질문을 던지고, 그 답변은 보드 위의 영구적인 증거가 됩니다. 재인코딩도, 컨텍스트 절단 (context truncation)도, 어텐션 감쇠 (attention decay)도 없습니다.
위 다이어그램은 단 두 개의 지식 소스(Knowledge Source, KS), 즉 Vision Reader KS (우선순위 90)와 Chat Responder (우선순위 80)만을 사용한 블랙보드 투영(board projection)을 보여줍니다. 파란색 노드는 연산자(operator)의 메시지이며, 초록색 노드는 Chat Responder가 배치한 것입니다. 베이지색은 이미지 증거이며, 보라색은 이미지와 관련된 질문/답변 쌍입니다.
위 다이어그램은 추가적인 KS인 Intent Spotter (우선순위 95)를 더했습니다. 의도(Intent) 노드는 연한 빨간색으로 표시됩니다. 이제 "무엇을 해야 하는가?"라는 부분에 대해 추론하는 것은 더 이상 Chat Responder의 과업이 아닙니다. Chat Responder는 단순히 블랙보드에 생성된 증거를 가져와 사용자를 위한 응답을 구성할 뿐입니다.
이 명단(roster)은 고전적인 인지 역할 분할(Recognition → Planning → Execution → Reflection)과 Boyd의 OODA 루프(Observe, Orient, Decide, Act [7]) 모두에 자연스럽게 매핑됩니다:
| 역할 | OODA | 이 글에서의 KS | 화행 (Speech act) | 블랙보드 증거 |
|---|---|---|---|---|
| 인식 (Recognition) | 관찰 (Observe) | Vision Reader (우선순위 90) | 대표성 (Representatives) | 사실, 이미지 답변 |
| ... |
채팅 모델과 블랙보드 시스템 사이의 숨겨진 불일치는 상태 지속성(state persistence)을 살펴볼 때 명확해집니다. 복잡한 코딩 작업을 위해 LLM을 사용해 본 사람이라면 누구나 모델이 몇 프롬프트 전의 제약 조건이나 지침을 "잊어버리는" 경험을 해보았을 것입니다. 이는 모델의 의도 인식(intent recognition)이 어텐션 메커니즘(attention mechanism)에 결합되어 있기 때문에 발생합니다. 각 LLM의 어텐션은 컨텍스트가 커짐에 따라 희석됩니다 ("lost in the middle" 현상 [8]).
Blackboard CQRS 아키텍처에서 의도(intent)는 로그 내의 불변 이벤트(immutable event)입니다. 지식 소스(Knowledge Source, KS)가 보드에 지시(Directive) 또는 _약속(Commissive)_을 게시하면, 이는 해결되지 않은 노드(unresolved node)로서 그 자리에 남습니다. 이는 슬라이딩 윈도우(sliding window)에 의해 잊혀질 수 없습니다. 해당 의도를 충족하는 상응하는 결과를 어떤 KS가 게시할 때까지 이벤트 스토어(event store)에 머물러 있습니다.
만약 실행에 실패한다면, OODA 루프를 닫기 위한 "성찰(Reflection)" KS가 존재할 수 있습니다. 이 KS는 의도된 상태와 달성된 상태 사이의 불일치를 관찰하며, 단순히 다시 시도하기 위해 새로운 의도를 게시할 수 있습니다. 이로써 LLM은 자신이 가장 잘하는 역할, 즉 전체 "데이터베이스", "라우터(router)", 상태 머신(state machine) 역할을 한꺼번에 수행하도록 강요받는 대신, 개별 지식 소스(Knowledge Source)를 위한 인지 엔진(cognitive engine)으로서 작동하는 역할로 격하(relegated)됩니다.
결론
이 아키텍처는 보너스로 한 가지 이점을 더 제공합니다. 바로 어떤 LLM이라도 어텐션(attention) 능력을 더 향상시킨다는 점입니다. 작동하는 KS는 전체 트랜스크립트(transcript)를 보는 것이 아니라, 오직 집중된 투영(projection)만을 봅니다. CQRS 읽기 모델(read model)은 해당 KS의 좁은 전문 분야와 단일 작업에 맞춰 렌더링됩니다. 컨텍스트가 작게 유지되는 이유는 그것이 잘려나갔기(truncated) 때문이 아니라, 투영되었기 때문입니다. 작업에 속하지 않는 그 어떤 것도 어텐션을 위해 경쟁하지 않습니다. "중간에서 길을 잃는(lost in the middle)" 문제는 방지됩니다.
채팅은 항상 그래야 했던 대로 인터페이스(interface)로 남습니다. 그 이면에서 모든 메시지는 이벤트로서 기록되는 언어 행위(speech act)입니다. 모든 의도는 잊혀질 수 없는 해결되지 않은 노드가 됩니다.
여러분의 에이전트는 여전히 트랜스크립트(transcript)에 월드 모델(world model)을 유지하고 있나요? 아래에 댓글을 남겨주세요!
참고 문헌
참고 문헌
- J. L. Austin, How to Do Things with Words, Oxford: Clarendon Press, 1962.
- Allen Newell, "Some Problems of Basic Organization in Problem-Solving Programs", Yovits, Jacobi & Goldstein (eds.)의 _Conference on Self-Organizing Systems_에 실림, Spartan Books, 1962.
- John R. Searle, "A Taxonomy of Illocutionary Acts", K. Gunderson (ed.)의 _Language, Mind, and Knowledge_에 실림, University of Minnesota Press, 1975.
- Tim Finin, Richard Fritzson, Don McKay, Robin McEntire, "KQML as an Agent Communication Language", Proceedings of the Third International Conference on Information and Knowledge Management (CIKM '94), 1994.
- Foundation for Intelligent Physical Agents, FIPA 97 Specification Part 2: Agent Communication Language, 1997.
- Qingyun Wu et al., "AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation", arXiv:2308.08155, 2023.
- John R. Boyd, A Discourse on Winning and Losing, 미출판 브리핑 자료, 1987.
- Nelson F. Liu et al., "Lost in the Middle: How Language Models Use Long Contexts", Transactions of the Association for Computational Linguistics, 12, 2024.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기


