소개
여러가지 자동화도구에서 n8n의 ai agent노드를 사용해보았습니다.
보통 노드는 하나의 기능을 하는 데, 이메일을 가져온다거나, 구글시트에 행을 추가한다거나 하죠.
n8n에서 가장 돋보이는 기능을 하는 ai agent노드는 메가노드라고 할 정도로 여러가지 기능이 탑재되어 있습니다. 특히 LLM에 검색(retrieve), 메모리(memory), 도구(tool) 를 하나의 노드에 장착할 수 있습니다.
이번 사례에서는 ai agent노드에서 특히, 도구호출하는 방법을 알아보겠습니다.
진행 방법
일단, 간단한 워크플로우를 보시죠.
이 사진에 모든 내용이 담겨있어요.
간단한 챗봇을 구현한 건데, 백엔드로 ai agent가 돌아가는 모습니다.
저는 LLM은 gemini모델을 사용하고, 도구를 2가지로 세팅했어요. 하나는 url을 주면 그 내용을 스크랩하는 것이고, 또 하나는 네이버플레이스순위를 체크해주는 것이죠. 2개 모두 제가 서버를 만들어서 동작하는 것입니다.
간단한 서버를 만들어서 ai agent가 호출하고 그 결과를 바탕으로 대화를 생성해주면 좋겠다는 생각에서 사례를 시작하게 되었습니다.
tool을 만듭니다. 둘다 서버호출을 할 거라서 HTTP Request Tool을 선택합니다.
일반적인 HTTP Request 처럼 세팅합니다. curl을 적용해서 가져온다거나, 직접 입력해서.
tool을 호출할 때 가장 중요한 게 있어요. tool은 누가 호출할까요? 바로 LLM이 호출하게 되는 데요. 그 판단을 하기위해서 tool이 뭘 하는 지를 자세하게 써줘야해요. Description부분에. 왜냐하면, 이내용을 보고 LLM이 그 tool을 호출하기 때문이죠. 그 과정은 이렇습니다.
채팅에 url이 올라오고 그 내용을 알려달라고 하면?
LLM이 어? url의 내용을 알려달라고? 그럼 scrapper도구를 호출해서 내용을 받아와야겠다?
라고 한다는 거죠. (제미나이야? 내 말이 맞지?)
다음은 채팅결과입니다.
url의 내용을 문의할 때,
플레이스순위를 알려달라고 할 때,
채팅 url입니다. 언제 닫을 지 모르겠지만, 한번 테스트해봐주세요.
플레이스순위를 체크할 때는 네이버플레이스 업체주소와 검색키워드를 채팅창에 입력하시고 대화를 진행하시면 됩니다. https://n8n.automationpro.online/webhook/c90a9846-b9ab-41a9-8a4a-ceca5b7aa718/chat
결과와 배운 점
ai agent를 많이 해본 건 아니지만, 원하는 도구를 세팅하고 그걸 호출한다는 것은 참 매력적인 것 같아요.
마치 점점 더 자연어를 잘 알아듣는 똑똑한 친구가 태어났어요.
도움 받은 글 (옵션)
15기문과생도 n8n
15기 n8n에이전트
https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/