모델은 너 코드 못 읽어
Function calling 이 모델이 너 함수 실행하는 것처럼 들리는데 X. 모델은 너의 declaration 읽음 — 이름, description, 파라미터 schema — 그리고 너한테 호출해 달라는 구조화된 request emit. 너가 실행, 너가 결과 반환, 모델이 계속.
즉: 너가 작성하는 description 과 schema 가 모델이 너 tool 에 대해 아는 유일한 거. 문서가 아니라 API 계약.
OpenAPI subset, full JSON Schema 아님
Gemini 의 tool schema 가 OpenAPI 3.0 의 subset. JSON Schema 와의 차이가 중요:
| Feature | Gemini (OpenAPI subset) | JSON Schema |
|---|---|---|
| Top-level type | 항상 "object" | 아무거나 |
$ref / $defs | 지원 X | 지원 |
anyOf / oneOf | 지원 X | 지원 |
additionalProperties | 인식 X | 지원 |
| Enum | enum 배열 사용 | 같음 |
| Nested object | 지원 | 지원 |
번역: schema flat 하게 유지, ref X, union type X. 실제 tool 이 polymorphism 필요하면 별도 tool 들로 expose.
Description 이 이름보다 중요
모델이 description 읽고 tool 고름. do_thing + 좋은 description 이 queryEnterpriseAccountManagementSystem + 모호한 description 보다 outperform. 30 초 만에 훑을 동료에게 작성하는 docstring 처럼 description 작성.