설정 파일을 분명히 만들었는데 아무 반응도 에러도 없을 때, 원인을 확인하고 해결하는 방법입니다.
1. 문제: 자동 승인이 새 창마다 풀린다
키로(Kiro) CLI 를 쓰면서 기본 에이전트 설정 파일(~/.kiro/agents/kiro_default.json)에 도구를 자동 승인하도록 적어 두었습니다. 그런데 새 창을 띄울 때마다 승인 프롬프트가 다시 떴습니다. 파일에 문법 오류는 없고, 실행할 때 경고나 에러도 나오지 않았습니다. 잘못 쓴 게 아니라 아예 읽히지 않는 쪽에 가까웠습니다.
처음에는 "설정이 깨져서 도구 자체가 안 올라온 것"이라고 생각했는데, 나중에 보니 그게 첫 번째 착각이었습니다. 도구는 처음부터 멀쩡히 다 있었고, 문제는 오직 자동 승인이 적용되지 않는 것 하나였습니다.
그런데 이 둘은 겉으로 잘 구분되지 않습니다. 승인 프롬프트에서 거부하거나, 비대화형으로 돌려서 승인 단계가 막히면 도구는 실행되지 않은 채 끝납니다. 결과만 보면 "도구가 없다"와 똑같이 보입니다. 증상 이름을 여기서 잘못 붙이면 이후 진단이 통째로 엉뚱한 곳을 팝니다.
- 설정 파일은 있고 문법도 정상
- 새 창마다 자동 승인이 풀려 매번 승인 프롬프트
- 에러도 경고도 없어서 단서가 없음
2. 첫 진단이 틀렸습니다
처음엔 설정 파일이 도구 로딩을 망가뜨렸다고 보고, 파일을 .bak으로 밀어내 기본값으로 다시 올렸습니다. 하지만 증상은 그대로였고 자동 승인만 사라졌습니다.
여기서 배운 게 있습니다. 원인이라고 추측한 파일부터 치우면, 증상이 그대로일 때 원인을 좁힌 게 아니라 변수만 하나 더 늘어납니다. 되돌릴 수 있게 이름만 바꾼 건 다행이었지만 순서가 틀렸습니다. 치우기 전에 그게 정말 범인인지부터 확인했어야 합니다.
3. 추측 대신 A/B로 검증하기
그래서 같은 조건에서 파일만 넣었다 뺐다 하며 목록을 비교했습니다. 대화형으로 띄우면 사람이 개입하게 되니, 비대화형(headless)으로 돌려 결과만 봤습니다.

결과가 결정적이었습니다. 파일이 있든 없든 목록에는 항상 (Built-in)으로 표시됐습니다. 내가 만든 설정은 한 번도 잡힌 적이 없었던 겁니다. 덤으로, 도구 목록을 적는 키를 생략한 설정으로도 도구는 전부 정상 동작했습니다. 즉 그 파일은 애초에 도구를 없애는 원인이 아니었습니다.
- 파일 유무만 바꿔가며 목록 비교
- 있든 없든 항상 Built-in -> 내 설정은 적용된 적 없음
- 도구 키를 생략해도 도구는 정상 -> 첫 진단은 오진
4. 진짜 원인은 세 겹이었습니다
정리하면 원인이 하나가 아니라 세 개가 겹쳐 있었습니다.
첫째, 기본 에이전트 이름(kiro_default)이 Kiro 에 내장된 예약어였습니다. 같은 이름으로 파일을 만들면 내장 정의가 이기고, 내가 만든 파일은 에러 없이 조용히 무시됩니다.
둘째, 그 내장 에이전트에는 자동 승인 설정이 없습니다. 그래서 도구를 호출할 때마다 승인 프롬프트가 뜹니다.
셋째, 그동안 자동 승인이 되던 건 설정 덕분이 아니라 세션 안에서 일시적으로 허용해 둔 상태였습니다. 세션 단위라 창을 닫으면 초기화되니, 새 창에서는 늘 풀렸던 겁니다.
- 내장 예약어와 같은 이름의 설정 파일은 무시됨(에러 없음)
- 내장 에이전트에는 자동 승인 설정이 없음
- 세션 단위 허용은 창을 닫으면 사라짐
한 줄로 줄이면 이렇습니다. 내장 에이전트에는 자동 승인 설정이 없고 같은 이름으로 덮어쓸 수도 없으므로, 자동 승인을 영구적으로 걸려면 반드시 다른 이름의 에이전트를 만들어 기본으로 지정해야 합니다.
5. 해결: 이름을 바꾸고 기본으로 지정, 단 적용 시점 주의
고치는 방법 자체는 간단합니다. 예약어가 아닌 이름으로 설정 파일을 만들고, 그것을 기본 에이전트로 지정하면 됩니다.

