Lobsters

Why Are Coding Agents So Dumb?

코딩 에이전트는 왜 이렇게 멍청할까요?

글쓴이는 모델 성능이 좋아져도 코딩 에이전트는 작업 분할과 위임, 계획 전달, 보안에서 병목으로 남아 있다고 지적합니다. 병렬 작업과 모델 선택을 자동화하고, 운영체제 수준의 샌드박스와 에이전트 자체 기능에 관한 지식을 기본 제공하자고 제안합니다.

AI 요약

코딩 에이전트를 처음 쓸 때는 파일을 직접 수정하고 오류까지 고치는 모습에 감탄했지만, 며칠 지나지 않아 멈춤과 부실한 작업 완료 선언을 자주 마주했다고 글쓴이는 말합니다. 2025년 2월에는 반년쯤 지나면 에이전트도 기반 모델만큼 좋아질 거라 기대했지만, 모델이 발전하는 동안 에이전트가 병목으로 남았다는 문제의식입니다.

글에서 모델(model)은 GPT Astra, Claude Sonnet, GLM-5.3 같은 대규모 언어 모델(LLM)을 뜻합니다. 에이전트(agent)는 모델을 코드 저장소와 컴퓨터 시스템에 연결하는 Claude Code, Codex 같은 소프트웨어입니다. 모델이 두뇌라면 에이전트는 모델의 출력을 명령과 파일에 연결하는 몸에 해당한다고 설명합니다.

작업을 나누고 위임하지 못합니다

파일 업로드 링크에 암호를 거는 기능을 추가하면서 새 코드 약 1,500줄을 작성한 사례를 듭니다. OpenCode는 작업을 열 개 하위 작업으로 나눴지만 차례대로 처리했습니다. Claude Code는 서브에이전트를 한두 개 실행해도 모두 끝날 때까지 기다린 뒤 다음 일을 시작한다고 합니다. 예를 들어 종단 간 테스트가 끝난 다음에야 Git 이력을 살펴 커밋 메시지 초안을 작성합니다.

에이전트가 하위 작업의 난이도에 맞춰 모델을 고르지도 않는다고 지적합니다. 단순 반복 작업 대부분을 값비싼 고성능 모델에 맡기거나, 사용자가 작업마다 모델과 추론 수준을 직접 바꾸게 합니다. 글쓴이는 에이전트가 비용·속도·정확도에 맞춰 작업을 배분하고, 사용자가 각 기준을 조정할 수 있어야 한다고 제안합니다.

계획과 사용자 확인이 작업을 가로막습니다

에이전트의 계획은 사람이 이해하기 좋은 순서로 정리되지 않는다고 합니다. 기능을 어떤 방식으로 구현할지 세부 사항부터 늘어놓기보다, 유능한 개발자처럼 UI 변경이나 데이터 모델부터 높은 수준에서 설명한 뒤 세부로 내려가야 한다는 주장입니다. UI 시안, 데이터 흐름도, 의사결정 트리도 계획에 포함하자고 제안합니다.

또한 잠자리에 들기 전 맡긴 작업이 Git 브랜치 이름을 물은 뒤 밤새 멈춰 있던 사례를 소개합니다. 사용자가 응답하지 않고 30분이 지나면 에이전트가 스스로 결정해 실행하고, 기다림을 건너뛰는 ‘AFK 모드’도 제공해야 한다고 말합니다.

보안은 부탁이 아니라 경계로 보장해야 합니다

글쓴이는 처음 에이전트를 쓸 때 접근 가능한 파일을 제한하는 설정을 찾았지만, 문서에서는 LLM에게 특정 파일을 읽지 말라고 요청하는 방식을 안내했다고 말합니다. 그 요청은 무시됐고 개인 애플리케이션 키가 OpenAI와 Anthropic으로 전송됐다고 주장합니다. 지금도 에이전트가 작업에 필요하지 않은 시스템 파일까지 접근하도록 두거나, 하루 수백 번 접근 허용을 누르는 상황이라고 지적합니다.

