hermes‑agent · Hermes Agent 오픈소스 컨트리뷰션

기간  — 현재

Hermes Agent는 Nous Research의 오픈소스 AI 에이전트입니다. 에이전트가 홈 폴더처럼 넓은 경로를 검색하면, 지켜보는 사람이 없는 실행 중에도 macOS 개인정보 권한 팝업이 떴습니다. 검색을 시작하기 전에 보호 폴더를 빼는 수정을 컨트리뷰션했습니다.

홈 폴더 검색 중 뜨던 macOS 권한 팝업을 막은 수정

PythonripgrepmacOS

  • 홈이나 /Users 같은 상위 경로 검색에서 Desktop⁠·⁠Documents⁠·⁠Downloads 등 보호 폴더 7곳 제외
  • 파일명 검색과 파일 내용 검색, ripgrep⁠·⁠grep⁠·⁠find 경로 모두에 같은 제외 적용
  • 보호 폴더를 직접 지정한 검색은 그대로 허용
  • 건너뛴 폴더와 직접 검색하는 방법을 알리는 경고
  • macOS가 아닌 환경에서는 적용하지 않음

결과를 거르기 전에 뜨는 팝업

문제
검색 결과에서 보호 폴더를 걸러 내도, 폴더에 들어가는 순간 이미 권한 요청이 발생했습니다.
해결
ripgrep 제외 패턴과 find의 -prune으로 탐색을 시작하기 전에 보호 폴더를 뺐습니다. 원본 PR에 관련 테스트 61개의 통과 결과와 실제 macOS에서 넓은 경로를 검색한 결과를 함께 올렸습니다.

말없이 줄어든 검색 결과

문제
폴더를 빼면 사용자는 결과가 일부 빠졌다는 사실을 알 수 없었습니다.
해결
생략한 폴더와 직접 검색하는 방법을 경고로 알리고, 보호 폴더를 직접 지정한 검색에서는 제외하지 않습니다. 사용자는 무엇이 빠졌는지 알고, 필요한 보호 폴더만 직접 지정해 검색할 수 있습니다.

이름만 같은 폴더와 원격 실행 환경

문제
처음 구현은 폴더 이름으로 제외해, 같은 이름의 평범한 하위 폴더까지 빠질 수 있었습니다. 원격 실행 환경에서도 macOS 보호 폴더 규칙을 적용할 수 있었습니다.
해결
통합 PR의 후속 수정에서 이름 대신 경로를 기준으로 탐색을 막았습니다. 실행 환경을 판별해 원격 환경에서는 제외하지 않게 했습니다. 같은 이름의 일반 폴더와 원격 환경의 검색 결과가 불필요하게 빠지지 않습니다.