반응형
도구 호출이란?
LLM이 이 작업은 바인딩해둔 도구를 사용해야 한다고 판단하고 그 도구의 형식에 맞는 JSON을 생성하는 것이다.
이 도구로 수행할 수 있다.
이 도구의 출력 형식을 사용하겠다.
정도의 의미가 된다.
실제로 코드를 실행하는 것은 아니며,
실제 실행까지 하려면 function tool + 코드 연동이 필요하다.
📌 도구 호출은 "도구 목록에서 하나 골라 응답하겠다"는 신호
bind_tools()로 등록한 도구는 LLM 입장에서 보면 사용 가능한 함수처럼 보이는 것들이다.
llm.bind_tools([PromptInstructions])
llm 내부에서는
- 사용가능한 도구 목록 :
PromptInstructions -> args로 objective, variables, contraints, requirements 스키마 가진 함수
+ 더해서 각 args별 타입 등등을 모두 가지고 있게 됨
이후 응답 생성할 때
이 요청은 PromptInstructions 구조로 나타낼 수 있겠네? 그럼 이 도구 호출하면 되겠다!
라고 리턴하게 된다.
예시로 다음과 같이 리턴된다.
{
"tool": "PromptInstructions",
"arguments": {
"objective": "프롬프트 목적",
"variables": ["input", "context"],
"constraints": ["길이 제한"],
"requirements": ["구조 유지"]
}
}
📌 LLM 이 알아야하는 정보
- 도구 이름 (PromptInstructions)
- 설명
- 입력 스키마 (objective/variables/... 형태)
- 언제 이 도구를 사용해야 하는지 힌트
LLM은 대답을 생성할 때:
- 도구를 사용할지 / 단순 텍스트로 답할지 결정하고
- 도구를 선택하면 그 스키마에 맞춰 JSON을 생성함.
✔ 결론 요약
1) bind_tools() → LLM에게 “사용 가능한 도구 목록”을 등록
2) LLM은 그 도구의 스키마(입력 형식)를 알고 있음
- bind_tools()할 떄 해당 정보를 같이 입력하게 됨
3) 사용자가 질문하면
- “이건 도구로 대답해야겠다”
- “이건 그냥 텍스트로 대답하면 되겠다”
를 LLM이 판단
4) 도구로 답한다면 “도구 호출 JSON”을 만들어서 응답
반응형
'Agent' 카테고리의 다른 글
| 원하는 양식으로 LLM의 답변을 강제하고 싶은 경우 이걸 사용! (0) | 2025.11.30 |
|---|
댓글