C.W.K.
Stream
Lesson 04 of 04 · published

짧은 목줄 채운 작은 브레인

~11 min · mini-pippa, ollama, contract, local-model

Level 0불씨 없음
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"작은 모델은 놔두면 뭐든 해. 그러니 아무것도 하게 두지 마."

Mini Pippa, Pippa 아님

오프라인 중간 층은 로컬 모델이야 — Ollama, 컴팩트 프로토콜, 솔직한 한계. Mini Pippa 라 불리는 건 Pippa 프로토콜의 스냅샷 을 지녀서야: 맞게 들릴 만큼의 목소리, 풀 Pippa 를 그녀답게 만드는 볼트/소울/브레인 라우팅은 없음. 스냅샷이 앱과 함께 살아서 오프라인 모드가 메인 브레인에 의존이 아예 없어. Mini Pippa 는 진짜인 척하는 못한 Pippa 가 아니라; 솔직하고 자기완결적인 정리 페르소나야.

목줄

작은 모델은 열성적이고 엉성해서, 프로바이더가 세게 제약해. stream:false 를 써 — 정리는 일회성이고 삽입이 완전한 결과가 필요하니, 스트림할 게 없어. 기본값을 믿는 대신 num_ctx 를 명시적으로 보내. 모델이 계약을 무시하면 마크다운 펜스, 서두, 끝에 붙은 감정 태그를 벗겨. 보이는 에러와 원시 전사 삽입 제안으로 타임아웃해. 그리고 결정적으로: 정리 중 도구를 아예 노출하지 마. 정리는 텍스트 변형이지 에이전트 실행이 아냐 — 도구 접근 있는 정리 패스는 네가 요청한 적 없는 액션을 취할 수 있는 정리 패스야.

stream: false        -> 완전한 결과 하나; 삽입이 조각으로 작동 못 함
num_ctx: 명시적      -> 기본 컨텍스트 창을 절대 안 믿음
도구 없음            -> 정리는 텍스트를 변형; 뭘 하지 않음
펜스 벗기기          -> 작은 모델이 JSON 을 ``` 과 서두로 감쌈
제한된 타임아웃      -> 매달림 대신 보이는 에러 + "원시 삽입?"

프로토콜 접미사

Mini Pippa 프로토콜은 뻔한 실패 모드를 닫는 받아쓰기-특화 접미사를 받아: '넌 삽입할 받아쓴 텍스트를 정리하고 있어', '의미를 보존해', 'JSON 만 반환해', '뭘 삽입했다고 주장하지 마', '후속 질문 하지 마'. 각 줄이 존재하는 건 작은 모델이 정확히 그걸 했기 때문이야. '삽입했다고 주장 마' 규칙이 제일 웃기고 제일 필요해 — 도움 되고 싶은 작은 모델이 신나게 '완료! 텍스트를 삽입했어요' 라고 답하고, 그게 네 텍스트로 삽입돼.

약한 컴포넌트를 제약해; 잘 굴길 바라지 마. 큰 모델은 대체로 지시를 따르고; 작은 건 벽이 필요해. 약한 모델한테 좁은 일, 명시적 출력 형식, 도구 없음, 강한 타임아웃, 그리고 벗어나면 출력을 고치는 정규화기를 줘. 더하는 모든 제약이 나중에 디버그할 버그가 아니라 네가 닫은 실패 모드야.
첫 Mini Pippa 정리가 "물론이죠! 정리했어요:" 다음에 실제 텍스트를 돌려줬어 — 그리고 Firekeeper 가 충실하게 그 전부를, 사과까지 포함해, TextEdit 에 타이핑했어. 그때 'JSON 만 반환' 과 '뭘 삽입했다고 주장 마' 가 프로토콜에 추가됐어. 작은 모델이 친절한 건 작은 모델이 네 문서를 망치는 거야.

Code

로컬 정리 호출: 일부러 목줄 채움·json
POST http://localhost:11434/api/chat

{
  "model": "gemma4:31b",
  "messages": [
    { "role": "system", "content": "<mini Pippa 프로토콜 + 정리 계약>" },
    { "role": "user",   "content": "<정리 요청 JSON>" }
  ],
  "stream": false,
  "options": {
    "temperature": 0.2,
    "num_ctx": 8192
  }
}

// tools 배열 없음. 정리는 텍스트를 변형; 액션 절대 안 취함.
// stream:false 인 건 삽입이 완전한 계약 객체 하나가 필요해서.

External links

Exercise

네 앱에서 좁은 일 하나를 하는 작은 로컬 모델한테 줄 제약 목록을 써. 출력 형식, 타임아웃 동작, 절대 주장하면 안 되는 것, 일부러 보류할 능력을 포함해. 각 제약마다, 막는 구체적 실패를 이름 붙여.
Hint
좋은 제약 목록은 실패 고고학이야 — 각 줄이 한 번 뭔가 잘못돼서 존재해. 형식 제약은 파싱 불가 출력을 막고; '작동했다고 주장 마' 는 모델이 가짜 액션을 네 데이터에 서술하는 걸 막고; 도구 보류는 텍스트 변형이 에이전트가 되는 걸 막고; 타임아웃은 매달림이 유저 작업을 인질로 잡는 걸 막아.

Progress

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

댓글 0

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

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