AI 에이전트 — 모델이 아니라 그래프 · 그래프로 보는 에이전트 · 퀴즈
퀴즈: 에이전트는 상태 기계다
문항 8개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
에이전트가 멈추지 않는 사고의 가장 흔한 원인은?
- 모델이 답을 잘못 만들어서
- 그래프에 횟수 상한과 포기 경로가 없어서
- 도구 호출이 느려서
- 상태가 너무 커져서
recursion_limit 에 기대어 멈추게 하는 설계의 문제는?
- 한도를 넘으면 상태가 손상된다
- 한도 계산이 부정확하다
- 한도는 노드마다 따로 정할 수 없다
- 사용자는 오류를 보고 그때까지 쓴 비용은 그대로 나간다
상태 타입에 Annotated[list, operator.add] 를 쓰는 이유는?
- 타입 검사를 통과하기 위해
- 성능을 높이기 위해
- 리스트를 불변으로 만들기 위해
- 노드가 돌려준 값이 앞의 것을 덮어쓰지 않고 쌓이게 하려고
도구가 원하는 것을 못 찾았을 때 올바른 처리는?
- 포기 경로로 보내 '찾지 못했다' 를 답으로 만든다
- 예외를 던져 그래프를 멈춘다
- 모델에게 그대로 넘겨 답을 만들게 한다
- 빈 결과를 그대로 사용자에게 돌려준다
체크포인터의 thread_id 가 하는 일은?
- 여러 노드를 병렬로 실행하게 만든다
- 노드가 실행되는 순서를 정해 준다
- 대화를 가르는 열쇠 — 같은 id 는 이어지고 다른 id 는 따로 남는다
- 재귀 한도를 대화마다 다르게 설정한다
에이전트의 경로 기록(어느 노드를 지났는지)이 필요한 가장 실질적인 이유는?
- 규정상 실행 로그를 남겨야 해서
- 그래프 구조를 시각화하기 위해서
- 같은 질문에 다른 답이 나올 때 어디서 갈렸는지 알 수 있어서
- 체크포인터가 경로 기록을 요구해서
LangGraph 로 만든 에이전트에서 모델을 붙이는 일의 난이도는?
- 가장 어렵다 — 프롬프트가 전부다
- 노드 하나를 바꾸는 일이라 어렵지 않다
- 그래프 구조를 다시 설계해야 한다
- 체크포인터를 새로 구현해야 한다
에이전트 비용이 예상의 몇 배로 나왔다. 가장 먼저 볼 곳은?
- 루프를 도는 경로와 그 상한
- 모델의 단가표
- 프롬프트의 길이
- 체크포인터의 저장 용량