제목
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인공지능
대상자
AI 에이전트 개발자 및 프레임워크 사용자 (LangChain, OpenAI Assistants API 등)
난이도: 중급 (프레임워크 이해 필요)
핵심 요약
- 모델이 사용자 입력에 따라 도구를 선택적으로 호출 (예:
get_weather()
vsget_muskan_data()
) tool_choice
파라미터로 도구 호출 제어 (예:"auto"
,"none"
,"required"
,"tool_name"
)- 커스텀
tool_wrapper
를 통해 AI 판단을 오버라이드 가능 (예:should_call_this_tool()
조건 추가)
섹션별 세부 요약
1. 도구 호출은 언제 발생하는가?
- 사용자 입력이 특정 도구와 관련된 경우에만 호출 (예:
"What’s the weather in Lahore?"
→get_weather()
실행) - 프레임워크(
agents
,LangChain
)가 모델에게 선택권을 주면 자동으로 도구 선택이 이루어짐 - 도구 목록은 미리 정의해야 하며, 필요 시에만 사용됨
2. 잘못된 호출을 방지하는 경우
- 수동으로
tool()
을 강제 호출 → 모델 판단 무시 - 프레임워크가 모델의 선택권을 제한 (예: 도구가 하드코딩된 로직 내에 포함)
- 모델이 도구 호출을 지원하지 않는 경우 → 모든 도구가 무조건 호출되거나 사용되지 않음
3. `tool_choice` 파라미터 사용법
"auto"
: 모델이 입력에 따라 도구 선택"none"
: 도구 호출 금지"required"
: 특정 도구만 강제 호출 (일반적 아님)"tool_name"
: 특정 도구만 강제 호출
4. 커스텀 로직으로 호출 제어
tool_wrapper
함수를 통해should_call_this_tool()
조건 추가- 예: AI 판단이 필요 없는 경우
"Tool not needed right now."
반환
결론
- 모델이 도구 호출 결정 →
tool_choice
파라미터로 제어, 커스텀tool_wrapper
로 조건 추가 - 실무 적용 시:
"auto"
를 기본값으로 설정하고, 필요 시"none"
또는"tool_name"
으로 제어 - 예:
Agent(tools=[get_weather], tool_choice="auto")
→ 입력에 따라get_weather()
선택적으로 호출