우리는 AI 에이전트에 대한 'filesystems 와 bash 가 최적의 추상화 (abstraction) 라는' 믿음이 AI 커뮤니티에서 커지고 있다는 점을 공유하기 위해 Ankur Goyal(Braintrust) 을 초대했습니다. 논리는 타당합니다: LLM 들은 코드, 터미널, 파일 탐색에 대해 광범위하게 훈련되었으므로 에이전트에게 쉘 (shell) 을 제공하고让其 작업하도록 하면 될 것입니다. 심지어 코딩을 하지 않는 에이전트도 이 접근법에서 혜택을 볼 수 있습니다. Vercel 의 최근 게시물은 판매 통화, 지원 티켓 및 기타 구조화된 데이터를 파일 시스템에 매핑하여 이를 보여주었습니다. 에이전트는 관련 섹션을 grep 으로 찾아내고 필요한 내용을 가져와 필요할 때 컨텍스트를 구축합니다.
filesystems 와 bash 로 에이전트 구축하지만, 대안적인 관점도 검증해 볼 가치가 있습니다. 파일 시스템은 컨텍스트 탐색과 검색에 적합한 추상화일 수 있지만, 구조화된 데이터를 쿼리하는 것은 어떨까요? 우리는 이를 알아보기 위해 eval harness 을 구축했습니다.
우리는 에이전트에게 GitHub issue 와 pull request 데이터셋을 쿼리하도록 지시했습니다. 이 유형의 반구조화된 데이터는 고객 지원 티켓이나 판매 통화 전사 같은 실제 사용 사례를 반영합니다. 질문의 복잡성은 다음과 같이 다양했습니다:
세 가지 에이전트 접근 방식이 경쟁했습니다: 각 에이전트는 동일한 질문을 받았으며 정확도에 따라 점수화되었습니다.
SQL 이 압도적인 성과를 보였습니다. 정확도는 100% 에 달한 반면, bash 는 오직 53% 만 달성했습니다. bash 는 또한 7 배 더 많은 토큰을 사용했고 비용은 6.5 배 더 높았으며, 실행 시간은 9 배 더 오래 걸렸습니다. 심지어 기본 파일 시스템 도구 (검색, 읽기) 도 전체 bash 액세스보다 성능이 좋았으며 63% 의 정확도를 달성했습니다.
결과를 직접 확인하실 수 있습니다: SQL experiment, bash experiment, filesystem experiment.
놀라운 발견 중 하나는 bash 에이전트가 일반적인 에이전트 워크플로우에서 드물게 나타나는 방식으로 , , , , 및 를 생성했다는 점입니다. 모델은 셸 스크립팅에 대한 깊은 지식을 가지고 있지만, 그 지식이 더 나은 작업 성과로 이어지지 않았습니다.
highly sophisticated shell commands find grep jq awk xargs
eval 은 주의가 필요한 실질적인 문제를 드러냈습니다. 밀리초 내에 실행되어야 하는 명령어들이 10 초 동안 타임아웃되었습니다. culprit 는 68,000 개 파일에 걸친 calls 였습니다. 이를 해결하기 위해 just-bash 를 최적화했습니다.
bash 에이전트는 쿼리하는 JSON 파일의 구조를 알지 못했습니다. 시스템 프롬프트에 스키마 정보와 예제 명령어를 추가하는 것이 도움이 되었지만, 격차를 좁히기에는 충분하지 않았습니다.
Missing schema context.
실패한 사례를 수동으로 확인한 결과, '예상'된 답변이 실제로 틀렸거나 에이전트가 스코어가 패널티를 부과한 추가 유효한 결과를 찾은 몇 가지 질문이 있었습니다. 모호성이나 데이터셋 불일치를 해결하는 수정 사항이 포함된 다섯 가지 질문이 있었습니다.
Eval scoring issues.
두 가지 수정 사항과 eval 자체에 대한 수정 사항을 적용한 후, 성능 격차는 상당히 줄어들었습니다.
그 다음 우리는 다른 아이디어를 시도했습니다. 하나의 추상화를 선택하는 대신 에이전트에게 두 가지를 모두 제공했습니다:
hybrid agent 는 흥미로운 행동을 개발했습니다. SQL 쿼리를 실행한 다음 결과를 grep 으로 검증하는 방식으로 작동했습니다.