Schema가 prompt야
Tool description이랑 parameter description은 모델이 보는 prompt의 일부야. 모델이 올바른 tool 고르고 정확한 인자 넘기는지 결정해. "정보 가져오기" 같은 모호한 description을 주면 엉망인 tool call이 돌아와. 반대로 정확한 걸 주면 ("미국 상장 ticker (예: 'AAPL')의 주가를 조회해서 현재 USD 가격을 반환한다") 좋은 게 돌아오고.
여러 tool — 모델이 고르게
Tool을 array로 보낼 수 있어. 그중에 뭘 부를지는 (아예 안 부를 수도 있고) 모델이 정해. 한 turn 안에서 여러 개를 순차로 부르기도 하고 한꺼번에 부르기도 하니까, 양쪽 다 처리해둬.
응답 모양
모델이 tool을 부르기로 하면, 응답 message는 content가 비고 tool_calls array가 채워져서 와. 각 tool call에는 function.name (어떤 tool이냐)이랑 function.arguments가 들어 있어. arguments는 이미 dict로 parsing된 상태야 — Ollama가 알아서 JSON을 풀어주거든. JSON 문자열을 그대로 던지는 OpenAI랑 여기서 갈려.