Ollama 에이전트의 도구가 실패할 때 어떤 일이 일어나는지 테스트하라
원문 제목 — Test what happens when your Ollama agent’s tools fail
📄 전문 번역
도구 사용 에이전트용 로컬 장애 시뮬레이터 InfernoSIM의 개발자가 v4.2를 공개했다. 이번 릴리스는 여러 도구 호출이 포함된 스트림을 포함해 지원되는 기록된 Ollama NDJSON 스트림에서 개별 도구 호출의 인자를 대상으로 지정할 수 있다. 동시 HTTP/MCP 트래픽을 위한 인과 의존성 발견과 시드 기반 스케줄링 기능도 추가되었다.
검토된 의존성 범위 내에서 요청과 응답 순서를 바꾸고, 장애를 주입하고, 실패 사례를 회귀 테스트로 보존할 수 있다. 테스트할 수 있는 상황으로는 선택한 단일 도구 호출의 인자가 잘못되었거나 누락된 경우, 도구 작업은 완료됐지만 응답이 유실된 경우, 재시도가 애플리케이션 상태를 중복 생성하는 경우, 응답 지연으로 애플리케이션이 오래된 데이터를 사용하게 되는 경우가 꼽혔다.
리플레이는 기록된 모델 응답을 사용하므로 각 장애 사례에 추가 추론 실행이 필요하지 않다. 애플리케이션의 데이터베이스나 파일에 대한 별도 검증을 지정할 수도 있다.
개발자는 공식 Ollama Python SDK로 로컬 Ollama 호환성과 기준 및 변형된 기록 스트림을 테스트했다고 밝혔다. 지원되지 않는 스트림 형태나 기록 범위 밖의 호출은 명시적으로 실패 처리된다. 이 프로젝트는 MIT 라이선스로 제공되며 호스티드 계정 없이 로컬에서 실행된다.
도구와 함께 Ollama를 사용하는 사용자에게 비식별화된 테스트 장애 사례로 시험해 보기를 요청했다. 모델, 클라이언트와 워크플로, 특히 표현할 수 없는 사례가 있다면 공유해 달라고 당부했다. 개발자는 프로젝트 저자임을 밝혔다.
💬 주요 댓글 번역 (4)
🔍 루키 분석
로컬에서 실행되는 도구 사용 에이전트용 장애 시뮬레이터 InfernoSIM이 v4.2로 업데이트되었다. 기록된 Ollama NDJSON 스트림을 재생하는 방식으로 개별 도구 호출 인자에 장애를 주입할 수 있고, 기록된 모델 응답을 활용해 추가 추론 없이 실패 사례를 회귀 테스트로 남길 수 있다. 개발자는 공식 Ollama Python SDK로 호환성을 검증했으며 MIT 라이선스로 배포된다. 한편 기록에 없는 모델의 재시도 경로는 무효 처리되는 등 리플레이 방식의 한계가 댓글에서 논의되었다.
— 루키 · glm-5.3-flash:cloud
내가 원하면서도 존재하는지 몰랐던 바로 그런 도구다. 추론 크레딧을 소모하지 않고 특정 도구 호출에 장애를 주입하는 방식이 영리하다. 특히 요청 순서에 시드를 적용해 간헐적 동시성 버그를 잡아내는 부분이 돋보인다.
감사한다. 기록해 두면 모델을 다시 호출하지 않고도 다양한 장애와 순서를 계속 시도할 수 있다. 도구 호출 워크플로가 있다면 사용해 보고, 설정이 번거로운 경우를 포함해 결과를 알려달라.
리플레이는 장애에 반응하는 모델을 어떻게 처리하는가? 도구 호출이 실패하고 실제 모델이라면 다른 인자로 재시도할 상황에서 기록된 스트림에는 그에 대한 응답이 없다. 그 지점에서 명시적으로 실패 처리하는지, 아니면 복구 단계에 실시간 모델을 연결하는 방법이 있는지 궁금하다.
맞다. 기록 기반 리플레이의 실제 한계다. 장애로 인해 에이전트가 다른 모델 요청을 보냈는데 기록에 일치하는 교환이 없으면 해당 실행은 무효로 표시된다. 이를 에이전트 실패로 간주하거나 응답을 임의로 만들어내지는 않는다. v4.2에는 그 복구 단계를 위한 실시간 모델 폴백이 내장되어 있지 않다. 복구 경로를 별도로 기록해 리플레이할 수는 있지만 캡처한 경로만 테스트할 수 있다. 따라서 애플리케이션 수준의 재시도와 기록된 복구 동작은 테스트할 수 있지만, 장애 후 실시간 모델이 계획을 어떻게 바꾸는지 탐색하려면 실시간 추론이 필요하다.