LangChain으로 에이전트형 시스템 설계하기
Dilini K. Sumanapala, PhD
Founder & AI Engineer, Genverv, Ltd.


Agent: The 5th of November is famous for the Gunpowder treason and
plot...
string == string[::-1] Agent: Yes, "madam" is a palindrome...
# 데코레이터로 도구 레이블 지정 및 입력 형식을 문자열로 설정 @tooldef date_checker(date: str) -> str:"""주어진 날짜(형식 무관)에 대한 주요 역사적 사건을 제공합니다."""try: # 날짜를 해석하고 역사적 사건을 생성하도록 LLM 호출 answer = llm.invoke(f"List important historical events that occurred on {date}.")# 응답 반환 return answer.content# 조회 오류에 대한 예외 블록 설정 except Exception as e: return f"Error retrieving events: {str(e)}"
@tool# 입력 형식을 문자열로 설정 def check_palindrome(text: str):"""단어나 구가 회문인지 확인합니다."""# 영숫자가 아닌 문자를 제거하고 소문자로 변환 cleaned = ''.join(char.lower() for char in text if char.isalnum())# 뒤집은 텍스트가 원본과 같은지 확인 if cleaned == cleaned[::-1]: return f"The phrase or word '{text}' is a palindrome." else: return f"The phrase or word '{text}' is not a palindrome."
# ToolNode 정의에 필요한 모듈 가져오기 from langgraph.prebuilt import ToolNode# 도구 목록 tools = [wikipedia_tool, date_checker, check_palindrome]# 도구를 ToolNode()에 전달 tool_node = ToolNode(tools)# 도구를 LLM에 바인딩 model_with_tools = llm.bind_tools(tools)
LangChain으로 에이전트형 시스템 설계하기