LangGraph로 상태 기반 대화(messages) 를 구성하고, LLM이 필요하면 Tool(calc) 를 호출한 뒤 결과를 바탕으로 답변하는 기본 에이전트 루프를 연습하는 프로젝트입니다.
- 상태(State):
messages리스트 (누적) - 체크포인터:
InMemorySaver+thread_id로 멀티턴 유지 - 툴 호출:
ToolNode+tools_condition - LLM:
openai_client.gemini래퍼 사용 (bind_tools,invoke지원 가정)
- messages 기반 멀티턴 대화 상태 관리 (
add_messages) - LLM이 tool call을 만들면 자동으로 ToolNode 실행
- 계산 툴
calc(expression)제공 (2+3,10-7,4*5,8/2) - tool 결과를 반영해 최종 답변 생성 (LLM이 생성)
- Python: 3.11 ~ 3.12 권장
- Python 3.14에서는
pydantic v1관련 경고/호환 이슈가 발생할 수 있습니다.
- Python 3.14에서는
- 패키지:
langgraphlangchain-core- (툴/모델 연동에 따라)
langchain또는 해당 provider 패키지
openai_client.gemini는 프로젝트 내/개인 래퍼로 가정합니다.
이 객체는.bind_tools(tools),.invoke(messages)를 지원해야 합니다.