LangChain 챗봇5장 · LLM 외부 도구 연동20 / 21← 이전목차다음 →MetaContents

5장. LLM 외부 도구 연동

정리

Tool Calling, 에이전트, MCP 의 핵심과 실습에서 본 숫자를 한 장에 모은 인포그래픽
  • 모델은 회사의 데이터, 오늘의 값, 정확한 계산을 모릅니다. 이런 일은 함수(도구)에게 맡기고, 모델은 언제 무엇을 부를지 고릅니다.
  • Tool Calling 에서 모델은 tool_calls 에 도구 이름과 인자만 담아 돌려주고, 실행은 우리 코드가 합니다. 결과는 같은 tool_call_id 를 단 ToolMessage 로 돌려주고 모델을 한 번 더 부릅니다.
  • @tool 은 함수 이름, docstring, 타입 힌트로 도구의 이름, 설명, 인자를 만듭니다. 실습 1에서 만든 두 도구는 모델 없이도 불러 시험할 수 있었고, P01 에 어른 2명, 아동 1명은 109.2만 원이었습니다.
  • 도구 실행기는 없는 도구와 틀린 인자도 멈추지 않고 "오류: …"로 돌려줍니다. 실습 2에서 요청 넷 가운데 둘은 success, 없는 도구와 글자 인자의 둘은 error 인 ToolMessage 가 됐습니다.
  • bind_tools 로 도구를 묶은 모델은 질문에 맞는 도구를 고릅니다. 실습 3의 예상 출력에서 P01 의 요금(109.2만 원, 표로 계산한 값)을 calc_price 로 구해 답했고, 인사에는 도구를 부르지 않았습니다.
  • MCP 는 AI 앱이 도구를 꽂아 쓰는 열린 규격입니다. 호스트 안의 클라이언트가 서버마다 하나씩 붙고, 같은 컴퓨터의 서버는 stdio 로 JSON-RPC 글을 주고받습니다. 실습 4에서 FastMCP 로 만든 52줄짜리 서버의 도구 셋이 get_tools() 로 LangChain 도구가 되었고, 폴더 밖 경로 셋과 공유 목록에 없는 파일 하나는 모두 거절됐습니다.
  • 도구에는 꼭 필요한 권한만 줍니다. 읽기 전용 도구, 폴더 제한과 공유 목록, 되돌릴 수 없는 일의 사람 확인이 세 겹입니다. 프로젝트의 예상 출력에서 에이전트는 네 질문에 도구를 모두 6번 불렀고, 그 기록이 답의 근거가 됩니다.
← 이전 절5장 · 프로젝트 1 — 데이터를 찾아 답하는 챗봇다음 절 →5장 · 확인문제와 해답