제가 AI 컴패니언을 모델에 연결할 때마다, 어딘가에서 똑같은 청구서가 나옵니다. 토큰당 API 키, 클라우드 샌드박스 임대료, 또는 계속 실행해야 하는 두 번째 앱 같은 것들입니다. 저는 이 모든 옵션이 마음에 들지 않습니다. 그래서 Ankita 2.6.0에서는 다른 방법을 시도했습니다. 바로 컴패니언이 이미 열려 있는 Chrome 탭을 통해 ChatGPT와 대화하는 것입니다. API 키가 필요 없습니다. 제 쪽에서 토큰당 측정되는 비용도 없습니다. 사용자의 ChatGPT 계정, 사용자의 플랜, 사용자의 한도가 그대로 적용됩니다.
너무 저렴해서 작동하지 않을 것 같은 느낌이 들지만, 실제로 어떻게 작동하는지 그리고 제가 확신할 수 없는 부분이 어디인지 보여드리겠습니다.
ChatGPT 브라우저 제공자
새로운 제공자(문서: docs/guides/chatgpt-browser.md)는 Ankita에서 메시지와 첨부 파일을 사용자가 선택한, 이미 열려 있는 Chrome 대화창으로 보내고, 그와 관련된 공개 답변을 다시 Ankita로 읽어옵니다. 현재 모델은 그대로 선택되어 유지되며, 일반적인 채팅에는 API 채팅 키나 백그라운드에서 실행되는 별도의 'Chat On Steroids' 애플리케이션이 필요 없습니다. 사용자의 ChatGPT 계정 가용성과 한도가 여전히 적용됩니다. 비용 자체가 사라지는 것이 아니라는 점을 전제하지 않으며, 단지 이미 지불하고 있는 계정으로 이동하는 것뿐입니다.
구현 과정에서 실제로 저를 놀라게 했던 세 가지 부분이 있었습니다. 그만큼 주의를 기울여야 했습니다:
-
스크린 스크래핑이 아닌 연관된 답변. 탭에서 받은 답변은 Ankita가 보낸 메시지와 일치해야 합니다. "Repeating Observe는 선택된 채팅의 원래 상태를 유지합니다." — 선택 변경 및 전송 승인은 직렬화되며, 해결되지 않은 답변이나 확인되지 않은 중지(Stop)는 흐름 중간에 채팅을 전환한다고 해서 누락될 수 없습니다. 여기에는 DOM 캡처가 아닌 실제 상태 기계(state machine)가 작동하고 있습니다.
-
재시도 내구성. 이전에는 하나의 ChatGPT 답변 내부의 네이티브 호출들이 제공업체가 생성 루트나 RPC 번호를 재사용했기 때문에 충돌하는 경우가 있었습니다. 이제 정확한 재시도는 지속적인 결과를 반환하며, HTTP 연결 끊김 후에도 승인된 작업은 실제 결과값을 유지합니다. 암호화된 재시작(Encrypted restart)과 명시적인 재개(Resume)는 질문을 다시 재생하지 않고 원래 답변을 읽어옵니다.
-
중지(Stop)가 실제로 작동함. 소유한 중지(owned Stop)는 소유한 명령어와 도우미를 종료하고, 포인터를 해제하며, — 중요하게도 — Chrome과 사용자의 앱은 열린 상태로 유지합니다. 작업을 중지하기 위해 브라우저 창을 닫는 것은 기능이 아니라 실패 모드입니다.
터널: Core, Desktop, Plugins
브라우저 제공업체와 더불어 v2.6.0에서는 네이티브 ChatGPT 도구도 추가되었습니다: 별도의 Core, Desktop 및 Plugins MCP 연결은 Ankita의 작업 공간 도구, 작업 브라우저, 연결된 컴퓨터 제어 및 활성화된 외부 플러그인을 전용 OpenAI 터널을 통해 노출합니다. 각 활성 그룹에는 전용 터널이 필요하며, Core는 글로벌 연결 설정을 변경할 수 없고, 활성 그룹은 터널 ID를 재사용할 수 없습니다. 저장된 페어링과 터널 키는 안전한 장치 스토리지에 보관됩니다.
여기서 승인 설계가 다시 한번 중요해집니다 (제가 작성한 4단계 승인 게이트 글을 읽으셨다면, 휴리스틱이 제안할 수는 있지만 절대 거부하지는 못한다는 것을 아실 겁니다). 제공업체 흐름은 어떤 승인 카드도 없고 오류도 없는 완전한 검증(packaged lifecycle plus a real ChatGPT file/edit/read/command/wait flow)을 실행했습니다. 저는 이 메커니즘이 자랑스러우며, '0'이라는 숫자가 적절한지 계속해서 고민하고 있습니다.
컴퓨터 사용은 Cua 드라이버를 통해 도착합니다
Windows 컴퓨터 사용도 이번 릴리스에 포함되었습니다: 플러그인에서 기존 Cua 드라이버를 연결하면 Ankita가 Windows 화면에서 작동할 수 있습니다. 액션 중에는 애니메이션 포인터가 표시되며, 가시성을 토글할 수 있고 Stop을 실행하면 포인터가 사라집니다. 데스크톱 컴퓨터의 동작은 기존의 직접 액션 정책을 따릅니다. 제가 제대로 처리해야 했던 한 가지 세부 사항이 있었습니다: 소유된 포인터는 네이티브 팝업 메뉴를 가로질러 레이어를 유지합니다. 컨텍스트 메뉴가 열리는 순간 사라지는 포인터는 누가 제어권을 가지고 있는지에 대한 거짓말입니다.
엄격한 드라이버 검색과 이름 지정된 포인터 세션은 중지된 세션을 조용히 재활성화하지 않고 올바르게 초기화됩니다. 멈춘 상태를 유지하는 것은 기능(feature)입니다.
스킬 작성 및 지루하지만 중요한 부분
헤드라인으로 쓰기엔 부족하지만, 더 오래 지속될 것 같은 내용들: 스킬을 위한 오프라인 골든 피처(golden fixtures), 실행 가능한 작성자 핸드북, 그리고 기여자들이 라이브 환경 없이 스킬을 구축할 수 있도록 하는 인터랙티브/오프라인 스캐폴딩입니다. 게다가 검색 가능한 터미널/데스크톱 치트 시트, 측정된 스킬/MCP 시작 시간, 일정 템플릿, 보호된 운영자 런북도 포함됩니다.
시리얼 스위트는 1,344개의 테스트를 실행하여 실패는 없었고 기존에 건너뛴(skip) 것은 1개였습니다.
제가 솔직하게 말하는 한계점들
한 번에 하나의 브라우저 대화/팀원/작업 공간만 처리할 수 있습니다. 알 수 없는 페이지 레이아웃과 정확한 네이티브 소유권 부재는 여전히 확인되지 않은 상태로 남아 있을 수 있습니다. 추가적인 헬퍼 플랫폼 및 독립 출판사 스캔은 아직 검증되지 않았습니다. 호스팅된, 피처(fixture), 패키징 및 스위트 증거는 리포지토리의 검증 기록(docs/chatgpt-browser-verification.md)에 있으니, 요약하기보다는 그곳을 참고하시는 것이 좋겠습니다.
제가 스스로도 결론 내릴 수 없는 질문
제가 실제로 논쟁하고 싶은 디자인 결정이 있습니다. ChatGPT Browser 제공자는 사용자의 브라우저 탭 자체를 _제공자(provider)_로 취급합니다. 이는 모델에 접근하는 일류 방식입니다. 하지만 탭은 API 계약이 아닙니다. 페이지 레이아웃이 바뀌고, 요소의 소유권이 이상해지며,
그래서 말인데, 자체 ChatGPT 탭을 통해 라우팅하는 것이 합법적인 제공자 아키텍처인가요, 아니면 예의 바른 스크래퍼일까요? 레이아웃 재설계 한 번 만에 무너질 수 있는 종류 말입니다. 대안은 다른 모든 사람들이 하는 방식이에요. 안정적인 API, 토큰당 과금, 키 관리, 온갖 통행료 같은 것들이죠. 저는 이 탭을 선택했어요. 왜냐하면 API 키로는 절대 할 수 없는 방식으로 동반 앱(companion)을 무료로 실행할 수 있게 해주기 때문이에요. 하지만 '무료'와 '취약함(fragile)'은 많은 영역을 공유하고 있어요.
당신이라면 무엇을 구축하시겠어요? 고정된 가격의 API 계약인가요, 아니면 이미 열어둔 이 탭인가요?
Ankita는 저의 오픈 소스 데스크톱 AI 동반자예요. 로컬 우선(local-first)이고, MIT 라이선스이며, 사용자의 모델을 사용하죠. 전체 v2.6.0 릴리스 노트는 https://github.com/akyourowngames/A.N.K.I.T.A/releases/tag/v2.6.0를 참고하세요. 어디에 선을 그으실지 알려주세요. 저는 탭 대 API 질문에 대해 진심으로 고민하고 있고, 논쟁하는 이야기를 듣고 싶어요.