Tool은 프롬프트의 일부
Tool 노출은 일종의 instruction이야: '여기 너가 할 수 있는 게 있어'라고 모델한테 알려줘. 모델이 tool 부를지, 어떤 argument로, 결과를 어떻게 응답에 통합할지 결정. 대부분의 tool-calling 버그는 prompt 버그 — tool의 이름, description, input schema가 일하고 있어.
모델이 read하는 것
- Tool 이름 — 동사나 동사-명사 (
search_documents,create_ticket). - Description — 짧고, 뭐 하는지와 언제 쓰는지 명시. 가장 under-written field; 작은 prompt처럼 다뤄.
- Input schema — JSON Schema. Field description 모델한테 visible.
- Example — 일부 provider가 example tool call 지원. obvious 아닌 tool에 써.
흔한 실수
- tool 언제 쓸지 안 알려주는 한 줄 description.
- 경쟁하는 overlap tool (같은 거 두 가지 방법으로).
- description 없는 generic field 이름 (
id,data). - tool error 시 뭘 할지 guidance 없음.