지원해 주셔서 감사합니다..
릴리스: "Sentinel-IR-MCP v0.2.2 on GitLab" (https://gitlab.com/jakubrojicek11/sentinel-ir-mcp/-/tree/v0.2.2?ref_type=tags)
패키지: "[email protected] on npm" (https://www.npmjs.com/package/sentinel-ir-mcp/v/0.2.2)
30초 요약
AI에게 소프트웨어 프로젝트를 조사하도록 요청한다고 상상해 보세요. 코드를 모든 줄을 읽게 할까요, 짧은 요약을 받게 할까요, 아니면 요약으로 시작하고 더 많은 증거가 필요할 때만 원본 코드를 열도록 할까요?
저는 GPT-6 Astra를 사용하여 Sentinel의 라이브 벤치마크로 이 세 가지 접근 방식을 테스트했습니다. 총 87개의 질문에 걸쳐, 전체 코드 접근 방식은 84개를 정확히 답변했고, 간결 정보 접근 방식은 82개에 답변하고 다섯 개는 해결하지 못했으며, 하이브리드 접근 방식은 87개 모두를 정확하게 답변했습니다.
또한 하이브리드 접근 방식은 전체 코드 접근 방식보다 추정 입력 토큰을 약 71% 적게 사용했습니다. 이는 통제된 테스트에서 나온 유망한 결과일 뿐, AI 에이전트가 현재 오류가 없다는 증거는 아닙니다.
"원본 벤치마크를 읽고 데이터를 직접 검사해 보세요." (https://dev.to/jackymencz/sentinel-benchmark-livejson-ifl)
- 전체 라이브러리를 읽어야 하는 조사관을 고용한다고 상상해 보세요
귀사가 제품 출시 전에 소프트웨어 프로젝트를 검사하기 위해 조사관을 고용했다고 상상해 보세요.
조사관에게는 간단한 임무가 주어집니다:
프로그램이 무엇을 하는지, 무엇에 접근할 수 있는지, 네트워크를 통해 통신하는지 여부, 파일을 쓰는지 여부, 그리고 특별한 주의가 필요한 작업이 포함되어 있는지 알아내는 것입니다.
단 하나의 복잡성이 있습니다.
프로젝트는 수백 또는 수천 라인의 코드를 포함합니다. 조사관은 프로젝트 이름만 보고 내부에서 무슨 일이 일어나는지 알 수 없습니다. 그들은 증거가 필요합니다.
이제 같은 임무를 받은 세 명의 조사관에게 각각 다른 상황을 가정해 봅시다.
첫 번째 조사관에게는 모든 원본 문서를 제공받습니다.
두 번째 조사관에게는 사전에 준비된 구조화된 보고서를 받습니다.
세 번째 조사관은 보고서로 시작하지만, 보고서에 충분한 정보가 없을 경우 원본 문서로 돌아갈 수 있습니다.
이 중 누가 가장 좋은 성과를 낼까요?
이것이 바로 제가 개발한 Sentinel 벤치마크의 핵심 질문입니다. 여기서 중요한 구분이 하나 있습니다. 이들은 서로 논쟁하거나 메시지를 교환하는 세 개의 독립적인 AI 에이전트가 아닙니다. 이 벤치마크는 동일한 명명된 모델인 GPT-6 Astra에게 정보를 제공하는 세 가지 방식을 비교합니다.
차이는 단순히 조사관의 지능 수준에 있는 것이 아닙니다. 그보다는 조사관이 얼마나 관련성 높은 증거를 받는지, 그리고 해당 증거가 불충분할 때 시스템이 어떻게 반응하느냐에 달려 있습니다.
- 첫 번째 조사관: 모든 것을 읽기 (read everything)
첫 번째 접근 방식은 RAW라고 불립니다. 모델은 원본 소스 코드를 받고 그 코드에 대해 질문에 답합니다.
이는 목격자 진술서, 사진, 보고서 및 모든 증거 자료 페이지가 포함된 완전한 사건 파일을 받는 탐정과 같습니다. 탐정은 작업을 시작하기 전에 아무것도 요약할 필요가 없습니다.
이 방식은 명백한 장점이 있습니다. 관련 세부 정보가 예상치 못한 곳에 숨겨져 있을 수 있으며, 원본 자료를 검사할 수 있기 때문입니다.
하지만 비용도 따릅니다. 모델이 질문을 조사해야 할 때마다, 제공되는 정보는 그 질문이 실제로 요구하는 것보다 훨씬 많은 자료를 포함할 수 있습니다. 예를 들어, 프로그램이 HTTP 엔드포인트를 노출하는지 묻는다고 가정해 봅시다. 답은 몇 줄의 코드에서 보일 수도 있습니다. 하지만 모델은 관련 없는 계산, 포맷팅, 로깅 및 기타 작업을 담당하는 코드까지 함께 받게 될 수도 있습니다.
추가 자료 자체가 반드시 해로운 것은 아닙니다. 단지 현재 질문과 관련성이 항상 높은 것은 아닐 뿐입니다.
AI 시스템에서 모델에 제공되는 정보 조각들은 종종 토큰(tokens)으로 표현됩니다. 토큰은 모델이 텍스트를 읽고 응답을 생성할 때 처리하는 단위입니다.
입력 크기가 커지면, 모델과 서비스에 따라 더 많은 처리가 필요하고 사용 비용이 증가할 수 있습니다.
중요한 점은 AI에게 정보를 많이 제공하는 것이 자동으로 더 나은 정보를 제공하는 것과 같지는 않다는 것입니다.
때로는 추가된 페이지들이 조사관이 정확히 필요한 내용을 담고 있을 수도 있고, 때로는 그 대부분이 질문과 무관할 수도 있습니다.
1. 조사관 2호: 구조화된 지도로 시작하기
두 번째 접근 방식은 IR(Intermediate Representation), 즉 중간 표현이라고 불립니다.
모델이 원본 코드만 받는 대신, 해당 코드에서 추출한 중요한 사실들의 구조화된 설명을 받게 됩니다.
기본적인 질문에 답하기 위해 모든 방을 검사해야 하는 대신 건물의 평면도를 받는 것을 상상해 보세요.
그 계획도는 출입구, 비상구, 전기실, 제한 구역의 위치 등을 식별할 수 있습니다. 전체 건물을 탐색하지 않고도 그 지도만으로 많은 질문에 답할 수 있습니다.
Sentinel-IR는 소프트웨어에도 유사한 아이디어를 적용합니다.
그 출력물은 다음과 같은 사실들을 식별할 수 있습니다:
- 프로그램이 시스템의 다른 부분에 노출하는 함수(functions).
- 존재하는 HTTP 라우트(HTTP routes).
- 가져오는 외부 라이브러리(external libraries).
- 프로그램이 읽는 환경 변수(environment variables).
- 코드에서 나타나는 네트워크, 파일 시스템 또는 프로세스 관련 작업.
- 추가 검사가 필요한 보안 관련 패턴.
이러한 구별은 중요합니다. 왜냐하면 AI가 질문에 답할 필요가 있을 때마다 원본 텍스트에서 모든 구조적 세부 사항을 재발견할 것으로 기대되지 않기 때문입니다.
AI는 준비된 지도를 받습니다.
하지만 여기에는 함정이 있습니다.
지도는 해당 영역의 중요한 특징들을 정확하게 기록했을 때만 유용합니다.
관련된 연산(operation)이 표현에서 누락된다면, 모델은 필요한 증거를 결코 볼 수 없을 수도 있습니다. 그리고 만약 그 표현이 무언가를 너무 공격적으로 단순화한다면, 모델은 잘못된 결론에 도달할 수도 있습니다.
따라서 압축된 표현이 자동적으로 더 나은 표현인 것은 아닙니다.
그것은 중요한 정보를 보존해야 합니다.
- 놀라운 점: 요약본이 원본보다 클 수 있다
이야기가 흥미로워지는 지점입니다.
사람들은 종종 압축되거나 요약된 버전의 무언가가 항상 원본보다 작아야 한다고 가정합니다.
하지만 구조화된 소프트웨어 정보에는 그렇지 않습니다.
발표된 벤치마크의 작은 예시 하나에서, 27줄짜리 HTTP 서버는 원본 소스에 대해 추정 입력 크기가 163 토큰이었으나, 그 IR 표현에서는 272 토큰이었습니다.
구조화된 버전이 더 큰 것이었습니다.
왜일까요?
원본 파일 자체가 이미 비교적 작했기 때문입니다. 구조화된 보고서 역시 모델에게 사실을 이해시키기 위해 레이블, 필드 이름, 목록 및 설명을 필요로 합니다.
이러한 추가 요소들은 소스가 짧을 경우 원본 텍스트보다 더 많은 비용을 초래할 수 있습니다.
이제 훨씬 더 큰 파일을 고려해 봅시다.
약 393줄 분량의 샘플에 대해, 벤치마크는 소스에 대해 추정 2,861 토큰과 IR 표현에 대해 734 토큰을 기록합니다.
약 951줄 분량의 샘플에 대해서는 수치가 소스에 대해 7,186 토큰, IR에 대해 498 토큰입니다.
갑자기 지도가 영역보다 훨씬 작아집니다.
이것이 바로 이 접근 방식을 조사해야 하는 실질적인 이유입니다.
모든 파일이 축소된다는 보장은 아닙니다. 이는 간결한 관련 사실들만으로 질문에 답할 수 있을 때, 대량의 소스 코드를 반복적으로 전송하는 것을 피하려는 시도입니다.
원래 자료와 작업에 필요한 유용한 정보 사이의 차이가 클수록, 입력 토큰을 절약할 기회가 더 많다는 의미입니다.
- 조사관 3호: 원본 증거에 접근 가능한 지도
세 번째 접근 방식은 IR + RAW라고 불립니다.
이것은 이전 두 가지 접근 방식을 결합한 것입니다. 모델은 구조화된 정보로 시작합니다. 이 정보만으로는 충분하지 않을 때, 워크플로우는 에스컬레이션하여 원본 소스를 참조할 수 있습니다.
우리가 다루던 건물 검사관으로 돌아가 봅시다.
검사관은 평면도를 가지고 업무를 시작합니다. 여기에는 주 출입구, 비상구 및 제한 구역이 표시되어 있습니다.
대부분의 질문은 이 평면도만으로 쉽게 답할 수 있습니다.
하지만 검사관은 '제한 구역'이라고 표시된 방으로 이어지는 문을 발견합니다. 평면도는 그 문을 식별해 주지만, 방 안에서 무슨 일이 벌어지는지는 설명하지 않습니다.
상식적인 검사관은 추측하지 않습니다.
그들은 원본 증거에 대한 접근을 요청합니다.
이것이 바로 하이브리드 접근 방식의 핵심 아이디어입니다. 충분할 때는 간결한 정보를 사용하고, 더 많은 세부 정보가 필요할 때는 원본 소스로 돌아갈 경로를 유지하는 것입니다.
이는 두 극단적인 선택지 중 하나를 고르는 것과는 다릅니다.
시스템은 매번 모든 것을 전송할 필요가 없으며, 초기 요약에 가능한 모든 답변이 포함되어 있다고 가장할 필요도 없습니다.
벤치마크에서 IR + RAW 변형 모델은 87개의 질문에 대해 93회의 모델 호출을 기록했습니다. 이는 이 테스트에서의 목표 에스컬레이션과 일치하는, 질문당 한 번의 호출 기준보다 6회가 추가된 수치입니다.
이러한 추가 작업은 중요합니다. 원본 소스 접근은 공짜가 아니며, 추가 호출은 시간을 더할 수 있습니다.
하지만 잘못된 답변 역시 공짜가 아닙니다. 소프트웨어 보안 워크플로우에서 위험한 작업에 대한 부정확한 결론은 추가적인 조사보다 훨씬 더 비쌀 수 있기 때문입니다.
따라서 실제 설계 질문은 '어떻게 모든 추가 호출을 제거할 수 있을까?'가 아닙니다.
'언제 추가 호출을 하는 것이 가치가 있는가?'입니다.
- 실제 벤치마크는 무엇을 보여주었나?
발표된 Sentinel 벤치마크는 GPT-6 Astra를 사용하여 총 87개의 질문에 대한 실시간 실행 결과를 기록했습니다.
다음은 보고된 결과입니다.
| 접근 방식 | 정답 수 | 미해결 문제 수 | 추정 입력 토큰 |
|---|
| RAW | 87개 중 84개 | 0 | 279,476 |
| IR | 87개 중 82개 | 5 | 58,549 |
| IR + RAW | 87개 중 87개 | 0 | 80,340 |
벤치마크가 보고한 정확도 수치는 RAW의 경우 96.6%, IR의 경우 94.3%, 그리고 IR + RAW의 경우 100%입니다.
이러한 차이는 우리에게 중요한 사실을 알려줍니다.
첫째, 압축된 표현(compact representation)은 측정된 입력 볼륨을 상당히 줄였습니다.
IR은 RAW보다 추정 입력 토큰을 약 79% 적게 사용했습니다.
둘째, 입력 볼륨이 줄어든 것이 자동으로 전체 결과를 보존하지는 못했습니다.
독립적인 IR 접근 방식은 다섯 개의 질문을 미해결 상태로 남겼습니다. 더 적은 입력을 사용했지만, 모든 질문에 답하지는 못했습니다.
셋째, 하이브리드 접근 방식(hybrid approach)은 이번 특정 실행에서 누락된 답변들을 복구했습니다.
IR + RAW는 RAW보다 추정 입력 토큰을 약 71% 적게 사용했으며, 벤치마크의 예상 답변에 따라 87개 질문 모두를 정확하게 답했습니다.
이러한 결과들은 압축된 사실(compact facts)과 원본 증거 접근성을 결합하는 시스템에 대한 추가 조사를 뒷받침합니다.
하지만 이들이 하이브리드 접근 방식이 항상 대안보다 우수할 것이라는 점이나, 비지도 생산 결정(unsupervised production decisions)을 내릴 준비가 되었다는 것을 확립하지는 않습니다.
87개의 질문은 유용한 증거일 뿐이며, 모든 가능한 코드베이스에 대한 보장은 아닙니다.
- 수치에 관한 중요한 세부 사항
이러한 결과를 해석할 때 중요하게 고려해야 할 기술적 한계점(technical limitation)이 있습니다.
벤치마크는 텍스트 길이의 네 분의 일로 토큰 수를 추정합니다. 이 근사치를 모든 변형에 걸쳐 일관되게 적용했습니다.
따라서 이 수치들은 입력의 대략적인 크기를 비교하는 데 유용합니다. 이것들은 모델의 실제 토큰화(tokenization)나 AI 제공업체가 청구하는 금액에 대한 정확한 측정치는 아닙니다.
이러한 구별이 중요한 이유는 실제 토큰 수는 콘텐츠와 토크나이저(tokenizer)에 따라 달라지며, 비용 또한 모델과 서비스의 가격 책정 방식에 의존하기 때문입니다.
이번 실행에서 측정된 경과 시간(elapsed times)은 또 다른 점을 강조합니다. 즉, 추정 입력 토큰 수가 적다고 해서 하이브리드 워크플로우가 자동으로 가장 빠른 것은 아니라는 것입니다.
기록된 경과 시간은 RAW의 경우 약 155초, IR의 경우 147초, 그리고 IR + RAW의 경우 159초였습니다. 이 수치들은 일반적인 성능 보장이 아니라 이번 특정 실행에서 측정된 값입니다.
따라서 여기서 가장 강력한 결과는 하이브리드 시스템이 항상 더 저렴하거나, 빠르거나, 또는 더 정확하다는 것이 아닙니다.