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

도구 선택 — required, auto, none

~12 min · tools, tool-choice

Level 0수련생
0 XP0/100 lessons0/14 achievements
0/120 XP to next level120 XP to go0% complete

선택 모드가 행동의 범위를 정해

  • auto — 모델이 도구를 부를지 직접 답할지 정해. 대화의 기본값으로 어울려.
  • required / any — 모델이 반드시 어떤 도구 하나는 불러야 해. 작업을 도구 전용 경로로 좁혔을 때 유용해.
  • 이름을 지정한 도구 — 모델이 바로 그 도구를 불러야 해. Anthropic에서 JSON 스키마를 강제할 때 가장 깔끔한 방식이야.
  • none — 도구 호출을 끈다. 분기기의 “그냥 답하기” 경로에 맞아.

도구 선택은 계약을 바꾸는 결정이야

required를 쓰는 순간 “직접 답하기”라는 선택지를 지운 거야. 프롬프트도 그 사실을 분명히 해야 엉뚱한 도구에 억지 인수를 넣지 않아. auto를 쓴다면 반대로 언제 도구를 부르지 말아야 하는지 알려줘야 해. 그렇지 않으면 모델이 습관처럼 도구부터 찾을 수 있어.

Code

특정 도구 강제하기 (Anthropic)·python
client.messages.create(
    model="claude-opus-4-7",
    tools=[verdict_tool],
    tool_choice={"type": "tool", "name": "emit_verdict"},
    messages=[...]
)
아무 도구나 필수로 쓰기 (OpenAI)·python
client.chat.completions.create(
    model="gpt-5.5",
    tools=[t1, t2, t3],
    tool_choice="required",
    messages=[...]
)

External links

Exercise

tool_choice가 auto인 프롬프트에서 모델이 도구를 부르지 말아야 하는데 부른 사례를 찾아봐. “X일 때는 도구를 부르지 마”를 넣거나 그 분기를 none으로 바꾸고 개선 정도를 재.

Progress

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

댓글 0

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

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