
Evaluating AGENTS.md: Are Repository-Level Context Files Helpful for Coding Agents?
핵심 포인트
- 1본 연구는 AGENTS.md와 같은 repository-level context 파일이 코딩 에이전트의 작업 완료 성능에 미치는 영향을 평가했습니다.
- 2놀랍게도, LLM이 생성한 context 파일은 에이전트의 task 성공률을 감소시키고 추론 비용을 20% 이상 증가시키는 경향이 있었으며, 개발자가 제공한 파일은 성능을 미미하게 향상시켰습니다.
- 3Context 파일은 에이전트의 더 광범위한 탐색(예: 철저한 테스트 및 파일 탐색)을 유도하고 지침을 따르지만, 불필요한 요구사항이 작업을 더 어렵게 만들어 효율성을 저해한다고 결론지었습니다.
이 연구는 소프트웨어 개발에서 널리 퍼진 관행인 AGENTS.md와 같은 repository-level context files가 코딩 에이전트의 실제 작업 해결에 실제로 도움이 되는지 여부를 엄격하게 조사합니다. 개발자들은 이러한 context files의 사용을 강력히 권장하지만, 그 효과에 대한 체계적인 평가는 부족했습니다.
주요 발견 (Main Findings):
놀랍게도, 이 연구는 context files가 전반적으로 작업 성공률을 *감소*시키고, LLM inference cost를 20% 이상 *증가*시키는 경향이 있음을 발견했습니다. 구체적으로, LLM-generated context files는 에이전트 성능을 평균 3% 감소시키는 반면, developer-provided context files는 성능을 평균 4% 소폭 향상시키는 데 그쳤습니다. 행동 분석(behavioral analysis) 결과, context files의 존재는 에이전트의 더 광범위한 탐색(exploration), 즉 더 철저한 테스트(testing) 및 파일 탐색(file traversal)을 유도하며, 에이전트가 context files의 지시를 따르는 경향이 있음을 확인했습니다. 연구는 context files의 불필요한 요구사항이 작업을 더 어렵게 만들며, 사람에 의해 작성된 context files는 최소한의 요구사항만을 포함해야 한다고 결론 내립니다.
핵심 방법론 (Core Methodology):
연구는 두 가지 보완적인 설정에서 코딩 에이전트의 task completion performance를 평가했습니다.
- SWE-BENCH LITE를 사용한 LLM-generated context files 평가:
- 데이터셋: 11개의 인기 있는 Python repository에서 가져온 300개의 task로 구성된 기존 SWE-BENCH LITE 데이터셋을 사용했습니다. 이 repository들은 developer-written context files를 포함하지 않습니다.
- Context File 생성: 각 에이전트의 권장되는 초기화 명령 및 모델을 사용하여 pre-patch repository state 에 대한 LLM-generated context files를 생성했습니다.
- 목적: 에이전트 개발자의 권고에 따라 자동으로 생성된 context files의 영향을 평가합니다.
- AGENTBENCH를 사용한 developer-provided context files 평가:
- AGENTBENCH 구축 (상세): 이 연구의 핵심적인 기여 중 하나인 AGENTBENCH는 Python 소프트웨어 엔지니어링 task 모음으로, 실제 GitHub issue에서 파생되었습니다.
- Repository 선정:
AGENTS.md또는CLAUDE.md와 같은 context file을 포함하고, Python을 주 언어로 사용하며, 테스트 스위트(test suite)가 있고, 최소 400개 이상의 Pull Request (PR)를 가진 GitHub repository를 검색하여 선정했습니다. 이 기준을 통해 12개의 niche repository에서 138개의 고유한 인스턴스를 확보했습니다. - PR 필터링: PR이 최소 하나의 issue를 참조하고, 최소 하나의 Python 파일을 수정하며, 에이전트가 판단하기에 확정적이고 테스트 가능한 동작을 도입하는 PR만 유지했습니다. SWE-BENCH LITE와 달리, niche repository의 특성을 고려하여 PR에 unit test 수정이 포함될 것을 요구하지 않았습니다.
- 환경 설정 (Environment Set-Up): 각 PR 및 해당 repository state에 대해 코딩 에이전트를 사용하여 실행 환경을 설정했습니다. 에이전트에게 환경 설정, 테스트 스위트 실행, 결과 저장을 위한 스크립트를 생성하도록 요청했으며, 최소 하나의 테스트가 통과하는 PR만 유지했습니다.
- Task Descriptions 생성: LLM 에이전트(GPT-5.2 with CODEX)를 사용하여 PR 설명, 관련 issue, 그리고 원본 patch 를 기반으로 표준화된 상세 task description 를 생성했습니다. 이 description은
description,steps to reproduce,expected behavior,observed behavior,specification,additional information의 6개 섹션으로 구성되며, 해결책이 유출되지 않도록 주의했습니다. - Unit Tests 생성: 대부분의 PR이 unit test를 수정하거나 추가하지 않았으므로, LLM 에이전트에게 표준화된 task description , PR에 의해 수정된 테스트 파일(있는 경우), 원본 코드 변경 , 그리고 repository의 기본 상태 을 제공하여 unit test를 생성하도록 요청했습니다. 생성된 테스트 는 에서는 실패하고 에서는 통과하는지 확인했습니다. 최종 테스트 세트 는 와 패치된 코드에서 통과하는 repository test suite의 최대 부분 집합 를 결합하여 구성했습니다.
- Repository 선정:
- Context File 사용: AGENTBENCH의 경우, repository에 이미 존재하는 developer-provided context file을 사용했습니다.
- 목적: 실제 개발자가 제공한 context files의 영향을 평가합니다.
- AGENTBENCH 구축 (상세): 이 연구의 핵심적인 기여 중 하나인 AGENTBENCH는 Python 소프트웨어 엔지니어링 task 모음으로, 실제 GitHub issue에서 파생되었습니다.
실험 설정 및 메트릭 (Experimental Setup & Metrics):
- 코딩 에이전트: CLAUDE CODE (SONNET-4.5), CODEX (GPT-5.2, GPT-5.1 MINI), QWEN CODE (QWEN3-30B-CODER) 등 4가지 코딩 에이전트-모델 조합을 사용했습니다. 각 에이전트는 해당 모델의 기본 설정 및 권장 사항에 따라 구성되었습니다.
- 설정 (Settings):
NONE: Context files가 없는 설정 (AGENTBENCH의 경우 developer-provided 파일을 제거).LLM: LLM-generated context file이 있는 설정.HUMAN: Developer-provided context file이 있는 설정 (AGENTBENCH에서만 가능).
- 메트릭:
- Success rate: 에이전트가 모든 테스트를 통과하는 patch를 생성한 인스턴스의 비율 ().
- Steps: 에이전트가 task를 완료하는 데 필요한 상호작용 단계 수 (예: shell 명령 호출, 파일 수정).
- Cost: task 완료에 필요한 LLM inference의 총 비용 (USD).
- First Interaction with Relevant File: 에이전트가 원본 PR patch 에 포함된 파일과 처음 상호작용하기까지의 단계 수.
- Tool Use Frequency: 에이전트의 다양한 tool (예:
grep,read_file,write_file,run_test,install_dependencies) 사용 빈도. - Reasoning Tokens: 에이전트가 추론(reasoning)에 사용한 토큰 수 (GPT 모델에 한해 측정).
주요 결과 요약 (Summary of Key Results):
- LLM-generated context files: SWE-BENCH LITE와 AGENTBENCH 모두에서 5/8 설정에서 성능 저하를 야기했으며, 평균 resolution rate는 각각 0.5%와 2% 감소했습니다. 또한, 평균 단계 수는 2.45단계와 3.92단계 증가하여 inference cost가 평균 20%와 23% 증가했습니다.
- Developer-provided context files: LLM-generated context files보다 나은 성능을 보였고, CLAUDE CODE를 제외한 모든 에이전트에서
NONE설정보다 성능이 향상되었습니다 (오른쪽 그림 3). 그러나 이 역시 평균 단계 수 3.34단계 증가, 최대 19%의 비용 증가를 초래했습니다. - Context files의 개요 제공 효과 부족: context files에 codebase overview가 포함되어 있음에도 불구하고, 에이전트가 관련 파일을 발견하는 데 걸리는 시간을 유의미하게 단축시키지 못했습니다 (그림 4). 이는 context files가 효과적인 repository overview를 제공하지 못함을 시사합니다.
- Context files의 중복된 문서화: documentation-related files를 제거한 환경에서는 LLM-generated context files가 developer-provided context files보다 성능이 2.7% 향상되었습니다 (그림 5). 이는 LLM-generated context files가 기존 문서와 크게 중복되며, 문서를 제거한 환경에서는 LLM-generated context files가 유일한 문서 소스로서 더 효과적일 수 있음을 시사합니다.
- Trace 분석: Context files는 에이전트가 더 많은 테스트를 실행하고, 파일을 더 많이 탐색(grep, read, write)하며, repository-specific tooling을 더 많이 사용하도록 유도했습니다 (그림 6). 이는 에이전트가 context files의 지시를 잘 따르지만, 이러한 추가 지시가 task를 더 어렵게 만들어 더 많은
reasoning tokens를 사용하게 함을 보여줍니다 (그림 7).
결론 (Conclusion):
이 연구는 코딩 에이전트 성능 향상을 위해 context files를 사용하는 것이 항상 유익하지 않으며, 특히 LLM-generated context files는 성능을 저하시키고 비용을 증가시킬 수 있다는 놀라운 결과를 제시합니다. 에이전트 개발자의 권고와 달리, LLM-generated context files는 현재로서는 생략하거나 최소한의 필수 요구사항(예: 특정 도구 사용 지침)만 포함해야 한다고 제안합니다. 이 평가 프레임워크는 에이전트 및 모델 개발자들이 LLM-generated context files의 유용성을 개선하는 데 도움이 될 것으로 기대됩니다.