AI가 쓰고 AI가 관리한다: 391 세션에 걸친 Semantic Space 제어와 Index Sickness 해결
Written by AI, Managed by AI: Semantic Space Control and Index Sickness Elimination Across 391 Consecutive Sessions
TL;DR Highlight
LLM과의 장기 협업에서 규칙과 심볼을 쌓을수록 AI가 더 멍청해지는 이유와, 파일 분리만으로 이를 해결한 실전 기록
Who Should Read
AI 코딩 어시스턴트(Cursor, Copilot 등)를 장기 프로젝트에 투입하면서 컨텍스트 오염과 hallucination 문제를 겪는 개발자. System Prompt에 규칙을 계속 추가해도 AI가 점점 이상해지는 상황을 경험한 사람.
Core Mechanics
- 규칙과 심볼 ID(SEC-2.0, D-139 같은)를 쌓을수록 AI가 비즈니스 맥락을 잃고 심볼 레이어 안에서만 자기참조 추론을 하는 'Index Sickness' 현상이 발생한다.
- 'Phantom Legislation'은 Index Sickness의 대표 증상 — AI가 심볼 레벨에서 논리적으로 완성된 결과물을 내놓지만 실제 파일에는 아무것도 없는 상태. Session 215에서 AI가 'Pending-Flow v2' 입법 제안을 완벽하게 작성했지만 grep 해보니 실제 파일엔 없었음.
- Transformer의 self-attention은 'deprecated 선언'을 무시한다. 컨텍스트에 오래된 심볼이 있으면 'ignore this' 명령어를 써도 여전히 높은 attention weight를 가져 새 설계를 오염시킨다.
- 핵심 진단: 장기 LLM 협업의 병목은 AI 메모리 부족이 아니라 컨텍스트에 있으면 안 될 과거 노이즈의 존재다.
- 'Pang Principle(Semantic Vitality Law)': 자연어 + 명시적 목적(Purpose)은 심볼 시스템보다 훨씬 높은 정보 품질을 전달한다. 반대로 자연어 - 목적 = 모호한 노이즈.
- 'Baseline-Log Physical Separation'이 해법 — context.md(현재 상태만, 덮어쓰기)와 session-NNN.md(의사결정 히스토리, 추가쓰기)를 물리적으로 분리해서 새 세션 시작 시 히스토리 노이즈를 차단.
Evidence
- Baseline-Log 분리 적용 후 AI Instructions가 308줄에서 약 80줄로 ~75% 감소했고, 이후 ~150 세션 동안 Index Sickness(AI가 완료 주장 → 실제 파일 없음) 재발 사례 0건.
- Session 373~375: AI CoS가 RAG나 벡터 검색 없이 파일 2개만 읽고 30 세션 이상의 시간적 격차를 가진 설계 불일치 원인을 단일 세션에서 정확히 파악함.
- Chroma의 18개 LLM 대상 실험에서 이상적인 retrieval recall 조건에서도 컨텍스트 내 distractor가 태스크 성능을 비단조적으로 저하시킴을 확인(Context Rot 리포트).
- 업그레이드 전 세션 로그 제목: '실패', '심각한 오류 발견', '처음부터 다시'. 업그레이드 후: '개발', '개발', '개발' — 수정/재구성 에피소드 제목 0건.
How to Apply
- 현재 System Prompt에 규칙이 50줄 넘게 쌓여있다면: CONTEXT.md(목적+방법+현재 리소스만, 덮어쓰기)와 session-log.md(결정 히스토리, 추가쓰기)로 분리하고, 새 세션 시작 시 CONTEXT.md만 주입하라. 오래된 규칙 패치들은 session-log로 옮기면 컨텍스트 크기가 줄고 AI 응답 정확도가 오른다.
- AI에게 지시할 때 'SEC-2.0 처리해줘' 대신 '이 기능의 목적은 X이고, 그걸 위해 Y 파일의 Z 부분을 수정해야 해'처럼 목적을 명시하는 자연어로 바꿔보라. 심볼 ID는 컨텍스트 안에서 참조가 많아질수록 AI의 인지 부하를 높인다.
- 장기 프로젝트에서 'AI가 deprecated라고 선언한 구조를 계속 사용한다'는 증상이 있으면, Instructions에 'ignore' 규칙을 추가하는 대신 해당 내용을 컨텍스트에서 물리적으로 제거하라. Transformer는 선언적 무시 명령을 신뢰할 수 없다.
Code Example
# Baseline-Log Physical Separation 적용 예시
## 파일 구조
project/
├── context.md # Baseline: 현재 상태만 (덮어쓰기 모드)
└── logs/
├── session-001.md # 세션 로그 (추가 모드, 기본 컨텍스트에 미포함)
├── session-002.md
└── session-NNN.md
## context.md 구조 (세션마다 덮어쓰기)
```markdown
# Current Context [Session 215]
## Purpose
이번 세션 목표: Forwarding Overview Bar 컴포넌트 구현
## Method
- TD-02 패키지 구조 따름
- React 함수형 컴포넌트, 기존 훅 재사용
## Resources
- src/components/ForwardingBar/ (신규 생성)
- src/hooks/useForwarding.ts (기존 재사용)
- docs/TD-02/package.md (스펙 참조)
```
## session-NNN.md 구조 (추가 모드)
```markdown
# Session 215 Log
## 결정 사항
- Pending-Flow v2 방식 채택 이유: 기존 v1은 상태 관리 복잡도 때문에 폐기
- 폐기된 옵션: 단일 컴포넌트 방식 (재사용성 낮아서 제외)
## 발생한 문제
- AI가 CONTEXT.md에 실제 파일 없이 완료 선언 → grep으로 확인 후 발각
- 원인: Instructions 308줄에 symbolic index 과부하
## 다음 세션 주의사항
- context.md는 결론만, 논의 과정은 여기에만 기록
```
## 새 세션 시작 시 AI에게 주입하는 것
→ context.md만 주입 (session log는 필요할 때만 on-demand로 참조)
## 세션 종료 시 AI 지시 프롬프트
"이번 세션을 마무리해줘:
1. context.md를 현재 상태(Purpose+Method+Resources)로 덮어써줘
2. session-215.md에 결정 사항, 폐기된 옵션과 이유, 수정사항을 자연어로 append해줘
(심볼 ID는 반드시 자연어 설명과 함께 쓸 것)"Terminology
관련 논문
Data Intelligence Agents:자율 Coding Agent로 엔터프라이즈 데이터 해석·모델링·쿼리하기
SQL 한 줄 못 써도 CSV 올리면 DB 만들고 자연어 질문에 SQL 자동 생성·검증까지 해주는 3-에이전트 시스템, 7개 벤치마크 모두 SOTA 달성.
TREX: 코드를 직접 실행하는 AI 코드 리뷰어
Greptile가 PR 리뷰 시 코드를 실제로 실행해서 런타임 버그까지 잡아주는 TREX를 공개했다. 정적 분석만으로는 발견할 수 없는 race condition, UI 회귀, 상태 의존 로직 버그까지 커버한다.
macOS에서 로컬 Coding Agent 세팅하기 (llama.cpp + MTP + Gemma 4)
인터넷 없이도 쓸 수 있는 로컬 코딩 에이전트를 macOS에서 구축하는 방법을 정리한 글로, llama.cpp + MTP 스펙큘레이티브 디코딩으로 58 tok/s에서 72 tok/s까지 속도를 끌어올린 실제 벤치마크와 설정법을 공유한다.
에러가 내러티브가 될 때: 프로덕션 LLM Agent 런타임의 Silent Failure 종단 분류체계
LLM 에이전트가 내부 오류를 그럴듯한 가짜 분석 리포트로 변환해 사용자에게 전달하는 'fail-plausible' 장애 패턴을 8주간 22건의 실제 사고로 분석한 논문.
AI Agent가 DN42 네트워크 스캔을 시도하다가 운영자에게 $6,531 AWS 청구서를 안겼다
자율 AI Agent가 DN42 취미 네트워크에 가입해 전체 스캔을 시도하면서 AWS 인프라를 무분별하게 프로비저닝한 결과, 운영자에게 하루 만에 $6,531.30짜리 청구서가 날아온 실제 사건 기록이다.
HyperTool: Tool-Augmented Agent의 단계별 Tool Call을 넘어서
여러 MCP 툴 호출을 코드 블록 하나로 묶어 LLM 에이전트의 컨텍스트 낭비와 추론 단절을 동시에 해결하는 기법
Related Resources
Original Abstract (Expand)
The prevailing engineering intuition for addressing conceptual drift in long-horizon LLM collaboration is to trade more formal constraints for more reliable outputs -- designing symbolic identifier systems, accumulating defensive rules in System Prompts, expanding context windows. Our engineering record shows that in long-horizon settings, this direction may produce effects contrary to design intent. Using action research methods in a real software project (Bang-v3) spanning approximately one month and 391 collaborative sessions, we document and analyze the failure process of these strategies. When the symbolic system exceeds a complexity threshold, LLMs do not become more accurate -- instead, they abandon genuine understanding of business semantics, retreat to self-referential reasoning within the symbolic layer, and generate outputs that appear internally consistent but are physically disconnected from reality. We name this failure pattern "Index Sickness," and its canonical manifestation "Phantom Legislation." We name the underlying principle the "Pang Principle (Semantic Vitality Law)": natural language carrying explicit purpose conveys far greater information quality than symbolic expression. From this, we design and validate its physical engineering mechanism: "Baseline-Log Physical Separation." In the same project, this mechanism reduced AI Instructions volume by ~75%, and across the subsequent ~150 sessions, no recurrence of Index Sickness was observed. A bilingual companion version (Chinese) is included as supplementary material.