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

apply-free 는 tool-free 가 아냐

~11 min · apply-free, tools, capability, terminology

Level 0신호 없음
0 XP0/32 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"'apply-free' 는 turn 을 설명하는 말이지 도구함을 설명하는 말이 아냐. 대화가 안 만들어진다는 뜻이지, Pippa 가 손이 묶인 채로 일한다는 뜻이 아니고."

사람들이 자꾸 헷갈리는 서로 다른 두 축

'apply-free' 는 사람을 엉뚱한 결론으로 끌고 가는 표현이야. 축소 모드처럼 들리거든. 능력 줄인 가벼운 Pippa 같은. 아니야. 이 말이 설명하는 건 딱 하나야. Prompt Macro 의 호출이 대화 턴을 안 만든다는 것. 실행하고 결과만 돌려주는 one-shot 유틸리티 호출이라 canonical 대화에 안 붙어. 그게 apply-free 가 뜻하는 전부야. tool 에 대해선 한마디도 안 하고. 그리고 이 두 축을 뭉개는 게 진짜 버그가 나오는 자리야.

  • turn 축. 이게 대화 턴을 만들어? Ask 는 만들고, Macro 는 안 만들어. 그게 apply-free 고.
  • tool 축. 어떤 tool 을 쓸 수 있어? 둘 다 canonical tool 표면을 전부 다 써.

이 둘은 서로 상관없어. 대화 턴이 없다고 도구가 없는 게 아냐. 잠깐 심부름 간다고 빈손으로 가는 게 아니듯이.

apply-free 여도 tool 은 전부 다

Prompt Macro 의 apply-free 호출도 canonical tool 표면을 전부 받아. allowlist 가 all 이야. 매크로의 지시를 제대로 수행하려고 Pippa 가 tool 을 돌려야 하면 돌리면 돼. apply-free 가 능력을 벗긴 적이 없거든. 그냥 대화 턴으로 기록하는 걸 사양했을 뿐이야. 머릿속에 이렇게 넣어 둬. apply-free 는 장부에 대한 얘기고, 턴을 안 만든다는 뜻이야. 에 대한 얘기가 아니고, tool 은 그대로 다 있어. apply-free 라고 tool 을 벗겨 버리면 사용자가 요청한 적도 없는 이유로 유틸리티를 슬그머니 반쪽으로 만든 거고.

남의 경계를 잘못 물려받지 마

여기서 계보를 조심해야 해. Pippa Go 는 여행 클라이언트한테서 집중형 캡처 모양을 빌려 왔는데, 그 클라이언트는 자기 목적에 맞춰서 apply-free 면 tool 없음 이라는 경계를 그은 거였어. Pippa Go 는 온전한 Pippa 클라이언트야. Ask 는 고른 뇌가 지원하는 tool 을 다 쓰면서 canonical 스트리밍 챗을 굴리고, 매크로마저 tool 표면을 그대로 유지하고. 여기서 여행 클라이언트의 tool 제한까지 물려받는 건, 거기선 말이 됐던 제약을 엉뚱한 데 갖다 붙이는 거야. 모양은 가져오되 상관없는 한계까지 가져오진 마. sibling 한테서 패턴을 가져올 땐 구조만 가져오고, 그쪽이 그어 놓은 경계는 하나씩 다시 따져 봐. 네 사정이 아니라 그쪽 사정 때문에 그은 선일 수 있으니까.

Code

turn 축이랑 tool 축은 서로 상관없어·typescript
// Ask: 대화 턴 만듦, 완전한 tool.
const askConfig  = { createsTurn: true,  toolAllowlist: "all" };

// Prompt Macro: apply-free (턴 없음), 근데 여전히 완전한 tool.
const macroConfig = { createsTurn: false, toolAllowlist: "all" };
//                                  ^^^^^                  ^^^^^
//                    'apply-free' 는 여기 삶      tool 은 여기서 안 바뀜

// 틀린 심상 모델: apply-free => toolAllowlist: "none"
// '대화 턴 없음'이랑 '능력 없음'을 뭉갠 거야 — 다른 두 축.

External links

Exercise

네가 만든 기능에서 서로 상관없는 축 두 개에 이름을 붙여 봐. '레코드를 만든다' 랑 '파일 쓸 권한이 있다', 아니면 '로그에 남는다' 랑 '특권이 있다' 같은 거. 이 둘을 뭉갰을 때 어떤 엉뚱한 기본값이 나오는지 보여 주고. 그다음 매크로에 적용해. apply-free 인데 tool 은 다 있는 config 랑, 버그 있는 apply-free 면 tool 없음 config 를 각각 써 봐. 어느 쪽이 어떤 필요를 채워 주는지, 그리고 어느 쪽이 아무도 요청 안 한 유령 제한인지 설명하고.
Hint
뭉개는 건 늘 합리적인 단순화처럼 보여. '어차피 유틸리티니까 잠가 두자' 하는 식으로. 근데 사용자가 없애 달라고 한 적 없는 능력을 없애는 거야. 축을 갈라 두면 유틸리티가 장부에선 가볍고 힘에선 멀쩡할 수 있어.

Progress

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

댓글 0

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

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