Easy → Simple Translation
Harness의 정의는 complex한 LLM 자유를 simple한 예측 가능 행동으로 번역하는 layer다. 이게 harness의 존재 이유. 다른 모든 harness 기능 (prediction · ACL · lazy loading · gateway)은 이 mechanism의 적용. 사용자 thesis의 진짜 자리 — LLM이 easy를 선택할 때마다 harness가 complex를 simple로 바꾼다.
1. 철학
사용자가 박은 핵심을 풀어쓰면:
- LLM은 easy한 선택을 한다 — 자유로운 자연어 input, 자유로운 action 출력. probabilistic. 같은 input에 다른 output 가능.
- 사용자가 원하는 건 simple — 예측 가능, 검증 가능, 일관된 행동.
- 둘이 충돌한다 — easy는 complex이고, simple은 narrow다. 같은 layer에서 살 수 없다.
- Harness가 번역자 — 두 layer 사이에 끼어들어 변환.
핵심 thesis 한 줄:
Harness의 정의는 complex한 LLM 자유를 simple한 예측 가능 행동으로 번역하는 layer다.
Complex와 Simple의 의미 명확화:
| 차원 | Complex (LLM 영역) | Simple (Action 영역) |
|---|---|---|
| 표현 공간 | 무한 — 자연어 모든 표현 | 좁음 — 정해진 grammar |
| 예측성 | 낮음 — probabilistic | 높음 — deterministic |
| 자유도 | 높음 — 어떤 조합이든 가능 | 낮음 — 정해진 조합만 |
| 검증성 | 낮음 — 왜 이 output인지 모름 | 높음 — schema check 가능 |
이 둘이 서로 다른 layer에서 살아야 한다. LLM은 complex 영역에서 자유롭게, action은 simple 영역에서 엄격하게. Harness가 그 경계.
이게 코딩 harness에서 hidden했던 이유 — 코딩은 암묵적 translation 도구가 가득. type system, test suite, lint, git diff. 일반 agent엔 그 도구가 부재. harness가 명시적으로 design해야.
action-prediction-and-trust가 output 측 strict를 박았다면, 이 노트는 그 strict가 어떻게 만들어지는가의 mechanism. harness의 본질 정의.
2. 추상 작동 구조
전통 view vs Translation view
전통 view (translation 부재):
사용자 input → LLM → action 실행
Translation view (harness가 layer):
사용자 messy input → [Input layer 보강] →
LLM (complex 영역) →
[Output layer constrain · verify · simplify] →
Simple action
핵심 — translation은 bidirectional. 입력 측 (messy → structured), 출력 측 (free → grammar). 둘 다 harness 책임.
Translation의 6 mechanism
Harness가 LLM 출력을 simple로 변환할 때 사용하는 도구:
| Mechanism | 역할 | 적용 layer |
|---|---|---|
| Vocabulary constraint | 사용 가능한 동사/명사 제한 | output layer |
| Action grammar | action이 따라야 할 형식 (verb-target-options) | output layer |
| Schema validation | action plan이 schema 만족 | output layer |
| Templating | 자주 쓰이는 action을 template로 | output layer |
| Composition rules | action을 어떻게 조합 | output layer |
| Refusal + retry | grammar 외 action 시 reject, 재시도 | feedback loop |
각 mechanism이 complex 표현 공간을 좁힌다. 좁힐수록 simple ↑, 그러나 easy ↓. 이게 trade-off의 자리.
Layered vocabulary — 답의 구조
답은 vocabulary를 layer로 나누는 것. 한 layer에서 좁히면 다른 layer에서 자유 보장:
각 layer 사이가 translation 자리. L4→L3는 LLM이 skill 매칭, L3→L2는 skill 정의에서 sequence, L2→L1은 composed = tier 1 조합. 각 단계마다 vocabulary가 좁아지고 grammar가 엄격해진다. 그러나 위 layer에서 자유 보장.
이게 evolution-mcp-to-skills의 layer 위의 layer 패턴이 vocabulary에 적용된 사례. layer를 추가하면서 각 layer의 자유를 보존.
Templating — 일반 agent harness의 결정적 도구
자주 쓰이는 action sequence를 template으로:
- LLM이 새로 generate하지 않고 fill in
- 예: "이메일 보내기" = template { 받는이, 제목, 본문 } + send action
- LLM은 세 변수만 채움 — predictable ↑
코딩 vs 일반 agent의 템플릿 의미 차이:
- 코딩: test가 LLM 자유를 흡수 → template은 편의 도구
- 일반 agent: template이 trust의 결정적 도구 → LLM 자유를 제약하는 자리
이게 일반 agent harness에서 frontier-rl-skill-generation의 Template 단계가 코딩보다 훨씬 더 결정적인 이유.
3. 약점
Trap 1 — Vocabulary가 너무 좁으면 easy 깨짐
사용자가 자유롭게 표현 못 하면 unusable. vocabulary 폭이 segment 의존. 학내 비개발자는 너무 넓으면 혼란, 너무 좁으면 표현 못 함. v1.0에서 적정 vocabulary가 design.
Trap 2 — Grammar가 새 use case에 안 맞음
정해진 grammar가 예상치 못한 task에 안 맞음. 사용자가 grammar 외 행동 원하면 막힘 → ecosystem 진화 막힘. 답: grammar 진화 mechanism — refuse 패턴을 측정해서 grammar 확장.
Trap 3 — Translation의 해석 비용
모든 LLM output을 grammar 검증하는 비용. latency ↑. 학내 1000 req/day quota에서 매 호출마다 검증 비용. ⚠️ AI 추정: composed action level에서 검증, tier 1 level에서 추가 검증 — 이중 비용.
Trap 4 — Refusal의 사용자 경험
LLM이 grammar 외 action 시도 → refuse → 사용자 혼란. "왜 안 돼?"의 답을 harness가 설명 가능해야. invisible refusal은 trust 깸. 답: refuse는 visible + explanatory.
Trap 5 — Template의 경직성
자주 쓰이는 ≠ 모든. template이 너무 많으면 maintenance, 너무 적으면 자유 없음. template 카탈로그가 진화 가능해야. 이게 frontier-rl-skill-generation의 AutoSkill 미래 hook과 연결.
Trap 6 — LLM의 grammar 우회 시도
LLM이 정해진 grammar를 우회하려는 경향 — 한 action으로 여러 일 시도, 정해진 vocabulary에 비슷한 단어 사용. harness가 prompt-level에서 강제 + output-level에서 검증 — 이중 layer.
Trap 7 — Easy ↔ Simple trade-off의 재등장
- vocabulary 좁히면 simple but not easy
- vocabulary 넓히면 easy but not simple
- 이건 action-prediction-and-trust의 predictability ↔ easy와 짝
- 답이 segment specific vocabulary 폭 — 학내는 더 좁게 (⚠️ AI 추정)
Trap 8 — Layered vocabulary의 층 수가 또 trade-off
- 4 layer (L1~L4): 적절. 그러나 translation 비용 4번
- 2 layer: 빠름. 그러나 자유와 strict 사이 gap 큼
- 6 layer: 자유 좋음. 그러나 비용 폭증
⚠️ AI 추정: 4 layer가 학내 segment에 적절. 그러나 측정해서 조정.
4. 대안 흐름
Translation 부재 vs 다른 mechanism
| 가상 path | 효과 |
|---|---|
| No translation | LLM 자유. 모든 게 complex. predictable X. trust 0 |
| Strict schema only | JSON schema enforcement. 코딩에선 작동, 일반 agent엔 너무 엄격 |
| Natural language all the way | vocabulary 제한 X. unpredictable |
| Pure templating | 정해진 template만. 자유 X. ecosystem 형성 X |
| Layered vocabulary (이 노트의 답) | tier별 grammar. 진화 가능. 비용 있음 |
⚠️ AI 추정: layered vocabulary가 현재 best. 그러나 layer 수가 또 trade-off.
Production 사례 — translation mechanism 매핑
| 시스템 | Translation mechanism |
|---|---|
| Anthropic Computer Use | screenshot + 좁은 tool 호출 schema |
| Claude Skills lazy loading | skill이 composed action grammar 정의 (L3) |
| OpenAI Operator | restricted action vocabulary + confirmation |
| Zapier / IFTTT | template heavy. "if this then that" — 매우 narrow |
| RPA tools (UiPath 등) | 매우 narrow vocabulary, predictable. 그러나 자유 거의 X |
| MCP tool 호출 | tier 1 strict (JSON schema), 위 layer 자유 |
⚠️ AI 추정: Skills lazy loading 패턴이 layered vocabulary의 production 사례. agentskills.io의 SKILL.md = L3 layer. body는 자유 (사용자 자연어), tool 호출은 strict grammar (L1). 학내 marketplace의 복제 대상.
5. 인사이트
5.1 Harness의 정의가 easy → simple translation 자체
"harness란 무엇인가?" — easy to simple translation. LLM의 complex를 simple로 번역하는 layer. 다른 모든 harness 기능 (prediction, ACL, lazy loading, gateway, ACP server)은 이 정의의 적용. 이 노트가 harness의 진짜 정의를 박는 자리.
5.2 Easy와 Simple은 다른 layer에 산다 — 같은 layer에 둘 수 없다
- LLM = easy (자유, 자연어, complex)
- Action = simple (예측, 정형, narrow)
- 둘이 같은 layer에 있으면 — easy를 잃거나 simple을 잃거나
- Harness가 경계. layer 사이에 끼어들어 번역
이게 protocol-theory-lamport-tanenbaum layer 분리의 가장 깊은 적용. abstraction의 본질.
5.3 Layered vocabulary가 답. 그러나 층 수가 design
- Tier 1 actions / Composed actions / Skills / User intent — 4 layer
- 너무 많으면 translation 비용, 너무 적으면 자유 없음
- ⚠️ AI 추정: 학내 segment에 4 layer가 적절. 측정해서 조정
5.4 Templating이 일반 agent harness에서 결정적
코딩에선 test가 LLM 자유를 흡수 → template은 편의 도구. 일반 agent에선 template이 trust의 결정적 도구 → LLM 자유를 제약하는 자리. v1.0의 first 10 templates가 ecosystem grammar 정한다. 이게 standardization-political-economy 권력 시드 thesis와 직접 연결.
5.5 Vocabulary 좁힘 ↔ easy 깨짐 — segment specific 답
action-prediction-and-trust trade-off와 짝. 답: segment specific vocabulary 폭. 학내 비개발자는 더 좁게 — 진입 장벽 낮아짐. trust 깨질 위험도 낮춤. 다른 segment (개발자 다수)는 더 넓게.
5.6 Grammar 외 action의 refusal — trust 도구이자 진화 막는 trap
- refuse 너무 많으면 사용자가 시스템 우회 시도 → trust 깸
- refuse 없으면 grammar 의미 없음
- 답: refuse + 학습 loop — refuse 패턴을 측정해서 grammar 진화
- 이게 postels-law-and-robustness standardized liberal의 일반 agent 적용
5.7 Harness의 진짜 책임은 번역의 정확도
- LLM은 intent를 박는다
- harness는 intent → action 번역의 정확도 책임
- 번역 실패 = LLM 한계가 아니라 harness 책임
- 이게 사용자 thesis의 harness 단에서 해결의 정확한 의미
5.8 이 thesis가 코딩 harness에서 hidden했던 이유
- 코딩에서 git diff / type system / test가 암묵적 translation 도구
- LLM이 잘못해도 test가 잡음. git revert로 되돌림
- 일반 agent엔 그 도구 부재 → harness가 명시적 design
- 이게 일반 agent harness가 코딩 harness보다 훨씬 design 부담 큰 이유
5.9 Template 카탈로그가 segment specific 자산
- 학내 비개발자의 자주 쓰는 task가 segment specific
- v1.0의 첫 template들이 segment의 first grammar
- 다른 segment 복제 시 — template 카탈로그는 segment specific, layered vocabulary 구조는 공유 layer (segment-application-non-developer-majority 5.7)
5.10 Translation은 bidirectional — input/output 둘 다 harness 책임
- input 측: 사용자 messy → LLM이 이해 가능한 structured (다음 노트 disorder-tolerance-general-user)
- output 측: LLM의 free → harness가 검증 가능한 grammar (이 노트)
- 둘 다 harness 책임. 한쪽만 design하면 반쪽 harness
5.11 Easy ↔ Simple trade-off의 segment specific 답
- 학내 비개발자: simple 우선 (trust 깨지면 끝)
- 코딩 사용자: easy 우선 (test가 backup)
- 일반 productivity 사용자: 균형
- segment마다 다른 균형점. 이게 trade-off-five-options의 차원 우선순위가 segment dependent인 이유의 깊은 근거
5.12 Worse is Better가 translation 영역에서는 작동
action-prediction-and-trust에서는 Worse is Better가 trap이었다 (trust 비대칭). 그러나 translation 자체는 Worse is Better 적용 — 단순한 translation mechanism이 ecosystem 형성. 복잡한 schema validation은 trap. 이게 ① 4축 안에서도 5번째 축과의 tension이 있는 이유.
5.13 이 노트가 harness의 진짜 정의를 박는다
"harness란 무엇인가?"의 답:
Harness = Easy를 Simple로 번역하는 layer.
다른 정의들 (안전 layer, abstraction layer, framework, runtime)은 이 정의의 부분. 이게 harness 본질의 한 줄 정의. 학내 marketplace v1.0의 모든 결정이 이 정의에 닿게.
6. ① fundamentals 5번째 축의 깊은 본질
action-prediction-and-trust이 5번째 축을 외부 view에서 박았다 (사용자에게 어떻게 보이는가 = predictable). 이 노트가 내부 mechanism 박는다 (어떻게 만들어지는가 = translation).
5번째 축의 합산:
Predictable agent = Easy → Simple translation이 정확하게 작동하는 agent.
translation 정확도가 prediction 정확도. 둘이 같은 thesis의 두 면.
이걸 ① 4축에 추가하면 — 5축이 일반 agent harness의 fundamentals:
- 단순함 (Worse is Better)
- layer 분리 (Lamport · Tanenbaum)
- de facto 권력 (정치경제학)
- 관대함 (Postel's Law)
- 예측 가능성 = Easy→Simple translation (이 노트 + action-prediction-and-trust)
7. 다음으로의 연결
남은 일반 agent 노트:
- disorder-tolerance-general-user — input 측 translation. 사용자 messy를 어떻게 받아들이는가. Postel + 일반 사용자
frontier-computer-use-and-browser-agent— 일반 agent의 진짜 frontier. Anthropic Computer Use, OpenAI Operator- synthesis-for-v1-general-agent — 일반 agent 관점의 결정 도구 종합
이 셋이 박히면 — 일반 agent harness lens 완성.
참조
- Anthropic Skills lazy loading — layered vocabulary production 사례
- Anthropic Computer Use — screenshot + tool grammar
- agentskills.io SKILL.md — L3 layer 표준
- RPA tools의 narrow vocabulary 사례
- DSL (Domain Specific Language) 이론 — translation의 학술적 lens
연결:
-
- action-prediction-and-trust — 짝 노트. external view (predictable)
- postels-law-and-robustness — input 측 짝 (liberal receiver)
- protocol-theory-lamport-tanenbaum — layer 분리의 가장 깊은 적용
- worse-is-better — translation 자체에는 적용, prediction에는 trap
- evolution-mcp-to-skills — layer 위의 layer가 vocabulary에 적용
- frontier-rl-skill-generation — Template 단계가 일반 agent에서 결정적
- standardization-political-economy — first 10 templates가 grammar 정함
- segment-application-non-developer-majority — vocabulary 폭이 segment 의존
- trade-off-five-options — 차원 우선순위의 깊은 근거