몸으로 익힌 룰
- 모든 tool call validate. 모델이 함수 이름 hallucinate, required 인자 누락, 잘못된 type 줄 수 있어. Dispatch를 try/except로 감싸고 crash 대신 error JSON 반환.
- Tool set은 작게. 5–10개가 sweet spot이야. 그 이상 넘어가면 모델이 산만해져서 엉뚱한 걸 골라. 더 필요하면 도메인별로 묶어두고 request마다 필요한 것만 골라 보내.
- Description은 docstring처럼 써. 첫 문장엔 뭘 하는지, 두 번째 문장엔 언제 쓸지 — 그리고 언제 쓰면 안 되는지.
stream: false로 먼저 test. Streaming에 tool call까지 얹으면 parsing이 확 복잡해져. Non-streaming으로 loop을 제대로 세운 다음에 streaming을 올려.- Registry를 써.
{name: callable}dict가 거대한 if/else chain보다 나아. test하기 쉽고, 늘리기 쉽고, tool 하나만 갈아끼우기도 쉬워.
Ollama Python library 단축
v0.4부터 공식 library가 Python 함수를 tools로 바로 받아. Function signature랑 docstring에서 JSON Schema를 알아서 만들어주고. Prototyping 속도는 확실히 붙어. 다만 production에선 schema를 직접 써. description을 의식적으로 벼려야 하니까.