여기서 한 번 더 걸리는 지점이 있습니다. 기본 에이전트 지정은 다음 세션부터 적용됩니다. 이미 떠 있는 창은 지정 이전에 시작됐으므로 계속 이전 에이전트로 돕니다. 고쳤는데도 승인 프롬프트가 계속 뜬다면 대개 이것 때문입니다. 지금 창에서 바로 풀려면 세션 단위 허용 명령을 쓰고, 새 창부터는 설정이 알아서 걸립니다.
검증도 눈으로 보지 말고 실행으로 했습니다. 신뢰 옵션을 붙이지 않은 새 프로세스에서 명령을 돌려, 승인 프롬프트 없이 실행되고 파일이 실제로 생겼는지까지 확인했습니다.

- 예약어가 아닌 이름으로 파일 생성 후 기본 지정
- 기본 지정은 다음 세션부터 적용(현재 창은 세션 명령으로 해결)
- 검증은 신뢰 옵션 없는 새 프로세스로 직접 실행
6. 정리
설정을 만들었는데 아무 반응이 없고 에러도 없다면, 문법보다 이름이 예약어와 겹치는지를 먼저 의심하는 게 빠릅니다. 무시는 실패와 달리 흔적을 남기지 않으므로, 목록이나 상태 조회 명령으로 "내 설정이 적용된 것으로 잡히는지"를 직접 확인해야 보입니다.
그리고 증상을 잘못 이름 붙이면 진단이 통째로 어긋납니다. 이번에도 "도구가 빠졌다"가 아니라 "자동 승인이 안 걸린다"가 정확한 증상이었고, 그걸 확정하고 나서야 원인이 보였습니다.
- 반응도 에러도 없다 -> 예약된 이름과 충돌해 무시되는 경우를 의심
- 적용 여부는 목록/상태 명령으로 직접 확인
- 원인 후보는 치우기 전에 A/B로 검증
- 설정 변경이 언제부터 적용되는지(즉시 vs 다음 세션)도 같이 확인
- 전체 도구 자동 승인은 편하지만 셸과 파일 쓰기까지 통과되므로 경로 제한 등 범위 축소를 함께 고려
함께 보면 좋은 글:
- 제미나이(Gemini) CLI 종료, 안티그래비티(Antigravity) CLI 설치하기 (윈도우 한글 깨짐 해결까지) - 설정 한 줄로 자동 승인이 바로 걸리는 경우
- 한글이 분명 있는데 grep이 안 될 때 (EUC-KR과 UTF-8 인코딩 함정) - 에러 없이 결과만 안 나오는 또 다른 함정
여기까지 키로(Kiro) CLI 설정이 조용히 무시되는 문제의 원인과 해결 방법에 대해서 작성해봤습니다. 여기까지 읽어주셔서 감사합니다!
'일상' 카테고리의 다른 글
| 톰캣(Tomcat) 6에서 9로 올릴 때 만나는 함정 5가지 (기동 실패, 한글 전멸, 400 에러) (0) | 2026.07.29 |
|---|---|
| 톰캣(Tomcat) allowLinking 취약점 조치하면서 기능은 살리기 (심볼릭 링크 대신 전용 Context 매핑) (0) | 2026.07.29 |
| 한글이 분명 있는데 grep이 안 될 때 (EUC-KR과 UTF-8 인코딩 함정) (0) | 2026.07.26 |
| 웹 3티어에서 WAS 앞에 사설망 L4를 또 두는 이유 (공인 L4만으로 안 되나) (0) | 2026.07.17 |
| DB 카탈로그로 테이블 정의서 엑셀 수백 장 자동 생성하기 (템플릿 기반 Excel COM) (1) | 2026.07.17 |