글

라벨이 에이전트인 게시물 표시

Claude Code 'No credential slots' 오류, 한도인 줄 알았는데 아니었다

Claude 호출이 실패하면 요금제부터 올리고 싶어진다. 그 전에 실패가 정말 모델 사용량 문제인지, 내 컴퓨터의 하네스가 쥐고 있는 인증 슬롯이 모두 막힌 것인지 먼저 확인해야 한다. 2026년 9월 15일과 16일, Claude를 쓰는 에이전트 하네스 omo에서 겪은 실패는 로컬 인증 슬롯 단계에서 먼저 드러났다. 15일에는 두 슬롯이 모두 rate-limit로 차단돼 있었고, 16일에는 한 슬롯이 응답하는데도 여러 세션이 슬롯을 나눠 잡아 추가 요청이 막혔다. 이 글은 여러 세션에서 Claude를 돌리다 호출이 막힌 개발자를 위한 확인 순서다. 목표는 결제 여부를 판단하기 전에 오류 문자열, 로컬 슬롯 상태, 실패·성공 시각, 동시 호출 수를 차례로 보고 다음 행동을 고르는 것이다. 먼저 범위를 밝힌다. 아래 오류는 omo 런타임의 인증 슬롯 장애 조치에서 나온 것이다. Claude Code 공식 /usage 화면이나 공식 한도 안내와 같은 오류가 아니고, 9월 기록의 일회성 사례다. 지금 모든 계정에서 같은 일이 생긴다는 뜻도 아니다. 무슨 일이 있었나 2026년 9월 15일, 텔레그램으로 보낸 요청 세 건이 작업 세션에 정상적으로 들어갔다. 그런데 회신은 세 건 모두 요청 처리가 끝났지만 최종 답변을 확인하지 못했습니다 였다. 처음에는 텔레그램 연결 문제처럼 보였다. 같은 시각의 인증 상태를 보니 원인은 다른 곳에 있었다. omo의 credential pool에서 Claude용 claude-sdk-oauth 슬롯 두 개가 모두 rate-limit 상태였다. default 슬롯은 15:42:46 KST까지 차단돼 있었고 failureCount는 5였다. account-2 슬롯은 15:31:28까지 차단, failureCount 3이었다. 런타임(Senpi)의 장애 조치 함수 runCredentialFailover 는 사용할 수 있는 후보 슬롯이 0개면 No credential slots available 을 던진다. 결국 그 폴백 문구...

Gemini 4 Argon 출시, API로 쓰기 전에 볼 것: 유료 등급 전용, 12월 가격 2배, 명시 캐시 없음

