[컨텍스트 엔지니어링] 5주차 Day 3 — 실패한 도구 호출을 어떻게 남길까

주차 주제: 도구가 돌려주는 것 | 제조 사례: 같은 실패를 일곱 번

오늘의 목표: 실패를 짧고 쓸모 있게 남겨 같은 실패를 막는다.

소요 시간: 30분


1. 실패가 더 위험합니다

· 성공하면 한 번입니다                    ★
· 실패하면 다시 부릅니다                  ★
· 그리고 또 실패합니다                      ★
그러면
  실패 기록이 쌓입니다.                    ★
  그리고 전부 창에 남습니다.               ★

2. ★ 같은 실패를 반복하는 이유

  1차  품목검색("브라켓A") → 없음            ★
  2차  품목검색("브라켓 A") → 없음           ★
  3차  품목검색("브라켓") → 없음             ★
  ...
  7차  품목검색("Bracket") → 없음            ★
왜 반복하나
· 오류 메시지가 무엇을 하라는지 안 알려 줍니다 ★
· 앞에서 뭘 해 봤는지 흐려집니다          ★
· 그래서 비슷한 걸 또 해 봅니다            ★

3. 오류에 넣을 넷

□ 무엇이 실패했나                           ★
□ 왜                                       ★
□ 무엇을 하면 되나                          ★
□ 다시 해 볼 만한가                         ★
넷째가 핵심입니다.                           ★
  "재시도: false"                            ★
그러면 모델이 포기하고 사람에게 넘깁니다.  ★

4. 재시도 여부를 가르는 법

  상황              재시도                   ★
  ──────────────────────────────────────
  일시적 오류        true                  ★
  (연결·한도)
  인자가 틀림        true (고쳐서)         ★
  권한 없음          false                 ★
  없는 데이터        false                 ★
  기능이 없음        false                 ★
「없는 데이터」 를 false 로 두는 게 중요합니다. ★
· 없는 걸 일곱 번 찾아도 없습니다         ★
· 그런데 모델은 계속 찾습니다               ★

5. 「없음」 을 실패로 만들지 마세요

헷갈리는 자리입니다.                         ★
  · 도구가 제대로 돌았고                   ★
  · 결과가 0건인 것
이건 성공입니다.                          ★
  {                                         ★
    "결과": [],
    "전체": 0,                               ★
    "안내": "해당 조건의 품목이 없습니다."     ★
  }
오류로 돌려주면
  · 모델이 도구가 고장 난 줄 압니다        ★
  · 그래서 다시 부릅니다                    ★
  · 그리고 또 0건입니다                     ★

6. 시도한 것을 남기세요

실패 기록을 다 남기지 말고                ★
시도 목록으로 압축하세요.                  ★
  [시도한 것]                                ★
   품목검색: "브라켓A", "브라켓 A",           ★
            "브라켓", "Bracket" → 전부 0건   ★
   → 검색어 말고 다른 방법이 필요         ★
세 줄입니다.                                 ★
그리고 이게

  · 반복을 막고                           ★
  · 사람에게 넘길 때 설명이 됩니다        ★

루프 엔지니어링 4주차 Day 3 과 같은 장치입니다.


7. 제조 현장의 실제

어느 업체, 챗봇이 못 찾으면 계속 헤맸습니다.
· 한 대화에서 도구를 14번 불렀습니다      ★
· 그중 11번이 실패                          ★
· 오류 메시지가 스택 트레이스였습니다     ★
  실패 기록만 8,000 토큰                  ★
그리고 결국 지어냈습니다.                 ★
고친 것
① 오류를 넷으로 (무엇·왜·할것·재시도)      ★
② 「없음」 을 성공으로                      ★
③ 실패를 시도 목록으로 압축              ★
④ 같은 도구 3번 실패하면 중단            ★
결과
  도구 호출  14회 → 3.2회                 ★
  실패 기록  8,000 → 240 토큰             ★
  지어냄     월 22건 → 3건                ★
그리고 ④ 덕분에
  "못 찾겠습니다" 라고 말하게 됐습니다.     ★

8. ★ ④ 중단이 가장 컸습니다

· 같은 도구 3번 실패 → 중단                 ★
· 전체 도구 호출 8번 → 중단                 ★
그리고 중단하면
  "시도한 것: ... 못 찾았습니다.             ★
   품번을 알려 주시겠습니까?"               ★
사람에게 넘깁니다.                        ★
이게 없으면
  · 끝없이 돌고                             ★
  · 비싸고
  · 결국 지어냅니다                       ★

루프 엔지니어링 3주차가 이것을 다룹니다.


9. 실패도 지표입니다

  도구        호출    실패율   주 실패 이유    ★
  ──────────────────────────────────────────
  품목검색     ____    ___%    ____________   ★
  실적조회     ____    ___%    ____________
  문서검색     ____    ___%    ____________   ★
실패율이 높은 도구는
· 설명이 나쁘거나 (인자를 틀리게 줍니다)   ★
· 검색이 나쁘거나
· 아예 쓸 수 없는 도구입니다              ★
그리고 주 실패 이유를 보면 고칠 것이      ★
바로 나옵니다.

10. 오늘 해 볼 것 (15분)

① 실패를 세어 보세요

  도구        호출    실패율                 ★
  ________    ____    ___%
  ________    ____    ___%                   ★
② 오류 모양을 보세요

  □ 스택 트레이스가 들어가나                 ★
  □ 무엇을 하라는지 있나                     ★
  □ 재시도 여부가 있나                       ★
  □ 「없음」 이 오류로 오나                   ★
③ 중단 규칙을 정하세요

  같은 도구 ___번 실패 → 중단                ★
  전체 호출 ___번 → 중단                     ★
  중단하면 무엇을 하나  ____________         ★

11. 내일 할 것

여러 번 부를 때 쌓이는 것.

한 번은 괜찮은데 열 번이면 창이 찹니다.


이 글은 컨텍스트 엔지니어링 과정의 5주차 3일차입니다. 과정 전체 보기

진도와 검색이 되는 판: AXPulse 기술따라가기

댓글

이 블로그의 인기 게시물

자재관리는 잘 쓰는데 BOM은 엑셀입니다

협력사 AI 로봇 도입, 공급망 스마트 제조 생태계 대응 전략

개발 테스트 자동화, AI 에이전트와 MCP 도입 전략