CopilotKit Open Bot, Grok Bot 오픈소스판의 격리 현황

8/20/2026 ·impact

CopilotKit Open Bot, Grok Bot 오픈소스판의 격리 현황

CopilotKit Open Bot 이 MIT 라이선스로 공개됐습니다. Grok Bot 이 하던 일을 자기 인프라에서 돌리는 오픈소스판입니다. 다만 내세운 봇 사이 격리는 아직 코드에서 지켜지지 않습니다. 로그인한 사용자가 다른 사람의 봇으로 행동할 수 있다는 보고가 저장소에 열려 있습니다.

알파 단계입니다. 구조를 읽거나 격리된 환경에서 시험하는 자리라면 지금도 쓸모가 있고, 회사 계정을 실제로 로그인시켜 두는 자리라면 열려 있는 이슈 세 건이 먼저입니다.

Grok Bot 과 같은 일을 자기 서버에서 돌립니다

xAI 가 Grok Bot 을 2026년 8월 11일 공개했고, 아흐레 뒤 CopilotKit 이 Open Bot 저장소를 열었습니다. 라이선스는 MIT 이고, 관리 서버든 사내 클러스터든 자기 인프라에 올려 씁니다.

Grok Bot 은 따로 살 수 없습니다. 상위 요금제에 묶여 있고, 주간 사용량 한도를 넘긴 분량은 별도로 과금됩니다. 같은 일을 시키려면 요금제를 통째로 사야 했던 자리에 다른 선택지가 하나 생긴 셈입니다. 아래 값은 베타 기준입니다.

묶여 있는 요금제가격
SuperGrok Heavy월 300달러 안팎
Cursor Ultra월 200달러
Cursor Teams Premium사용자당 월 120달러

Open Bot 쪽에서 드는 비용은 성격이 다릅니다. 코드를 받아 자기 서버에서 돌리지만, 실행하려면 CopilotKit Intelligence 크리덴셜과 OpenAI API 키가 필요합니다. 코드가 공개돼 있다는 것과 바깥 열쇠 없이 돌아간다는 것은 다른 이야기입니다.

에이전트를 고르고 작업 기록을 자기 서버에 남깁니다

달라지는 것은 두 가지입니다. 붙일 에이전트를 직접 고르고, 봇이 한 일의 기록이 자기 서버에 남습니다. AG-UI 프로토콜만 맞으면 LangGraph, CrewAI, Mastra, Pydantic AI, Google ADK 는 물론 직접 짠 에이전트도 그대로 붙습니다.

기록은 /admin/audit 에서 봅니다. 허용된 행동과 거부된 행동, 실패한 행동이 남고 각각에 어떤 정책 규칙이 적용됐는지까지 나옵니다. 감사 로그가 외부 서비스가 아니라 자기 데이터베이스에 쌓이니, 봇이 무엇을 만졌는지 되짚는 일이 내부에서 끝납니다.

봇 하나에 컨테이너 하나가 붙습니다. Chromium 도, /workspace 볼륨도, 브라우저 프로필과 로그인 세션도 봇마다 따로입니다. COMPUTER_RUNTIME 을 runsc 로 주면 gVisor 샌드박스 안에서 돌아갑니다.

격리는 설계이고 코드에서는 아직 지켜지지 않습니다

설계가 그렇다는 것과 코드가 그렇다는 것이 지금은 다릅니다. 저장소에 열린 이슈 세 건이 각각 다른 지점을 짚습니다. 보고자가 코드 위치와 커밋을 붙여 검증까지 달아 뒀고, 세 건 모두 열린 상태입니다(2026년 8월 20일 기준).

권한 검사 함수는 정의돼 있고 테스트도 통과합니다. 그런데 그중 두 개는 프로덕션 경로에서 한 번도 불리지 않습니다. 빠진 쪽은 에이전트 접근과 실행을 막는 canAccessAgent, canRunAgent 두 함수이고 canManageAgent 만 연결돼 있습니다. 로그인한 사용자가 다른 사람의 봇으로 행동할 수 있다는 보고입니다.

URL 에 담긴 봇 id 는 검증 없이 파일 경로가 됩니다. profiles.directoryFor 가 루트 경로와 봇 id 를 그대로 이어 붙이고, reset() 이 그렇게 만들어진 경로를 root 권한으로 지웁니다. 봇 id 에 ../ 를 섞으면 지정된 폴더 밖까지 지워집니다.

deny 규칙을 패턴이 아니라 자연어 문장으로 적어 두면 그 행동이 그대로 허용됩니다. policy.ts 의 matches 가 평가 결과를 참인지로만 보기 때문에, 참도 거짓도 아닌 값은 거부 판정에서 아예 빠집니다. 그다음 기본 허용 규칙이 그대로 먹습니다. deny 항목에 주문 제출 같은 문장을 적어 둔 경우가 여기 해당합니다.

봇끼리 서로의 파일을 넘볼 수 없다는 것은 지금으로서는 설계 목표입니다.

알파 단계, 지금 값이 있는 자리와 없는 자리

돌려 보려면 크리덴셜 두 가지가 듭니다. .env 에 CopilotKit Intelligence 크리덴셜과 OpenAI API 키를 채우고 아래 두 줄을 실행하면 localhost:3010 이 열립니다. 직접 돌려 본 결과가 아니라 공개된 실행 절차 그대로입니다.

bun install
bash scripts/start.sh

구조를 읽거나 격리된 환경에서 시험하는 자리라면 지금도 값이 있습니다. AG-UI 로 에이전트를 갈아 끼우는 부분과 감사 로그를 자기 쪽에 남기는 부분은 알파 상태에서도 그대로 돌아갑니다. 사내 계정이 걸리지 않는 데이터로 봇을 하나 띄워 두고 정책 규칙이 어떻게 걸리는지 보는 정도면 지금 상태로 충분합니다.

회사 도구에 실제 계정을 로그인시켜 두는 자리라면 이야기가 다릅니다. 권한 검사가 프로덕션 경로에 연결되고 봇 id 검증이 붙기 전까지는, 한 사람이 다른 사람의 봇으로 행동하고 그 봇의 파일까지 지울 수 있는 상태가 그대로 남습니다. 브라우저 프로필에 사내 서비스 로그인이 남아 있다면 그 계정까지 같은 범위에 들어갑니다.

README 도 알파라 거친 부분과 버그를 예상하라고 밝힙니다. 이슈 세 건은 아직 열려 있습니다.