LabHub
배우기 러닝패스 코스

AI 에이전트 — 모델이 아니라 그래프 · 관측과 평가, 그리고 회귀 판정 · 실습

정확도는 그대로인데 다른 건이 틀린다

LabHub 에서 이어서 보기

목표

노드를 감싸 어디서 무엇을 했는지 장부에 남기고, 골든 세트로 정확도와 틀린 건의 목록을 낸다. 규칙을 고친 두 번째 판과 견주어 새로 깨진 것과 새로 고쳐진 것을 이름으로 가르고, 비용과 경로의 변화까지 잰다.

왜 중요한가

에이전트를 고친 뒤 "좋아졌나" 를 점수 하나로 묻는 것이 흔하다. 그런데 점수가 같아도 안에서 하나가 고쳐지고 하나가 깨졌다면 그것은 좋아진 것이 아니라 바뀐 것이다. 점수는 개수이고, 우리가 알아야 하는 것은 이름이다.
관측은 노드를 한 겹 감싸면 된다. 이때 중요한 선택이 하나 있다 — 시간도 재 두지만 판정에는 쓰지 않는다. 같은 코드·같은 입력이어도 시간은 기계와 부하에 따라 달라지고, 시간으로 판정하는 회귀 검사는 흔들리다가 결국 꺼진다. 판정에는 횟수와 크기를 쓴다.
골든 세트는 작아도 되지만 매번 같은 것이어야 한다. 그리고 지금 틀리는 건을 남겨 두어야 고쳤을 때 고쳐진 것이 보인다. 전부 맞는 골든 세트는 아무것도 잡아내지 못한다.
품질이 그대로여도 비용과 경로는 회귀할 수 있다. 노드 호출 수는 같은 입력에 늘 같은 값이라 회귀 지표로 쓸 수 있고, 발자국이 달라졌다면 답이 같아 보여도 다른 동작이다.
채점기는 여러분이 적어 둔 설명을 믿지 않는다. 여러분의 모듈을 실제로 불러 임의의 문의로 돌려 보고, 골든 세트의 판정과 두 판의 차이를 채점기가 따로 계산한 값과 대조한다.

단계

1. /root/work/ageval/evalkit.pyLABELS·ANSWER·classify_v1·State·노드 다섯(normalize·refund·shipping·other·finishROUTE·build_graph(version="v1")·run_one(text, version="v1") 을 만드세요.
2. PROFILE·reset_profile()·instrument(name, fn) 을 더하고 build_graph 가 모든 노드를 감싸서 더하게 하세요.
3. hotspots(texts, version="v1") 을 더해 노드별 호출 수와 가장 바쁜 노드를 내게 하세요.
4. GOLDENevaluate(version="v1") 을 더해 정확도와 틀린 건의 목록을 내게 하세요.
5. classify_v2compare(old="v1", new="v2") 를 더해 새로 깨진 건과 새로 고쳐진 건을 가르게 하세요.
6. cost_delta(old="v1", new="v2") 를 더해 노드 호출 수의 변화를 재게 하세요.
7. path_changes(old="v1", new="v2") 를 더해 발자국이 달라진 건을 찾게 하세요.
8. /root/work/ageval/eval_report.json/root/work/ageval/eval_report.md 에 잰 것을 기록하세요.

참고

단계 8개

  1. 문의를 갈래로 보낸다
  2. 노드를 감싸 장부를 남긴다
  3. 어느 노드가 제일 바쁜가
  4. 손으로 정답을 붙인 여섯 건
  5. 점수는 같은데 다른 건이 틀린다
  6. 품질이 같아도 비용이 달라진다
  7. 같은 답이 다른 길로 나왔다
  8. 무엇을 내보낼지 판단한다