Pattern Skills

reopt-context-routing

컨텍스트 라우팅

각 주체에 필요한 컨텍스트만 전달되도록 흐름을 설계한다.

OCLS LAYER

설치

cp skills/patterns/reopt-context-routing/SKILL.md <your-project>/.claude/skills/reopt-context-routing/SKILL.md

이 레포의 파일을 당신의 프로젝트에 복사하면 Claude Code 세션에서 바로 활성화된다.

markdownskills/patterns/reopt-context-routing/SKILL.md
---
name: reopt-context-routing
description: When the scope of context transferred during an inter-agent handoff is unclear. Designing the logic that passes conversation history and intermediate results to the next agent. When token cost explodes or response quality degrades from context pollution.
---

# 컨텍스트 라우팅 (Context Routing)

OCLS 단계: **LAYER** · 각 참여자가 필요한 만큼만 받도록 정보 흐름을 설계한다.

## 핵심 규칙

- 각 에이전트가 책임을 수행하기 위해 필요한 컨텍스트 항목을 명시적으로 선언한다.
- 핸드오프 시점에 "이 에이전트가 지금 알아야 할 것"을 기준으로 컨텍스트를 필터링하고 구조화한다.
- 필요한 항목이 누락되면 핸드오프를 거절하는 검증 규칙을 둔다.
- LLM의 어텐션 예산과 context rot을 고려한다. 가장 적은 고신호 토큰으로 원하는 결과를 끌어낸다.
- 점진적 공개(progressive disclosure)를 적용한다. 모든 것을 한 번에 적재하지 말고 필요한 시점에 탐색한다.

## 판단 질문

**이 에이전트가 지금 모르면 안 되는 것은 무엇인가?**

## 적용 체크

1. 수신 에이전트가 판단에 필요한 최소 컨텍스트는 무엇인가?
2. 전달 포맷이 구조화되어 있는가(JSON, 스키마)?
3. 불필요한 이력과 메타데이터가 제거되었는가?
4. 필요한 항목이 누락되면 어떻게 되는가?

## 코드 예시

```typescript
// ❌ 대화 전체를 그대로 전달 — 토큰 비용 3배, 컨텍스트 오염
responseAgent.handle({ fullHistory: conversation });

// ✅ 수신 에이전트의 책임에 맞춘 구조화된 핸드오프 페이로드
interface IntakeToResponse {
  category: "shipping-delay" | "refund" | "general";
  sentiment: "neutral" | "frustrated" | "satisfied";
  keyFacts: string[];         // 판단에 필요한 사실 3~5개
  priorResolutions: string[]; // 이전 처리 시도 요약
  // 원본 대화 이력은 전달하지 않는다.
}

function filterForResponse(c: Conversation): IntakeToResponse {
  return {
    category: c.classification.category,
    sentiment: c.sentiment.latest,
    keyFacts: extractFacts(c).slice(0, 5),
    priorResolutions: summarize(c.actions),
  };
}

const payload = filterForResponse(conversation);
if (payload.keyFacts.length === 0) throw new HandoffRejected("no keyFacts");
responseAgent.handle(payload);
```

## 안티패턴

**고객 응대**: 모든 에이전트에 대화 이력 전체를 전달하면 Response Agent가 과거 불만에 과잉 반응해 불필요한 보상을 제안한다. 컨텍스트 오염은 품질을 조용히 떨어뜨리기 때문에 원인을 찾기 어렵다.

**검색 시스템**: retrieve → rerank → summarize 파이프라인에서 단계마다 원문 전체를 전달하면 토큰 비용이 누적된다. 각 단계가 필요한 필드(점수, 메타데이터, 스니펫)만 받도록 필터링하라.

## 호출 예시

```
"Intake → Response 핸드오프에 컨텍스트 라우팅을 적용해줘.
지금은 대화 이력 전체를 전달한다. Response가 판단에 필요한 필드만 담은
구조화된 페이로드 타입을 정의해줘."
```

## 관련 패턴

- 책임 분할 — 책임 경계가 컨텍스트 필터의 기준이 된다
- 상태와 기억 제어 — 단기 상태와 장기 기억의 전달 규칙

연결된 패턴

Context Routing컨텍스트 라우팅 — 각 주체에 필요한 정보만 전달되도록 정보 흐름을 설계한다.