웹 폼의 모든 텍스트 필드를 채울 수 있었던 Claude AI 에이전트가 세 개의 이미지를 첨부하려는 마지막 단계에서 멈춰버렸습니다. 이는 Desktop App의 파일 업로드 처리 방식에 문서화되지 않은 제한 사항이 있음을 드러냈습니다. 이 실패는 겉보기에 완벽해 보이는 엔드 투 엔드(end-to-end) 자동화를 수동 작업으로 전환시켜 버리기 때문에 중요하며, 개발자들이 AI 기반 워크플로우를 구축하는 방식을 재고하게 만듭니다.

이 문제가 지금 발생하는 이유

Claude 에이전트는 CLI(command-line interface), Visual Studio Code 확장 프로그램, 또는 독립형 Desktop App의 세 가지 환경에서 실행됩니다. CLI에서는 에이전트가 세션에 추가된 디렉토리에서 파일을 읽어 문제없이 업로드합니다. 하지만 Desktop App은 이러한 동작을 그대로 따르지 않습니다. 에이전트가 자체 임시 폴더에 파일을 작성하더라도, 앱은 공개 문서에는 전혀 나타나지 않는 "공유(shared)" 파일에 대한 내부 정의를 근거로 업로드를 거부합니다.

이러한 불일치는 한 사용자가 폼을 채우고 "임시 저장(save draft)"을 클릭한 뒤 세 개의 이미지를 첨부하려는 자동화 프로세스를 구축했을 때 나타났습니다. 텍스트 필드는 완벽하게 채워졌지만, 업로드 단계에서는 매번 오류가 발생했습니다.

개발자들이 시도한 방법들

  • 앱이 생성하는 세션 폴더에 파일을 추가함.
  • 에이전트가 호스트 폴더를 볼 수 있게 해주는 directory-connect 도구를 사용함.
  • 채팅창에 이미지를 직접 첨부함.
  • 수동 업로드 폴더를 생성하고 폼이 해당 폴더를 가리키도록 설정함.

이러한 모든 접근 방식은 동일한 거부 오류를 발생시켰습니다. 파일 선택 창(file-picker dialog)을 표시하는 브라우저 창은 데스크톱 자동화 시 읽기 전용 모드로 실행됩니다. 에이전트는 대화 상자를 볼 수는 있지만, 그 안을 클릭하거나 경로를 입력할 수 없으므로 UI 자동화 트릭이 통하지 않습니다.

취약한 “백도어”

성공한 유일한 방법은 Windows 클립보드를 사용하는 것이었습니다:

  1. PowerShell 스크립트가 대상 파일을 클립보드에 복사합니다.
  2. 에이전트가 Ctrl + V 키 입력을 보냅니다.
  3. 브라우저가 붙여넣기 이벤트를 수신하고 파일을 업로드합니다.

이 해킹 방식은 작동은 하지만, 사용자의 클립보드를 비워버리고 Windows로 제한되며, Desktop App이 업데이트될 때마다 깨질 수 있습니다. 이는 프로덕션 파이프라인을 위한 지속 가능한 해결책이 아닙니다.

이 제한 사항의 실제 의미

핵심 문제는 소프트웨어 버그가 아닙니다. 파일 권한을 단순한 파일 시스템 플래그가 아닌 호스트 애플리케이션의 속성으로 취급하는, 문서화되지 않은 영역의 문제입니다. CLI에서는 에이전트가 프로세스의 읽기 권한을 상속받으므로 세션에서 볼 수 있는 모든 파일을 업로드할 수 있습니다. 반면 Desktop App에서는 런타임이 에이전트의 파일 시스템 뷰를 격리하여, 숨겨진 "공유(shared)" 기준을 충족하는 파일만 허용합니다.

이러한 제한 사항이 Desktop App의 아키텍처에 내장되어 있기 때문에, UI 조작이나 임시 폴더에 의존하는 우회 방법은 성공하지 못했습니다.

신뢰할 수 있는 향후 방향

워크플로우에 파일 업로드가 필요한 경우, 개발자는 세 가지 신뢰할 수 있는 옵션을 가질 수 있습니다:

  • CLI에서 에이전트 실행. 이 환경은 세션의 파일 시스템 권한을 존중하며 추가 단계 없이 업로드합니다.
  • VS Code 확장 프로그램 사용. 확장 프로그램은 CLI의 권한 모델을 미러링하여, 에이전트가 에디터에서 볼 수 있는 파일을 읽고 업로드할 수 있게 합니다.
  • 업로드 단계를 사람에게 맡김. 취약한 우회 방법을 설계하는 데 몇 시간을 쓰는 것보다 2분 정도의 빠른 수동 작업이 훨씬 낫습니다.

처음 두 가지 옵션을 선택하면 Desktop App 외부에서 자동화가 실행됩니다.

결론

Claude AI 에이전트의 파일 업로드 기능은 모든 런타임에서 보편적으로 적용되지 않으며, 에이전트가 어떻게 실행되는지에 달려 있습니다. 신뢰할 수 있는 자동화를 위해서는 CLI와 VS Code 확장 프로그램을 파일 시스템 권한을 안정적으로 준수하는 유일한 환경으로 간주하십시오. Desktop App을 사용할 때는 수동 작업으로의 전환을 계획하거나 취약한 클립보드 해킹 방식을 수용해야 합니다. 이러한 차이를 무시하면 매끄러운 엔드 투 엔드 스크립트가 비용이 많이 드는 디버깅 작업으로 변질될 수 있습니다.

Source: https://dev.to/mxhlix/my-agent-filled-in-every-field-on-the-form-it-could-not-attach-the-three-images-23kh