RAG2026-5일18차시 · State 이해13 / 19← 이전목차다음 →MetaContents

18차시. State 이해

10. 자주 겪는 문제

출처: 원본 PDF 18차시_State이해.pdf 21쪽 · 쪽 그림 21쪽

증상원인과 해결
KeyError: 'query'초기 State에 query를 안 넣었습니다. / make_initial_state를 쓰세요
로그가 마지막 것만 남음Reducer를 안 붙였습니다. Annotated[List, / operator.add]
노드에서 바꾼 값이 반영 안 됨state를 직접 수정했습니다. 딕셔너리로 반환해야 합니다
다른 키가 사라짐State 전체를 반환했습니다. 바꾼 키만 반환하세요
retries가 리스트로 나옴카운터에 Reducer를 붙였습니다. 떼세요
TypedDict 필수 키 오류total=False를 붙이거나 초기값을 모두 넣으세요

10-1) State를 직접 수정하면 안 되는 이유

❌ 하지 마세요

출력
──────────────────────────────────
def bad_node(state):
    state["documents"].append(new_doc)   # 직접 수정
    state["retries"] += 1                # 직접 수정
    return {}

→ LangGraph가 변경을 인지하지 못할 수 있습니다
→ Reducer가 적용되지 않습니다
→ 여러 노드가 병렬 실행될 때 충돌합니다

✅ 이렇게 하세요

출력
──────────────────────────────────
def good_node(state):
    return {
        "documents": state["documents"] + [new_doc],
        "retries": state.get("retries", 0) + 1,
    }

→ 새 값을 만들어 반환합니다
→ LangGraph가 규칙대로 합쳐줍니다
← 이전 절18차시 · 9. 실습 ④ — State 흐름 추적하기다음 절 →18차시 · 체크리스트와 과제