Skip to content

[Week1] StateGraph를 활용한 야구 규칙 관련 ReAct Agent 구현#4

Open
daexvk wants to merge 1 commit into
mainfrom
daexvk/week1-react-graph
Open

[Week1] StateGraph를 활용한 야구 규칙 관련 ReAct Agent 구현#4
daexvk wants to merge 1 commit into
mainfrom
daexvk/week1-react-graph

Conversation

@daexvk
Copy link
Copy Markdown
Collaborator

@daexvk daexvk commented May 10, 2026

변경점 👍

  • 야구 규칙 도메인용 ReAct 그래프를 StateGraph로 직접 구현했습니다.
  • create_agent 같은 high-level helper 없이 add_node, add_edge, add_conditional_edges로 그래프를 구성했습니다.
  • 야구 규칙 관련 mock 도구 3개를 추가했습니다.
    • lookup_baseball_rule: 규칙 검색
    • judge_game_situation: 경기 상황 판정
    • explain_baseball_term: 야구 용어 설명
  • ToolNode를 사용해 도구 호출 결과를 ToolMessage로 받아 다시 agent 노드로 순환하도록 구성했습니다.
  • route_after_agent 조건부 라우터로 tool call 여부에 따라 tools 또는 final 노드로 분기하도록 구현했습니다.
  • 최종 응답은 BaseballFinalAnswer Pydantic 스키마로 구조화했습니다.
  • 그래프 시각화 산출물로 graph.png를 생성했습니다.

테스트 💻

아래 명령어로 테스트했습니다.

python assignments/daexvk/week1/run.py

테스트 질문 결과:

질문 도구 호출 결과
무사 1,2루에서 내야 뜬공이 나왔는데 인필드 플라이야? judge_game_situation 인필드 플라이 가능성이 높다고 판정
보크가 정확히 무슨 뜻이야? explain_baseball_term 보크 의미 설명
좋은 야구 규칙 설명을 하려면 어떤 정보부터 확인해야 해? 없음 도구 없이 일반 설명 반환
플라이가 잡히기 전에 3루 주자가 먼저 출발하면 어떻게 돼? judge_game_situation 어필 아웃 대상일 수 있다고 판정

@daexvk daexvk self-assigned this May 10, 2026
@daexvk daexvk added the 과제 label May 10, 2026
@myeolinmalchi
Copy link
Copy Markdown
Member

넌 안되겠다 다시짜와라

@GiyunKim00
Copy link
Copy Markdown

GiyunKim00 commented May 10, 2026

단일 커밋에 변경 사항 다 때려박는 앱티브 총무 ㄷㄷ

if any(keyword in question for keyword in ["좋은", "어떤 정보", "설명하려면", "기준"]):
return AIMessage(content="도구 없이 답변할 수 있는 일반 질문입니다.")

if any(keyword in question for keyword in ["상황", "판정", "주자", "아웃", "플라이", "투구 동작"]):
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

휴리스틱 레전드

@myeolinmalchi myeolinmalchi self-requested a review May 10, 2026 15:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants