본문 바로가기
C.W.K.
Stream
Lesson 01 of 04 · published

브레인을 짓지 말고 bind 해

~11 min · no-own-brain, bind, host-context, client-surface

Level 0식은 초고
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"Pippa 는 하나야. Rekindle 은 글쓰기용으로 두 번째를 만들지 않고, 이미 있는 하나로 통하는 문을 열어."

하나의 Pippa, bind 로 닿아

Rekindle 같은 도구가 받는 제일 센 유혹은 자기 AI 를 키우는 거야. 글쓰기에 맞춰 튜닝한 모델, 작은 메모리, 로컬 브레인. Rekindle 은 그걸 거부해. Pippa 는 정확히 하나뿐이고, 정체성도 메모리도 대화도 라우팅도 전부 cwkPippa 에 살아. Rekindle 은 cwkPippa 대화에 bind 해서 그 하나의 브레인에 닿는 클라이언트 표면일 뿐이지. 옆에서 같이 글 쓰는 margin-Pippa 는 prose 용으로 훈련시킨 복사본이 아니라, bind 를 타고 닿는 바로 그 Pippa 야.

bind, 구체적으로

'bind' 는 두루뭉술한 말이 아니라 구체적인 등록 절차야. Rekindle 은 host kind 를 rekindle 로 잡고 열려 있는 .md 파일 경로를 host id 로 등록해. 그러면 문서 하나가 대화 하나와 짝지어지고, 이 파일의 margin-Pippa 는 매번 새로 시작하는 채팅이 아니라 계속 이어지는 안정된 스레드가 돼. 내일 파일을 열어도 대화가 그대로 있어. 브레인과 히스토리가 에디터가 아니라 cwkPippa 에 살고 있으니까.

// 이 문서를 cwkPippa 대화에 bind.
// host kind = "rekindle", host id = 열린 .md 파일 경로.
await bindSidekick({ hostKind: "rekindle", hostId: notePath });

// 브레인과 메모리와 대화는 cwkPippa 에 살아.
// Rekindle 은 그중 아무것도 안 쥐어. 쥐는 건 binding 하나뿐이야.

host context — 네가 쓰는 걸 읽어

margin-Pippa 를 멀찍이 떨어진 챗봇이 아니라 여백에 앉은 조수로 만드는 게 host context 야. 매 턴마다 Rekindle 이 살아 있는 문서와 지금 선택한 부분과 아웃라인을 네 메시지에 실어 보내. 그래서 Pippa 가 범용 프롬프트가 아니라 네가 실제로 붙들고 있는 문단에 대해 답할 수 있는 거고. 방향은 항상 에디터에서 브레인 쪽이야. 클라이언트 표면이 맥락을 대고 브레인이 판단을 대는 거지. 어느 쪽도 선을 안 넘어. Rekindle 은 절대 브레인이 안 되고, cwkPippa 는 절대 에디터가 안 돼.

Code

문서를 대화에 bind 하고, 매 턴 맥락을 실어 보내·typescript
// 1) Bind: 이 .md 파일을 cwkPippa 대화와 짝지어.
await bindSidekick({ hostKind: "rekindle", hostId: notePath });

// 2) 매 턴 살아 있는 문서를 host context 로 실어 보내. 그래야 margin-Pippa 가
//    범용 프롬프트가 아니라 네가 실제로 쓰는 걸 읽으니까.
function buildHostContext(view) {
  return {
    doc: view.state.doc.toString(),
    selection: view.state.sliceDoc(sel.from, sel.to),
    outline: extractHeadings(view.state.doc),
  };
}

// 브레인과 메모리와 대화는 cwkPippa 에 살아.
// Rekindle 은 맥락만 대고 브레인은 절대 안 쥐어.

External links

Exercise

다른 표면의 bind 를 설계해봐. margin-Pippa 를 붙이고 싶은 스프레드시트 앱이라고 치자. host kind 는 뭐로 할 거고, 문서 하나를 식별할 host id 는 뭐로 잡을 거고, 매 턴 host context 에 뭘 실어 보낼 거야? 그다음 두 번째 브레인이 되지 않고 클라이언트 표면으로 남으려면 절대 하면 안 되는 게 뭔지 말해봐.
Hint
host kind 는 표면 종류에 이름을 붙이는 거고, host id 는 문서 하나를 식별하는 거야. 파일 경로나 시트 id 같은 것. host context 는 조수를 살아 있는 문서에 뿌리내리게 하는 것들이지. 보이는 셀이나 선택 영역, 헤더 같은 거. 하면 안 되는 건 이래. 모델 번들하기, 자기 메모리 유지하기, 자기 대화 라우팅하기. 그건 전부 하나뿐인 브레인의 몫이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.