대안으로 저장소 밖의 파일 시스템과 네트워크 접근을 제한하는 운영체제 수준 샌드박스를 제안합니다. 접근 통제는 모델에게 부탁하는 문장이 아니라 결정론적 보안 경계여야 하며, 기본적으로 현재 저장소만 허용하고 다른 저장소는 세션마다 읽기·쓰기 권한을 정해야 한다고 합니다. 글쓴이는 직접 샌드박스를 만들어 저장소 바깥의 파일에 에이전트가 접근하지 못하게 했다고 덧붙입니다.

글쓴이가 바라는 에이전트

기본 기능으로는 작업별 모델 선택, 사람이 읽기 쉬운 계획, 실제 샌드박스, 에이전트 자체 기능에 관한 지식, 여러 LLM 제공자 지원, 오픈소스를 꼽습니다. 추가 희망 사항으로는 모든 세션과 확인이 필요한 작업을 보여주는 로컬 웹 인터페이스, 작업별 예상 완료 시간, 세션을 검토해 비효율을 찾는 기능, 언어를 고려한 diff, 비밀 정보를 외부로 유출하지 않는 프록시를 듭니다. 복잡한 작업은 다른 모델이 자동으로 검토하고 수정 사항을 반영하는 방식도 제안합니다.

에이전트가 뒤처진 이유에 관한 가설

글쓴이는 만족스러운 답을 내놓지는 못하지만, AI 도구의 방향을 정하는 경영진과 매일 에이전트를 쓰는 개발자 사이의 간극이 원인일 수 있다고 봅니다. 경영진과 대형 고객, 주주가 보기 쉬운 지표는 세련된 시연과 벤치마크 점수입니다. 보안이나 개발자의 시간을 효율적으로 쓰는 능력은 시연에서 잘 드러나지 않고, 많은 벤치마크도 에이전트가 아닌 기반 모델을 평가한다고 지적합니다. 다만 Claude와 Codex에 매달 기능이 추가되는 만큼, 기업들이 에이전트에 전혀 투자하지 않는다는 설명만으로는 부족하다고 덧붙입니다.

