TrajAudit: Automated Failure Diagnosis for Agentic Coding Systems
본 논문은 노이즈가 많고 긴 트래젝토리를 필터링하고 사전 지식을 활용하여 리포지토리 수준 에이전트 코딩 시스템의 실패 진단을 개선하도록 설계된 새로운 프레임워크인 TrajAudit 를 소개하며, 이는 기존 베이스라인에 비해 새로운 RootSE 벤치마크에서 현저히 높은 로컬라이제이션 정확도와 토큰 효율성을 달성합니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
상상해 보세요. 거대하고 복잡한 소프트웨어 라이브러리의 버그를 수정하는 매우 똑똑한 자동화 로봇 조수 (AI 에이전트) 가 있다고 가정해 봅시다. 때로는 이 로봇이 일을 완벽하게 해내기도 하지만, 다른 경우에는 문제를 해결하려다 오히려 엉망으로 만들고 소프트웨어는 여전히 충돌합니다.
그 핵심적인 질문은 바로 이것입니다: 정확히 어디서, 왜 로봇이 실수한 것일까요?
이것이 바로 'TrajAudit'라는 논문이 해결하려는 문제입니다. 여기서는 이 논문의 아이디어를 간단한 비유를 통해 설명해 드리겠습니다.
문제: " haystack 속의 바늘"
로봇이 버그를 수정하려 할 때, 그것은 **궤적 (trajectory)**이라고 불리는 긴 디지털 발자국 흔적을 남깁니다. 이 흔적에는 로봇이 생각한 모든 생각, 열었던 모든 파일, 입력한 모든 명령어, 그리고 본 모든 오류 메시지가 포함됩니다.
- Haystack (건초더미): 이러한 흔적들은 놀라울 정도로 길며 (때로는 100 단계 이상), '노이즈'로 가득 차 있습니다. 로봇이 500 페이지짜리 매뉴얼을 읽거나, 중요하지 않은 코드 전체 장을 복사하거나, 폴더 안의 모든 파일을 나열하는 상황을 상상해 보세요. 이것이 바로 '건초더미'입니다.
- Needle (바늘): 그 거대한 정보 더미 어딘가에 로봇이 나쁜 결정을 내린 한 가지 특정 순간 (즉, '바늘') 이 존재합니다.
- 옛날 방식: 이전의 방법들은 실수를 찾기 위해 전체 500 페이지 매뉴얼을 한 번에 읽으려 했습니다. 하지만 인간과 마찬가지로 AI 도 너무 많은 텍스트에 압도되어 명백한 단서들을 놓치기 시작합니다. 이는 한숨에 책 전체를 읽으며 소설의 오타를 찾으려 하는 것과 같습니다.
해결책: TrajAudit (탐정)
저자들은 새로운 시스템인 TrajAudit를 개발했습니다. 로봇이 모든 것을 한 번에 읽으려 하는 대신, 두 명의 특별한 조수를 둔 탐정 에이전트를 구축한 것입니다.
이 탐정 에이전트를 즉시 전체 파일을 읽지 않는 베테랑 수사관으로 생각하세요. 대신 그들은 두 가지 똑똑한 도구를 사용합니다:
1. "선행 지식" 조수 (직감)
수사관이 엉망진창인 흔적을 보기조차 전에, 이 조수는 오류 메시지 (충돌 보고서) 와 테스트 코드 (로봇이 따르지 못한 규칙) 를 먼저 살펴봅니다.
- 비유: 수사관이 범죄 현장에 도착했다고 상상해 보세요. 엉망인 방을 보기 전에, "피해자가 독살당했다"고 적힌 경찰 보고서를 읽습니다. 이제 수사관은 직감을 갖게 됩니다: "좋아, 가구를 볼 필요는 없어. 부엌과 음료수를 봐야 해."
- 논문에서: 이 모듈은 AI 에게 '예비 진단'을 제공합니다. 그것은 메인 에이전트에게 "파일 나열을 하던 부분이 아니라 데이터베이스를 보던 부분에 집중해"라고 말합니다. 이렇게 하면 AI 가 노이즈 속에 길을 잃는 것을 막을 수 있습니다.
2. "의미론적 중요성 접기" 조수 (요약자)
이 조수는 길고 엉망인 흔적을 보며 묻습니다: "이 정보가 실제로 충돌과 관련이 있을까?"
- 비유: 대화의 100 페이지 분량 기록이 있다고 상상해 보세요. 대부분은 사람들이 "안녕하세요", "어떻게 지내세요", "이 파일 확인해 볼게요"라고 말하는 내용입니다. 하지만 42 페이지에 누군가 "잘못된 파일을 삭제했어요!"라고 말합니다.
- 옛날 방식은 1~100 페이지를 모두 읽습니다.
- 이 조수는 1
41 페이지와 43100 페이지를 접어 (숨겨) 중요한 문장만 보이게 합니다. '오류 로그'와 '코드 변경 사항'은 유지하되, 지루한 '파일 나열' 같은 노이즈는 숨깁니다.
- 논문에서: 패턴 매칭을 사용하여 코드 변경 사항과 '오류'나 '예외' 같은 키워드를 찾습니다. 그 외의 모든 것은 작은 자리 표시자로 압축됩니다. 이로 인해 흔적이 짧고 깔끔해집니다.
3. 탐정 에이전트 (수사관)
이제 메인 탐정 에이전트는 첫 번째 조수로부터 받은 직감과 함께 이 짧고 깔끔한 요약을 살펴봅니다.
- "온디맨드" 트릭: 요약만으로는 100% 확신이 서지 않으면, 탐정은 "잠깐, 3 단계의 전체 세부 사항을 봐야겠어"라고 말할 수 있습니다. 그러면 시스템에 그 특정 부분만 '펼쳐달라'고 요청합니다.
- 결과: 에이전트는 로봇이 실수한 정확한 단계를 찾아내고, 왜 그 실수가 있었는지 설명하며, 500 페이지 분량의 노이즈에 혼란을 느끼지 않고 이를 해냅니다.
증명: RootSE (시험)
자신들의 시스템이 작동함을 증명하기 위해, 저자들은 쉬운 작업으로만 테스트할 수 없었습니다. 그들은 정말 어려운 시험이 필요했습니다.
- 그들은 RootSE라는 새로운 벤치마크를 만들었습니다.
- 시험: 그들은 AI 에이전트가 소프트웨어 버그 수정에 실패한 93 개의 실제 사례를 가져왔습니다. 이들은 단순한 작업이 아니었습니다. 수천 단계의 데이터를 생성한 복잡하고 여러 파일에 걸친 작업들이었습니다.
- 점수: 그들이 새로운 '탐정' 시스템을 이전 방법들과 비교하여 테스트했을 때:
- 정확도: 새로운 시스템은 기존 최고 방법보다 24% 더 자주 정확한 실수를 찾아냈습니다.
- 효율성: 지루한 부분을 읽는 시간을 낭비하지 않았기 때문에 컴퓨터 자원 (토큰) 을 18% 더 적게 사용했습니다.
요약
이 논문은 AI 에이전트가 복잡한 코딩 작업에서 실패할 때, 단순히 실수의 전체 역사를 그들에게 주입해서는 안 된다고 주장합니다. 그들은 압도당하게 됩니다.
TrajAudit는 AI 가 읽기를 시작하기 전에 똑똑한 필터와 좋은 직감을 제공하는 것과 같습니다. 지루한 노이즈는 숨기고, 중요한 단서는 강조하며, 실수가 발생한 특정 순간에 AI 가 초점을 맞추도록 합니다. 이는 로봇이 왜 실패했는지 파악하는 속도와 정확도를 훨씬 높여줍니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.