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

5장. LLM 외부 도구 연동

용어 짚고 가기

  • 도구(tool)모델이 부를 수 있게 이름과 설명을 붙여 둔 함수입니다. 계산, 표 찾기, 파일 읽기처럼 모델이 혼자 할 수 없는 일을 맡습니다. tool 은 "연장, 도구"라는 뜻입니다.
  • Tool Calling(tool calling)모델이 답 대신 "어느 도구를 어떤 값으로 불러 달라"는 요청을 돌려주는 기능입니다. calling 은 "부르기"라는 뜻입니다. Function Calling(함수 호출)이라고도 부릅니다.
  • tool_calls모델이 돌려준 AIMessage 안의 도구 호출 요청 목록입니다. 요청마다 도구 이름(name), 인자(args), 요청 번호(id)가 들어 있습니다.
  • 인자(argument)함수를 부를 때 넘기는 값입니다. argument 는 원래 "논거, 근거로 내놓는 것"이라는 뜻입니다. 도구 호출에서는 {"code": "P01", "adults": 2} 같은 사전으로 오갑니다.
  • 데코레이터(decorator)함수 위에 @이름 으로 얹어 그 함수에 기능을 덧입히는 파이썬 문법입니다. decorate 는 "꾸미다"라는 뜻입니다.
  • @tool보통 함수를 LangChain 도구로 바꾸는 데코레이터입니다. 함수 이름, docstring, 타입 힌트로 도구의 이름, 설명, 인자 스키마를 만듭니다.
  • docstring(documentation string)함수 첫머리에 따옴표 세 개로 적는 설명 글입니다. documentation(문서)과 string(글자열)을 합친 말입니다. 도구에서는 모델이 읽는 설명이 됩니다.
  • bind_tools모델에 도구 목록을 묶어, 요청마다 도구 설명서가 함께 가게 하는 메서드입니다. bind 는 "묶다"라는 뜻입니다.
  • ToolMessage도구를 실행한 결과를 모델에게 돌려줄 때 쓰는 메시지입니다. 1장에서 본 system, human, ai 에 이어 넷째 역할(tool)입니다.
  • tool_call_idToolMessage 가 어느 도구 호출 요청의 결과인지 가리키는 요청 번호입니다. id 는 identifier(식별자)의 줄임말입니다.
  • 에이전트(agent)모델이 도구를 부르고 결과를 읽고 다시 부르는 고리를, 일이 끝날 때까지 스스로 돌리는 프로그램입니다. agent 는 "대신 일을 맡아 하는 사람, 대리인"이라는 뜻입니다.
  • create_agentLangChain 1.x 에서 모델과 도구 목록으로 에이전트를 만드는 함수입니다. langchain.agents 에 있습니다.
  • MCP(Model Context Protocol)모델 맥락 규약입니다. Model(모델), Context(맥락, 모델에게 건네는 자료), Protocol(규약)의 머리글자입니다. AI 앱이 바깥의 도구와 자료를 같은 방식으로 꽂아 쓰도록 정한 열린 규격입니다.
  • 프로토콜(protocol)프로그램끼리 무엇을 어떤 순서와 형식으로 주고받을지 정한 약속입니다. 원래 외교에서 지키는 의례와 절차를 뜻하는 말입니다.
  • MCP 서버(MCP server)도구와 자료를 MCP 규격으로 내놓는 프로그램입니다. server 는 "시중드는 쪽, 내주는 쪽"이라는 뜻입니다.
  • MCP 클라이언트(MCP client)MCP 서버에 붙어 도구 목록을 받고 도구를 부르는 쪽입니다. client 는 "의뢰인, 맡기는 쪽"이라는 뜻입니다.
  • 호스트(host)MCP 클라이언트를 품고 사용자와 만나는 AI 앱입니다. 이 장에서는 우리가 만드는 챗봇 프로그램입니다. host 는 "손님을 맞는 주인"이라는 뜻입니다.
  • stdio(standard input/output)표준 입출력입니다. 프로그램이 글을 받는 표준 입력(stdin)과 글을 내보내는 표준 출력(stdout)을 함께 부르는 말입니다. MCP 의 기본 전송 방식입니다.
  • JSON-RPC(JSON Remote Procedure Call)JSON 으로 "원격 프로시저 호출"을 주고받는 형식입니다. Remote(멀리 있는), Procedure(절차, 함수), Call(부르기)의 머리글자로, 다른 프로그램의 함수를 부르는 요청과 답을 JSON 으로 적습니다.
  • FastMCP파이썬 mcp 패키지에 든 MCP 서버를 쉽게 만드는 틀입니다. fast 는 "빠른"이라는 뜻으로, 몇 줄로 서버를 만든다는 데서 붙은 이름입니다.
  • langchain-mcp-adaptersMCP 서버의 도구를 LangChain 도구로 바꿔 주는 패키지입니다. adapter 는 "맞지 않는 두 단자를 이어 주는 연결 부품"이라는 뜻입니다.
  • MultiServerMCPClient여러 MCP 서버에 한꺼번에 붙는 langchain-mcp-adapters 의 클라이언트입니다. multi server 는 "여러 서버"라는 뜻입니다.
  • 비동기(asynchronous)기다리는 동안 다른 일을 할 수 있게 짠 실행 방식입니다. 파이썬에서는 async def 로 함수를 만들고 await 로 기다리며, asyncio.run() 으로 시작합니다. asynchronous 는 "시간을 맞추지 않는"이라는 뜻입니다.
  • 최소 권한(least privilege)일에 꼭 필요한 권한만 주는 원칙입니다. privilege 는 "특권, 권한"이라는 뜻입니다.
← 이전 절5장 · 먼저 큰 그림부터다음 절 →5장 · 모델에게 도구가 필요한 까닭