Lobsters 반응

  • @kingmob — 이 글이 불평에 가깝다는 점은 알지만, 많은 부분에 동의합니다. 다만 몇 가지는 Claude에만 해당하거나 그럴듯한 이유가 있습니다. 예를 들어 세션 한도에 걸릴 가능성이 커지고 메시지 전달, 조정, 충돌 해결에 토큰을 더 쓰게 되므로 하네스가 작업을 자동으로 병렬화하지 않는 것 같습니다. 모델과 작업의 적합성을 스스로 판단하는 기능은 전반적으로 아직 없지만, 쓸 만한 대안은 있습니다. Claude에는 하위 작업에 맞는 모델을 쓰라고 지시하면 어느 정도 작동합니다. Oh-my-pi에서는 느린 작업, 작은 모델, 검토, 기본 작업 등 역할별 모델을 지정하고 일관되게 사용할 수 있습니다. 더 똑똑한 모델이 다른 서브에이전트를 지켜보다 필요할 때 개입하는 어드바이저 에이전트도 직접 지원합니다.
    • @mtlynch — 읽어주셔서 감사합니다. 세션 한도와 토큰 비용은 그럴듯한 설명이지만, 여전히 직관에 맞지 않습니다. 한 세션과 하나의 컨텍스트에서 열 가지 일을 하는 편이 감독자가 범위를 좁힌 서브에이전트 열 개에 위임하는 것보다 토큰을 더 많이 쓰지 않을까요? 토큰 효율을 따지지 않더라도 저처럼 할당량에 자주 걸리지 않고, 실행 시간을 줄이는 대신 토큰을 더 써도 괜찮은 사용자가 많을 것 같습니다.
    • @hyperpape — 서브에이전트에게 의미 있는 맥락을 얼마나 잘 전달하는지, 주 에이전트가 이미 알아낸 내용을 다시 조사하지 않는지에 따라 다릅니다. 실제로는 결과가 엇갈리는 것 같습니다.
  • @dlisboa — 코딩 에이전트 희망 목록은 70년치 컴퓨터 과학, 설계, 제품 규율에 초인적인 지능과 인간 수준의 자제력을 결합하자는 이야기입니다. 그걸 모두 갖췄다면 컴퓨터 과학의 거의 모든 문제를 이미 해결했을 겁니다. 그런데 오픈소스까지 원하네요. 그 정도보다는 자기 복제가 가능한 인간형 로봇에 더 가까워 보입니다.
    • @mtlynch — 읽어주셔서 감사합니다. 어떤 희망 사항을 말하는 건가요? 모델은 이런 일을 할 역량이 있지만 에이전트가 활용하지 못한다고 봅니다.
  • @janxdevil — “사람 직원이 사소한 부분을 물어보려고 근무 시간 내내 기다렸다고 하면 저는 바로 해고할 겁니다.” 여기서 문제의 뿌리를 찾은 것 같습니다.
  • @benjajaja — 모델과 에이전트 모두 문제입니다. 모델에는 컨텍스트 한도가 있습니다. 누군가 컨텍스트를 효율적으로 비우고 오래 유지하는 방법을 찾기 전까지는, 모든 LLM 상호작용을 막 시작한 아기와 대화하는 것처럼 다뤄야 합니다. 방대한 지식은 있지만 AGENTS.md 같은 형편없는 보조 수단에 적힌 내용 말고는 특정 환경에 대해 아무것도 모릅니다.
    • @laurentbroy — 네, 지금 에이전트를 가장 많이 가로막는 문제입니다. 파일에 메모를 남기게 할 수는 있지만 단점이 많습니다. 메모에 모든 내용을 담지 못해 세션을 다시 시작할 때마다 맥락이 많이 사라집니다. 에이전트가 쓰는 메모는 대개 부실해 다음 세션이 중요한 점을 놓칩니다. 메모 방식이 잘못되면 다음 세션도 그 관례를 따르면서 오류와 나쁜 습관이 쌓입니다. 파일이 커질수록 새 세션은 시작부터 컨텍스트 창을 더 많이 쓰므로 작업 공간이 줄어듭니다. 20만 토큰도 아주 작은 용량입니다. 10만 토큰을 넘기면 작은 모델은 컨텍스트 부패를 겪기 시작하고, 큰 모델은 내용을 압축하면서 방향을 잃습니다. 100만 토큰 창을 쓰면 비용이 크게 불어납니다. 결국 같은 말을 계속 반복하게 되고, 완전히 지치게 됩니다.
  • @cbrake — 훌륭한 불평입니다. 저는 에이전트에게 먼저 프로젝트 문서를 갱신하라고 하거나 직접 초안을 편집하곤 합니다. 사용자 입장에서 결과가 어떻게 보일지 확인하고 싶기 때문입니다. 만족스러우면 계획을 세우고 코드를 작성합니다. 계획의 세부 사항을 전부 읽지는 않지만, 사람처럼 에이전트가 스스로 계획 단계를 거치는 건 여전히 유용할 수 있습니다.
  • @kornel — 선도 AI 연구소는 하네스를 LLM과 bash를 연결하는 어댑터 정도로 보는 것 같습니다. 하네스가 도울 수 있는 일은 다음 모델에 강화학습을 시켜 해결하려 할 테니, 똑똑한 하네스 기능은 기대하기 어렵습니다.
  • @zem — 글 전체에서 ‘에이전트’를 ‘도구’나 ‘코드 생성기’로 바꾸면 이런 인지 부조화가 많이 사라집니다. 경험상 만족과 좌절의 균형도 훨씬 나아집니다.
  • @fzakaria — 하나 사겠습니다.
  • @codekobold — 운영체제 수준 샌드박스에 관한 내용은 사실과 다른 것 같습니다. Claude는 bubblewrap을 이용해 이를 지원합니다.
    • @mtlynch — 어느 부분이 틀렸나요? Claude Code에서는 샌드박스가 기본적으로 꺼져 있습니다. 켜더라도 제 이해로는 시스템 전체를 읽을 수 있고, 읽지 못하게 할 경로를 하나씩 지정해야 합니다. ‘현재 디렉터리만 읽게’ 설정하는 방법도 문서를 보고 있지만 잘 모르겠습니다. 제 주장은 Claude Code와 Codex가 기본 설정으로는 안전하지 않고, 최소 권한을 기본으로 설계하는 대신 사용자가 접근을 제한하도록 많은 일을 떠넘긴다는 것입니다.
  • @trenchant — Claude에서 겪는 이런 문제들 때문에 요즘 주간 사용량은 0입니다. 반면 Devin.ai에서는 200달러를 전부 썼습니다.

원문: mtlynch.io / 번역·요약: Trawling