Agent 3

LLM Tool을 만들다 식겁한 이야기

Tool을 만들면서 정말 등골이 서늘했었을때가 한 번 있었다.그 일을 기념(?)하기 위해...그리고 나같은 바보가 더 이상 등장하지 않았으면 좋겠다는 마음에서 포스팅한다. Tool Calling중 오류가 났을때, LLM에게 전달되는 메세지에 굳이 정확한 오류를 전달할 필요 없다. 사진은 내가 f"{e!s}" 같은 방법으로 Exception 메세지를 출력하려고 하다 디코드에러를 만나서 LLM에게 전달된 메세지내용이다. 내용이 Word도 아니라서 엄청나게 많은 토큰이 한 순간에 소비되었고, 단 한번의 Tool Calling으로 $44를 날려버리게 되었다... 정확한 오류는 Logger로 따로 로깅하고, LLM에게는 "실패했다", "파일이 없다" 정도로만 오류 메세지를 출력해야한다. 또한 FileTree나..

LangGraph Agent에 장기기억(LTM)추가하기

LangGraph로 만든 Agent에 장기 기억을 추가하기 위해서는 기존 그래프에 새로운 노드와 도구를 추가해야한다.노드대화 전 저장된 기억을 불러오는 노드 (load_memories)도구관련 기억을 검색해서 가져오는 도구 (SearchRecallMemoriesTool)기억하는 도구 (SaveMemoriesTool)load_memories 노드가 하는 일?load_memories 노드부터 살펴보겠다. load_memories는 Agent가 작업을 처리하기 시작할때 이전 대화 내용을 기반으로 관련된 기억을 불러오는 노드다. 불러온 기억은 State에 [”recall_memories”]로 저장되고, 이는 나중에 기억과 관련된 SystemPrompt에 Context로서 제공된다.load_memories를 어떻..

사내 AI Agent 구축기

이건 정말 Agent를 만들어야하는데...사원들의 온보딩을 위해 회사업무에 필요한 질문에 대한 답변들을 제공해주는 챗봇을 개발하게 되었다. 노션도, 슬랙도 통합해야하고 사용자의 다양한 질문에 대답할 수 있어야했다. 꼼짝없이 Agent를 만들어야할 순간이 왔다. 이때까지도 번역을 위한 작은 RAG앱만 만들어본터라, Agent를 개발하는 것은 좀 막막했다. 심지어 시작은 신입 “개발자”들을 위한 챗봇이었다. 기본적인 회사 문서들 외에 코드베이스도 통합해야했다. 코드베이스 통합을 위해서 이리저리 찾아보다가 Codegen의 CodeAgent를 사용해봤다. CodeAgent를 사용하면서 어떻게 Agent를 개발해야하는지에 대한 많은 힌트를 얻었다. 내가 개발한 Agent도 CodeAgent와 크게 다르지않다. 그..