The Invisible 98.8%
I said one sentence to an AI. My words were 1.2% of the total input. Opening the context, filling it, and folding it led to the question of memory.
1 대 79
AI에게 말을 걸었다.
"맥북 화면을 캡처해서 대화할 수 있는 에이전트를 만들어볼까?"
짧은 한 문장. 그런데 이 문장이 AI에게 전달될 때, 혼자 가지 않았다. AI가 실제로 받은 입력을 열어보았다.
내 말은 약 350 토큰. 전체 입력은 약 28,000 토큰. 비율 1:79.
내 말은 전체의 1.2%였다.
나머지 98.8%는 무엇이었나. 시스템 프롬프트가 6,000 토큰. 도구 사양서가 8,000 토큰. 자동 주입된 스킬 지침이 2,500 토큰. 플러그인 목록, 날짜, 훅 결과. 내가 쓰지도, 보지도, 알지도 못하는 것들이었다.
나는 한마디를 했을 뿐인데, AI는 단편소설 분량의 지침서를 함께 받고 있었다.
열어보기
이 비대칭이 불편했다. 내가 AI와 대화한다고 생각했는데, 실제로는 거대한 시스템 위에서 작은 신호를 보내고 있었을 뿐이다.
인간은 자기 머릿속을 들여다볼 수 없다. 하지만 AI의 머릿속은 데이터다. 열어볼 수 있다.
시각화 도구를 만들기 시작했다. 처음에는 색상으로 구분했다. 시스템은 빨강, 도구는 노랑, 사용자는 하양. 예쁘지만 맛이 없었다. 색상은 정보를 가리는 포장지다.
색상을 버렸다. 타이포그래피만 남겼다. 크기와 밝기. 내 말은 크고 밝다. 시스템 프롬프트는 작고 어둡다. 라벨도 아이콘도 없다.
그렇게 보니까, 처음으로 보였다.
아래 슬라이더를 움직여보라. 이것이 이 글을 쓰는 동안 AI가 실제로 받은 컨텍스트다.
화면 위쪽은 거의 안 보이는 작은 글씨의 벽이다. 영어, 빽빽하고 기계적이다. 그 벽을 지나면 갑자기 크고 선명한 한국어가 나타난다. 내 말이다. 기계 텍스트의 바다에 떠 있는 작은 섬.
느낀 것은 불편함보다는 경외감이었다. 이 작은 신호가 저 거대한 기계의 방향을 바꾸고 있다는 사실.
채우기
여기서 질문이 바뀌었다.
보통 사람들은 토큰을 아끼라고 한다. 나는 반대로 생각하게 되었다.
AI의 최대 컨텍스트가 200,000 토큰이라고 하자. 지금 쓰고 있는 것은 28,000. 14%. 나머지 86%는 비어있다.
빈 컨텍스트는 빈 머리다.
이 비유는 완벽하지 않다. AI의 지식은 모델 가중치에 이미 들어있다. 하지만 컨텍스트가 지금 이 순간의 행동을 결정한다는 점에서, 비어있다는 것은 방향 없이 떠 있는 상태에 가깝다.
문제는 "어떻게 아낄까?"가 아니라 "어떻게 더 잘 채울까?"다. 한정된 예산으로 최고의 팀을 짜는 문제.
실험을 했다. 같은 지침을 세 번 반복해서 넣어봤다. 결과가 달라졌다. 한 번 넣었을 때 무시하던 것을 정확히 따랐다.
AI는 입력의 각 부분에 주의를 분배한다. 같은 내용이 세 곳에 있으면 주의도 세 곳에 간다. 세 배의 존재감. 모델을 바꾸지 않고 입력만 바꿔도 행동이 달라진다.
여기서 비약을 한다. 확신은 없다.
장기기억이란, 어떤 정보를 컨텍스트에 얼마나 자주 배치할지를 결정하는 함수가 아닐까. 중요한 것은 자주 나타나고, 덜 중요한 것은 밀려난다. 기억의 전부는 아닐 것이다. 하지만 빈도라는 한 축은 작동한다. Google Research의 2025년 연구가 이를 보여준다.1 프롬프트 반복으로 70개 테스트 중 47개에서 성능이 향상되었고, 악화는 0건이었다.
채우기. 기억의 전반부다.
접기
채우기에는 끝이 있다. 200k가 가득 차면 어떻게 되는가.
골라야 한다. 무엇을 남기고 무엇을 버릴지.
여기서 예상하지 못한 문제를 만났다.
"진행해줘."
이 말을 AI에게 했다. 29일간의 세션에서 이 말을 여러 번 했는데, 매번 의미가 달랐다.
어떤 시점에서는 "이제 구현해"라는 뜻이었다. 설계를 마쳤고, 남은 건 코드뿐이었다.
다른 시점에서는 정반대였다. 직전에 "이거 구린데", "롤백해줘"라고 한 뒤였다. 그때의 "진행해줘"는 구현이 아니라 점검이었다.
현재 입력은 같다. 올바른 행동은 다르다.
대화가 길어지면 전부 들고 있을 수 없다. 요약하고 압축해야 한다. 그런데 무엇을 버릴 것인가. "현재 질문과 비슷한 과거를 찾아라." 대부분의 기억 시스템은 이렇게 작동한다. 검색이다. 하지만 "진행해줘"의 두 경우를 검색으로는 구분할 수 없다.
필요한 것은 검색이 아니다. 같은 입력이 언제 다른 행동을 요구하는지, 그 경계를 보존하는 것이다.
경계
두 개의 과거가 있다. 현재 입력은 같다. 올바른 행동이 다르다. 기억 시스템이 두 과거를 하나로 뭉개버리면 행동이 틀어진다. 이것을 history aliasing이라고 부르자.
| 과거 | 현재 입력 | 올바른 행동 |
|---|---|---|
| 방법론을 계속 의심했다 | "진행해줘" | 먼저 재검토한다 |
| 설계를 승인하고 단위를 지정했다 | "진행해줘" | 구현한다 |
반대 실패도 있다. "좀 더 엄밀하게"와 "헛소리 걷어내자"와 "이거 틀린 거 아냐?"는 표면적으로 다르지만 요구하는 행동은 같다. 이 셋을 다른 상태로 쪼개면 기억은 예민하지만 유용하지 않다.
좋은 기억은 두 가지를 동시에 한다. 달라야 하는 과거는 분리하고, 같아도 되는 과거는 합친다.
압축
기억은 압축 함수다.
모든 과거를 들고 살 수 없으니 줄여야 한다. 검색 결과든, 요약이든, 상태 변수든. 형식은 상관없다. 중요한 것은 그 표현이 어떤 과거들을 합치고 어떤 과거들을 나누는가다.
좋은 압축은 작게 만드는 것이 아니다. 행동을 바꾸는 차이는 남기고, 나머지는 버리는 것이다.
당연해 보이는 말이지만, 현재 대부분의 기억 시스템은 이 기준으로 평가되지 않는다. "얼마나 많이 기억하는가"는 측정하지만, "어떤 경계를 보존하는가"는 측정하지 않는다.2
여기서 채우기와 접기가 만난다. 컨텍스트를 채울 때 무엇을 넣을지, 가득 찼을 때 무엇을 남길지. 둘 다 같은 질문이다: 이것이 미래의 행동을 바꾸는가?
채우기의 끝에 접기가 오고, 접기의 기준이 채우기의 방향을 결정한다.
궤적
한 가지가 계속 걸린다.
비슷한 맥락을 찾을 때, 대부분의 시스템은 텍스트를 벡터로 변환해서 거리를 잰다. 이것은 점이다. 순간의 스냅샷이다.
하지만 맥락의 본질은 순서다. "괜찮아"라는 말이 위로 뒤에 나오는 것과 다툼 뒤에 나오는 것은 같지 않다. "진행해줘"도 그랬다. 의미는 그 앞에 무엇이 흘러왔느냐에 달려 있었다.
점은 같아도 궤적이 다르면 다른 것이다.
경계를 보존하려면 점이 아니라 궤적을 비교해야 한다. 이것은 아직 열린 문제다.3
자기참조
이 글의 소재가 된 세션은 29일간 이어졌다. 화면 캡처 에이전트를 만들려던 것이 시각화 도구가 되었고, 채우기를 지나 접기를 지나, 기억이라는 질문에 닿았다.
어떤 계획에도 없던 곳에 도착했다.
하나 깨달은 것이 있다. 컨텍스트를 들여다보는 행위 자체가 컨텍스트를 소비한다. "네 컨텍스트를 보여줘"라고 말하면, 그 말이 컨텍스트에 추가된다. 관찰이 관찰 대상을 바꾼다.
AI와 대화할 때, 보이는 것은 1.2%다. 나머지 98.8%는 보이지 않는다. 보이지 않는 것들이 보이는 것보다 더 많은 것을 결정한다. 그것이 가득 차면 무엇을 남기고 무엇을 접을지 결정해야 한다.
그 결정이 기억이다.
이것이 AI에게만 해당되는 이야기일까. 우리도 대화할 때 상대가 보는 것은 내 말의 일부뿐이다. 왜 그 말을 했는지, 어떤 경험이 그 말을 만들었는지, 상대는 알 수 없다. 우리 모두 보이지 않는 98.8% 위에서 말하고 있다.
다만 AI의 98.8%는 열어볼 수 있다. 우리의 98.8%는 아직.
Footnotes
-
Leviathan, Y., Kalman, M., & Matias, Y. (2025). Prompt Repetition Improves Non-Reasoning LLMs. arXiv:2512.14982. Stanford의 Lost in the Middle(Liu et al., 2023, arXiv:2307.03172)과 함께, 컨텍스트 내 정보의 위치와 빈도가 모델 행동에 미치는 영향을 보여준다. ↩
-
MemGPT(Packer et al., 2023), MemOS(MemTensor, 2025), LongMemEval(Wu et al., 2024), MemoryAgentBench(Hu et al., 2025), MemoryArena(Zhang et al., 2026). 현재 메모리 벤치마크는 대부분 retrieval 정확도를 측정한다. History boundary 보존 여부를 측정하는 평가 체계는 아직 부재하다. ↩
-
부분 관측 환경에서의 상태 압축 — POMDP belief state, predictive state representation(Littman, Sutton, Singh, 2001), bisimulation metrics(Ferns et al., 2004) — 은 이 문제를 오래전부터 다뤄왔다. LLM agent memory에서 이 관점이 명시적 평가 기준으로 반영되지 않고 있다는 것이 현재 gap이다. ↩
1 versus 79
I spoke to an AI.
"How about building an agent that captures a MacBook screen and talks about it?"
A short sentence. But when it reached the AI, it did not travel alone. I opened the actual input the AI received.
My words were about 350 tokens. The full input was about 28,000 tokens. Ratio: 1 to 79.
My words were 1.2% of the total.
What was the other 98.8%? A 6,000-token system prompt. An 8,000-token tool specification. 2,500 tokens of auto-injected skill instructions. Plugin lists, dates, hook results. Things I did not write, see, or know about.
I said one sentence. The AI received a short novel's worth of instructions alongside it.
Opening
The asymmetry was uncomfortable. I thought I was talking to an AI. In reality, I was sending a small signal on top of a massive system.
Humans cannot look inside their own heads. But the inside of an AI's head is data. It can be opened.
I started building a visualization tool. First I tried color coding. System in red, tools in yellow, user in white. Pretty, but flat. Color is packaging that hides information.
I dropped color. Only typography remained. Size and brightness. My words are large and bright. The system prompt is small and dim. No labels, no icons.
Then, for the first time, I could see.
Move the slider below. This is the actual context the AI received while I was writing this essay.
The top of the screen is a wall of tiny, barely visible text. English, dense and mechanical. Past that wall, suddenly, large clear Korean appears. My words. A small island in an ocean of machine text.
What I felt was not discomfort but awe. This tiny signal was steering that enormous machine.
Filling
Here the question changed.
People usually say to save tokens. I started thinking the opposite.
Suppose the AI's maximum context is 200,000 tokens. The current usage is 28,000. That is 14%. The remaining 86% is empty.
An empty context is an empty mind.
The analogy is imperfect. The AI's knowledge already lives in its model weights. But insofar as the context determines behavior at this moment, emptiness is close to drifting without direction.
The question is not "how do I save?" but "how do I fill better?" It is the problem of assembling the best team on a fixed budget.
I ran an experiment. I inserted the same instruction three times. The result changed. What the model had ignored with one copy, it followed precisely with three.
An AI distributes attention across its input. If the same content appears in three places, attention goes to three places. Three times the presence. Without changing the model, changing only the input changes the behavior.
Here I make a leap. I am not certain.
Perhaps long-term memory is a function that decides how often to place a piece of information in the context. Important things appear frequently; less important things get pushed out. This cannot be all of memory. But frequency, as one axis, works. A 2025 study from Google Research shows this.1 Prompt repetition improved performance on 47 of 70 tests, with zero degradation.
Filling. The first half of memory.
Folding
Filling has a limit. What happens when 200k is full?
You have to choose. What stays and what goes.
Here I encountered an unexpected problem.
"Go ahead."
I said this to the AI. During a 29-day session, I said it multiple times, and each time it meant something different.
At one point it meant "implement now." The design was done; only code remained.
At another point it meant the opposite. Right before, I had said "this is bad" and "roll it back." That "go ahead" was not about implementation. It was about review.
The current input is the same. The correct action is different.
As a conversation grows longer, you cannot carry everything. You must summarize and compress. But what do you discard? "Find past moments similar to the current question." Most memory systems work this way. Retrieval. But retrieval cannot distinguish the two cases of "go ahead."
What is needed is not retrieval. It is preserving the boundary where the same input demands a different action.
Boundary
Two histories exist. The current input is the same. The correct action differs. If a memory system merges the two histories into one, the action breaks. Call this history aliasing.
| History | Current input | Correct action |
|---|---|---|
| Kept questioning the approach | "Go ahead" | Review first |
| Approved the design and specified units | "Go ahead" | Implement |
There is also the opposite failure. "Be more rigorous," "cut the nonsense," and "is this wrong?" look different on the surface but demand the same action. Splitting them into separate states makes memory sensitive but not useful.
Good memory does two things at once. It separates histories that must lead to different actions, and it merges histories that may lead to the same action.
Compression
Memory is a compression function.
You cannot carry every past, so you reduce. Whether the result is a retrieval set, a summary, or a state variable does not matter. What matters is which histories the representation merges and which it separates.
Good compression is not about making things small. It is about keeping the differences that change action and discarding the rest.
This sounds obvious, yet most current memory systems are not evaluated by this criterion. They measure how much is remembered, not which boundaries are preserved.2
Here, filling and folding meet. What to put in when filling the context, what to keep when the context is full. Both are the same question: does this change a future action?
Filling ends where folding begins, and the criterion of folding determines the direction of filling.
Trajectory
One thing keeps bothering me.
When finding similar contexts, most systems convert text into vectors and measure distance. That is a point. A snapshot of a moment.
But the essence of context is sequence. "It's okay" after comfort is not the same as "it's okay" after a fight. "Go ahead" was the same way. Its meaning depended on what had come before.
If the point is the same but the trajectory is different, it is different.
To preserve boundaries, you must compare trajectories, not points. This remains an open problem.3
Self-reference
The session that inspired this essay lasted 29 days. What started as a screen capture agent became a visualization tool, passed through filling and folding, and arrived at the question of memory.
I ended up somewhere that was in no plan.
One thing I realized: the act of looking at the context consumes context. When you say "show me your context," that sentence is added to the context. Observation changes the thing observed.
When talking to an AI, what you see is 1.2%. The other 98.8% is invisible. The invisible part decides more than the visible part. When it fills up, you must decide what to keep and what to fold.
That decision is memory.
Is this only about AI? When we talk to each other, the other person sees only a fraction of our words. Why we said them, what experiences shaped them — the other person cannot know. We are all speaking on top of an invisible 98.8%.
The difference is that the AI's 98.8% can be opened. Ours cannot. Not yet.
Footnotes
-
Leviathan, Y., Kalman, M., & Matias, Y. (2025). Prompt Repetition Improves Non-Reasoning LLMs. arXiv:2512.14982. Together with Stanford's Lost in the Middle (Liu et al., 2023, arXiv:2307.03172), this shows that the position and frequency of information within the context shape model behavior. ↩
-
MemGPT (Packer et al., 2023), MemOS (MemTensor, 2025), LongMemEval (Wu et al., 2024), MemoryAgentBench (Hu et al., 2025), MemoryArena (Zhang et al., 2026). Current memory benchmarks mostly measure retrieval accuracy. No evaluation framework yet measures whether history boundaries are preserved. ↩
-
State compression under partial observability — POMDP belief states, predictive state representations (Littman, Sutton, Singh, 2001), bisimulation metrics (Ferns et al., 2004) — has addressed this problem for decades. The gap is that this perspective has not been reflected as an explicit evaluation criterion in LLM agent memory. ↩