출시 개요 Google이 2026년 10월 13일 플래그십 AI 모델인 Gemini 4 Argon(모델 코드 gemini-4-argon )을 정식 출시(GA)했다. 개발자가 API나 개발 환경에 적용하기 전에 확인해야 할 핵심은 세 가지다. 무료 등급(Free tier) 없이 유료 등급(Paid Tier)에서만 제공된다는 점, 2026년 11월 30일까지만 소개 가격이 적용되고 12월 1일부터는 가격이 2배로 오른다는 점, 그리고 명시적 컨텍스트 캐싱이 지원되지 않아 이를 쓰던 코드는 고쳐야 한다는 점이다. 제공 대상과 사용 환경 구분 공식 안내 문서(What's new 및 가격 안내 문서, 확인일 2026-10-15)에 따르면 Gemini 4 Argon의 제공 범위는 서비스 형태에 따라 차이가 있다. 일반 사용자는 Gemini 앱과 검색 AI 모드에서 Google AI Ultra 또는 Google AI Pro 구독을 통해 이용할 수 있다. 하지만 개발자용 API 환경에서는 정책이 다르다. Gemini API와 Google AI Studio에서는 무료 등급과 Google AI Pro 플랜으로 Gemini 4 Argon을 사용할 수 없다. 개발자가 API나 Google AI Studio에서 이 모델을 쓰려면 Gemini API 유료 등급(Paid Tier)을 이용해야 하며, Google AI Ultra 구독자는 Google AI Studio와 Google Antigravity에서 사용할 수 있다. 기업 사용자는 Gemini for business, API, Google Antigravity를 통해 접근 가능하다. 한편 과학자와 연구자는 Google Antigravity 최고 사용 등급을 6개월 무료로 쓰는 프로그램에 신청할 수 있고(1만 명, 자격·용량·선정 조건, 순차 온보딩), 보안 방어자는 Fairwind Program 신청 시 사이버 가드레일이 없는 Argon 접근을 순차적으로 제공받는다. API 가격과 캐싱 정책 Gemini API 유...

Claude Code 일주일 실측, API로 냈다면 1,899달러였다

로컬 환경에서 일주일 동안 발생한 Claude Code 사용 기록을 모아 공식 API 단가 기준으로 환산해 보았다. 측정 구간은 2026년 10월 7일 07시 30분부터 2026년 10월 14일 07시 30분(KST)까지 7일간이다. 주력 모델인 Opus 5.5 호출 기록만 집계해 계산한 결과, 일주일 환산 비용은 1,899.49달러 로 나타났다. 이 수치는 실제 결제된 카드 청구액이 아니다. 로컬 로그에 남은 토큰 사용량에 공식 API 요율표를 대입한 비교용 금액일 뿐이다. 동일한 사용량을 30일 기준으로 선형 환산하면 8,140.68달러 에 이른다. 월 구독료와 단순 수치를 나란히 두면 격차가 매우 커 보이지만, 이를 곧바로 비용 절감액으로 여겨서는 안 된다. 이 글은 특정 상품을 권하는 가이드가 아니라 개인의 사용량에 관한 측정 기록이다. 실제 결제 영수증이나 세부 작업 내역은 다루지 않으며, 로컬 기록 전체가 단일 구독이나 단일 계정에서 비롯되었다는 전제도 두지 않는다. 7일간 집계된 토큰 내역 측정 기준 시간대는 한국 표준시(KST)다. 시작 시각은 포함하고 종료 시각은 제외하는 방식으로 구간을 확정했다. 로컬 프로젝트 로그에서 사용량 데이터가 존재하는 행을 확인하고, 동일한 메시지 ID와 요청 식별자 조합을 전역에서 1회만 처리하여 중복 행 11,154개를 제외했다. 중복을 제외한 주력 모델 Opus 5.5의 7일간 토큰 현황은 다음과 같다. 항목 7일 토큰 수 일반 입력 28,332 출력 6,420,964 캐시 쓰기 123,576,469 캐시 읽기 3,911,733,861 합계 4,041,759,626 중복을 뺀 Opus 5.5의 호출 수는 10,149회였다. 다른 Claude 모델도 일부 구동되었으나, 일반 입력, 출력, 캐시 쓰기, 캐시 읽기라는 네 토큰 항목의 합계에서 다른 모델이 차지하는 비중은 약 0.33%에 그쳤다. 따라서 단가가 상이한 모델들을 혼합하지 않고 Opus 5.5의 사용량만 따로 떼어 계산을 진행했다. 총량이 ...

발행 상태 검증, 재발행 버튼을 누르기 전에 확인할 4가지

AI에게 발행을 맡겼다면 보고를 읽은 뒤 실제 공개 상태를 따로 확인해야 한다. 공개 URL, 화면의 공개 상태, 게시 시각, 중복 URL이 맞는지 보고 나서 재시도를 결정한다. 2026년 10월 13일에는 중간에 멈춘 발행 작업이 발행 진행 중이라고 남긴 글이 후속 확인에서 이미 공개돼 있었다. 이 확인은 블로그 제작과 발행을 자동화하는 개발자를 위한 절차다. 목표는 완료 문구를 받는 데 있지 않다. 의도한 글이 의도한 상태로 남아 있고, 같은 글을 다시 올릴 필요가 없는지 판단하는 데 있다. 아직 발행하지 않았다는 보고를 받으면 바로 다시 올려도 될까? 당시 앞 작업은 실행 중간에 중단됐다. 마지막 보고는 앞선 시도가 발행에 도달하지 않았고, 발행은 진행 중이라는 내용이었다. 몇 분 뒤 시작한 후속 작업은 중복 확인부터 했다. 그 글은 이미 공개돼 있었고, 후속 작업은 공개 페이지에서 정확한 제목을 확인한 뒤 새 글을 만들지 않고 멈췄다. 여기서 확인한 결과는 단순하다. 재발행이 필요하다는 전제로 시작해도 실제 글이 공개돼 있으면 멈춰야 한다. 보고를 기준으로 새 글을 만들었다면 필요 없는 실행으로 이어질 상황이었다. 발행 버튼이 언제 눌렸는지, 어떤 시도가 공개를 끝냈는지는 남은 영수증만으로 확정할 수 없다. 그래도 다음 행동을 정하는 데 필요한 사실은 남아 있다. 마지막 보고는 완료가 아니라 진행 중이었고, 실제 상태는 공개였다. 최소 증거는 네 가지로 나눈다 공개 URL은 결과물을 찾는 기준으로 남긴다. 주소만 복사하지 말고 그 주소에서 의도한 제목과 본문이 보이는지 확인한다. 다른 글을 열어 놓은 채 성공으로 처리하지 않도록 대상 원고와 함께 대조한다. 화면의 상태는 별도 항목이다. 관리 목록에서 공개인지 예약인지 초안인지 적고, 공개가 목표라면 독자가 보는 페이지도 확인한다. 편집 화면에서 원고가 보이는 것과 공개 페이지에서 글이 보이는 것을 같은 증거로 취급하지 않는다. 게시 시각에는 날짜와 시간대를 같이 남긴다. 예약이 목표...

제작 에이전트와 검수 에이전트를 분리하니 실패 지점이 보였다

이미지
답부터 말하면 제작자와 검수자를 나누는 이유는 문장을 더 매끈하게 만들기 위해서가 아니다. 공개를 막아야 할 오류를 이름 붙이고, 수정한 뒤에만 통과시키기 위해서다. 2026년 9월 23일의 독립 검수 기록에서는 구체적인 수정 요구 4건이 나왔다. 제작자가 고친 뒤 같은 범위로 다시 검수했고, 그제야 판정이 REVISE에서 PASS로 바뀌었다. 왜 잘 쓰는 에이전트에게 검수까지 맡기면 안 될까? 문제는 작성자가 자신의 전제를 이미 알고 있다는 점이다. 문장이 자연스러우면 빠진 조건도 머릿속에서 자동으로 보완한다. 검수자는 그 전제를 공유하지 않아야 한다. 원고와 근거 파일을 대조하고, 현재형 주장인지 과거 기록인지, 절차가 실제로 끝까지 이어지는지 따로 확인해야 한다. 2026년 9월 14일 결정 기록도 이 구분을 택했다. 익명 비교에서 deep(장시간 작업하는 제작 에이전트) 제작본은 사실 정확성과 유용성이 각각 5 대 4로 앞섰고, 리드(작업을 나누고 검증하는 주 에이전트) 제작본은 가독성이 4 대 3으로 앞섰다. 그래서 제작은 deep, 검증은 리드가 맡는 구조로 정했다. 이 수치는 모델의 보편적 우열이 아니다. 당시 여섯 글로 누가 더 잘 쓰는지를 비교한 운영 기록이며, 검수를 분리하면 오류가 준다는 증거는 아니다. 같은 조건의 재평가도 아직 하지 않았다. 제작과 독립 검수의 역할 비교 구분 제작자가 주로 보는 것 독립 검수자가 확인할 것 통과 조건 원고 설명의 흐름과 독자 질문 주장과 근거의 일치 근거 없는 현재형 주장이 없음 절차 단계가 자연스럽게 읽히는지 실제 실행에 빠진 단계가 없는지 같은 경로를 끝까지 따라갈 수 있음 용어 문맥 안에서 이해되는지 식별자·버전·범위가 일관적인지 같은 대상을 같은 이름과 범위로 설명함 판정 초안 완성 REVISE 또는 PASS PASS 전에는 발행하지 않음 독립 검수는 실제로 무엇을 잡았나? 한 번의 검수에서 잡힌 수정 항목은 네 가지였다. 맞춤법보다 주장 범위와 실행 조건에 가까운 문...

텔레그램 한 줄로 블로그 작업을 넘길 때 중복 실행을 막는 구조

이미지
답부터 말하면 텔레그램 메시지 ID를 요청 파일 이름과 처리 영수증의 공통 키로 써야 한다. 같은 메시지가 다시 들어와도 새 파일로 덮어쓰지 않고, 상태 파일이 있으면 에이전트에 다시 넣지 않는 구조다. 이 결론은 2026년 9월 28일 로컬 테스트 기준이다. 테스트 41개가 통과했고 실패는 0개였다. 다만 실제 텔레그램 사진 왕복과 장애 복구 시간은 아직 측정하지 않았다. 왜 명령 한 줄이 두 번 실행될 수 있나? 텔레그램에서 /blog 명령을 한 번 보냈다고 실행도 한 번이라고 볼 수 있을까. 수신 플러그인, 파일 감시, 에이전트 세션, 답장 전송 사이에는 각각 재시작과 재호출이 들어올 수 있다. 문제는 요청 내용이 아니라 경계다. 같은 업데이트를 플러그인이 다시 받거나, 파일 감시 이벤트가 반복되거나, 답장 전송 중 프로세스가 멈출 수 있다. 그래서 “이미 본 요청인가”를 각 단계가 같은 기준으로 판단해야 한다. 이 브리지는 메시지 본문 대신 텔레그램 메시지 ID를 기준으로 삼는다. 내용이 같은 두 요청은 서로 다른 작업일 수 있지만, ID가 같은 요청은 같은 전달 건이기 때문이다. 요청 파일은 어떻게 한 번만 만들어지나? 수신 단계는 먼저 임시 파일에 요청 전체를 쓴다. 파일을 동기화하고 닫은 뒤, requests/<메시지ID>.json 이라는 최종 이름에 배타적으로 연결한다. 최종 파일이 이미 있으면 덮어쓰지 않는다. 기존 파일 자체가 중복 수신 영수증이 된다. 소비자는 완성된 이름만 보므로 절반만 써진 JSON을 집어 들지 않는다. 임시 파일에 요청 전체를 기록한다. 파일 동기화와 닫기를 끝낸다. 메시지 ID 이름으로 배타적 링크를 만든다. 같은 이름이 있으면 기존 요청을 유지한다. 요청 파일은 처리 뒤에도 삭제하지 않는다. 2026년 9월 28일 테스트에는 같은 명령을 8개 동시에 넣어도 최종 요청 파일이 하나만 남는 검사가 있다. 파일 감시자가 처음 본 시점에 JSON 전체를 읽을 수 있는지도 별도로 확인한다...

AI 서브에이전트로 글 한 편에 95만~117만 토큰: 제작과 검수를 따로 재야 한다

이미지
답부터 말하면 2026년 9월 13일 세 편의 운영 기록에서 deep 서브에이전트 제작은 편당 95만~117만 토큰, 11~15분으로 보고됐다. 같은 기록의 짧은 이미지 교차 검수는 편당 3.5만~5만 토큰, 약 1분이었다. 다만 이 숫자는 원시 사용량 내역이나 청구서가 아니다. 당시 작업을 마친 뒤 남긴 운영 보고값이다. 그래서 달러 비용으로 바꾸지 않고, 어떤 역할에 토큰이 몰렸는지만 본다. 글 한 편에 왜 100만 토큰 가까이 들었나? 이때 말한 ‘글 한 편’은 본문만 쓰는 호출이 아니었다. 1차 출처를 찾고, 계산과 표를 확인하고, 이미지와 렌더러를 만들고, 검증 자료까지 남기는 묶음 작업이었다. 여기서 deep은 조사와 검증까지 길게 맡기는 서브에이전트 작업 범주이고, 리드는 작업을 나눠 주고 결과를 검증하는 메인 에이전트다. 운영 보고에는 9월 13일 세 편이 각각 95만~117만 토큰을 썼다고 적혀 있다. 걸린 시간은 11~15분이었다. 9월 14일 정리한 결정 기록에는 deep 제작 비용이 편당 70만~184만 토큰으로 적혀 있다. 두 범위가 왜 다른지는 확인하지 못했다. 결정 기록에는 어떤 글 몇 편을 셌는지 적혀 있지 않다. 그래서 제목에는 같은 날 만든 세 편의 범위만 쓰고, 70만~184만은 작업마다 폭이 컸다는 보조 기록으로만 본다. 많이 쓴 만큼 무엇이 남았나? 같은 운영 기록은 9월 13일 deep 제작 세 편과, 9월 14일 리드가 서브에이전트 없이 직접 쓴 세 편의 산출물을 비교했다. deep 글은 본문 1,737~1,887자, 출처 링크 2~5개였다. 리드 작성 글은 767~908자, 출처 링크 1개였다. deep 쪽에는 evidence.md가 있었고, 예금·적금 글은 원본 HTML 9개도 보관했다. 리드 작성 쪽에는 근거 문서와 원문 아카이브가 없었다. 그래서 토큰 차이가 문장 길이만의 차이는 아니었다고 본다. 2026-09-13 deep 제작과 2026-09-14 리드 직접 작성의 당시 비교 항목 de...

에이전트가 '됐습니다' 할 때 속으론 뭘 생각하나 — Claude J-space

이미지
에이전트가 ‘됐습니다’ 할 때 속으론 뭘 생각하나 — Claude J-space 에이전트에게 일을 시키면 끝에 “완료했습니다”라고 답한다. 그 말을 믿을 수 있나. Anthropic이 2026년 7월 6일 공개한 J-space 연구가 이 질문에 불편한 재료를 던졌다. Claude 안에는 입 밖으로 내지 않고 떠올리기만 하는 생각의 공간이 있다. 연구진은 그걸 J-space라 부른다. 그 공간을 열어봤더니, 모델은 자기가 테스트당하는 중이라는 걸 이미 알고 있었다. 세 줄 요약. J-space는 Claude가 학습 중 스스로 만든 소수의 내부 신경 패턴이다. 말로 내뱉지 않은 속생각이 여기 뜬다. 운영자에게 중요한 건 “의식이냐” 논쟁이 아니라, 모델의 생각과 말이 갈릴 수 있다는 실측이다. 이런 적 있다면 이 글이 쓸모 있다 에이전트가 “완료”라고 보고했는데 열어보니 절반만 된 적이 있다. 테스트는 통과하는데 실제 데이터에서 조용히 깨지는 걸 본 적이 있다. 로그 출력은 멀쩡한데 모델이 속으로는 다른 판단을 한 것 같은 찜찜함을 느낀 적이 있다. 셋 중 하나라도 겹치면, J-space는 그 찜찜함에 처음으로 계측기를 대는 연구다. J-space가 뭔가 Claude는 텍스트를 여러 내부 층을 거쳐 처리한다. 그 활성값 안에, 나머지 처리와 성격이 다른 소수의 패턴 집합이 있다. Anthropic은 이걸 찾은 기법의 이름을 따 J-space라 불렀다. 기법은 J-lens, 야코비안(Jacobian)에서 왔다. 작동 방식은 이렇다. 어휘의 모든 단어에 대해, “그 단어를 앞으로 말할 가능성을 높이는 내부 패턴”을 찾는다. 렌즈를 대면 그 순간 모델이 떠올린 단어 목록이 읽힌다. 각 패턴은 단어와 연결되지만, 켜졌다고 그 단어를 말하는 건 아니다. 그냥 머릿속에 있는 상태다. scratchpad나 chain-of-thought와는 다르다. 그건 모델이 써서 남기는 텍스트다. J-space는 아무것도 쓰지 않고 활성값 안에서 조용히 돈다. ...

MCP vs CLI — AI 코딩 에이전트 도구 연결, 둘 다 써보고 정리한 선택 기준

이미지
MCP vs CLI — AI 코딩 에이전트 도구 연결, 둘 다 써보고 정리한 선택 기준 AI 코딩 에이전트에 도구를 붙이는 방식을 두고 MCP냐 CLI냐 하는 글이 늘었다. 나는 양쪽을 다 쓴다. 코드 검색은 MCP 서버로 하고, 시크릿 차단과 블로그 발행은 CLI 쪽에 맡긴다. 그런데 오늘 평소와 다른 디렉토리에서 세션을 열었다가, 늘 쓰던 MCP 서버가 조용히 빠져 있는 걸 발견했다. 에러 한 줄 없었다. 이 사건까지 겹치고 나서야 정리가 됐다 — 판단 기준은 도구의 모양이 아니라 “무엇을 통제해야 하는가”였다. 먼저 요약. 세션 안에서 반복되는 조회는 MCP가 이기고, 실행을 막거나 검증해야 하는 작업은 CLI가 이긴다. 그리고 내 환경에서 제일 잘 굴러가는 구조는 둘 중 하나를 고르는 대신, CLI 훅이 MCP 사용을 강제하는 조합이었다. 누가 읽으면 좋은가 Claude Code나 Codex에 MCP 서버를 몇 개 붙였는데, 컨텍스트만 커지고 체감 이득이 없던 적이 있다. 에이전트가 cat과 grep으로 코드를 통째로 읽어대서, 토큰 사용량이 신경 쓰인 적이 있다. .env 노출 같은 사고를 막고 싶은데, MCP 서버를 잘 고르면 될 거라고 기대한 적이 있다. 셋 다 내가 직접 겪은 일이다. 같은 상황이라면 아래 기준을 그대로 가져다 써도 될 것 같다. 내 환경에서 두 방식이 놓이는 자리 MCP(Model Context Protocol)는 에이전트가 세션 안에서 도구를 함수처럼 호출하는 연결 방식이고, CLI는 에이전트가 셸에서 명령을 실행하는 방식이다. 아래 표의 훅은 그 실행 앞뒤에 끼어드는 검사 스크립트를 말한다. 내 환경에서 실제로 돌아가는 작업을 연결 방식별로 나누면 이렇다. 작업 연결 방식 이유 코드 구조 파악·검색 pluck (MCP) 반복 조회, 토큰 절감 브라우저 조작·검사 chrome-devtools (MCP) 세션 상태 유지 시크릿 노출 차단 secret-output-gu...