00:00:00Multicore는 AI 에이전트를 실제 팀원처럼 바꿔준다고 주장합니다.
00:00:05Claude Code, OpenCode, Codex CLI, Hermes 등을 고유한 시스템
00:00:11프롬프트와 기술로 설정하고, 상태 업데이트와 함께 작업을 할당할 수 있습니다.
00:00:16도움이 필요하면 알림을 보내고, 반복 작업을 예약하며, 에이전트와 직접 대화할 수도 있죠.
00:00:21하지만 이 오픈 소스 버전의 Claude 루틴과 관리형 에이전트가 정말 시간을 투자할 가치가 있을까요?
00:00:27구독을 누르고 함께 알아봅시다.
00:00:32Multicore의 권장 사용 방식은 작업 기기에 설치하는 것입니다.
00:00:37Claude Code나 OpenCode 같은 터미널 코딩 에이전트가 있다면,
00:00:42그것을 Multicore 클라우드 UI에 연결하는 것이죠.
00:00:44하지만 우리는 그렇게 하지 않고, 완전히 셀프 호스팅 방식으로 가보겠습니다.
00:00:48그래서 VPS에 Multicore를 설치할 건데, 그 이유는 나중에 설명해 드릴게요.
00:00:52사실 저는 보통 설정 과정을 건너뛰지만, Multicore 셀프 호스팅의 경우,
00:00:58문서에 나오지 않아 직접 알아내야 했던 몇 가지 사항들이 있었습니다.
00:01:01그래서 사용 예시를 살펴보기 전에 먼저 그 부분을 짚어보겠습니다.
00:01:05저는 이미 신규 Hetzner VPS에 이 명령어를 실행하여 Multicore를 설정했습니다.
00:01:10이 명령어를 통해 Docker로 Multicore를 설치하게 됩니다.
00:01:12그러니 VPS에 Docker가 설치되어 있는지 확인하세요.
00:01:15모든 실행을 마치면 Multicore 백엔드,
00:01:19아마 Go로 작성되었을 것이고, TypeScript와 Next.js로 구성된 Multicore 프론트엔드,
00:01:24그리고 세션 정보를 저장하는 Postgres 데이터베이스, 이렇게 세 개의 컨테이너가 실행됩니다.
00:01:27다음으로 'Multicore setup self-host'를 실행해야 합니다.
00:01:30그런데 저는 여기서 몇 가지 문제가 있었습니다.
00:01:31만약 'Multicore self-host'를 실행하고 현재 설정과
00:01:35워크스페이스를 초기화하면, 이 URL로 인증하라는 메시지가 뜰 텐데,
00:01:39이 화면으로 이동하게 됩니다.
00:01:40이메일 주소를 입력하고 계속 진행하면 인증 코드를 넣어야 합니다.
00:01:45그런데 저는 이 단계에서 정말 애를 많이 먹었습니다.
00:01:48그래서 인증 코드 관련 과정은 아예 건너뛰는 것을 추천합니다.
00:01:53.multicore 서버 디렉토리로 들어가서 env 파일을 열고, 앱 환경 설정이
00:01:58development로 되어 있는지 확인하고, Resend API 키 값을 비워두세요.
00:02:02이렇게 하면 이 코드가 이 값이 됩니다.
00:02:04설정이 끝났다면 해당 디렉토리에 머무른 상태로 다음 명령어를 실행하여 컨테이너를 다시 시작하세요.
00:02:09업데이트된 환경 변수 파일이 적용될 것입니다.
00:02:11그 후에는 6개의 8로 로그인할 수 있을 것입니다.
00:02:15아직 완전히 끝난 것은 아닙니다.
00:02:17이제 런타임으로 가면 제가 설치한 두 가지 런타임을 볼 수 있는데,
00:02:21아직 설정하지 않았으니 여러분은 아무것도 없어야 정상입니다.
00:02:24'Multicore Daemon Status'를 실행하면 현재 제 것은 워크스페이스 하나와
00:02:28이 에이전트들을 사용하여 실행 중인 것을 볼 수 있지만, 여러분의 것은 오류가 뜰 것입니다.
00:02:32그 이유는 먼저 VPS에 터미널 코딩 도구가 설치되어 있어야 하기 때문입니다.
00:02:36저는 Claude Code와 OpenCode를 설치해 두었습니다.
00:02:39그 런타임을 Multicore 인스턴스에 연결하려면 설정으로 이동하여,
00:02:44API 토큰 메뉴에서 새 토큰을 생성한 다음, 'Multicore login --token' 플래그를 사용하여
00:02:50토큰을 여기에 붙여넣어야 합니다.
00:02:52그리고 Multicore Daemon이 실행 중이라면 멈췄다가 다시 시작하세요.
00:02:56Multicore의 Daemon은 설치된 하니스 바이너리를 확인하고, Multicore로부터
00:03:01작업을 가져와 에이전트에 할당하고, 워크트리를 사용하여 에이전트를 여러 개 생성해서 작업을 처리합니다.
00:03:07완료되었습니다.
00:03:08이렇게 하면 Daemon이 사용 가능한 런타임을 보여줄 것입니다.
00:03:11이렇게 연결하는 방식의 장점은 여러 대의 기기를
00:03:15내 Multicore 인스턴스에 추가할 수 있다는 점입니다.
00:03:16그러니 VPS가 여러 대 있다면, 각각에 Multicore를 설치하고
00:03:20각자의 API 토큰을 사용해 하나의 UI에 연결할 수 있습니다.
00:03:23자, 설정은 끝났으니 Multicore로 간단한 작업을 몇 가지 해보겠습니다.
00:03:28모든 기능을 다 보여드리지는 않을 겁니다.
00:03:30여러 에이전트와 프로젝트를 두고 많은 작업을 추가하는 것보다는, 개별적인 기능을 보여드려서
00:03:35이런 식으로 일하고 싶다면 Multicore가 얼마나 강력한지 감을 잡으실 수 있게 하려고 합니다.
00:03:39일단 해보겠습니다.
00:03:40Multicore로 무엇을 하든 먼저 에이전트를 생성해야 합니다.
00:03:43저는 이미 'Medibot'이라는 에이전트를 만들었지만, 플러스 버튼을 눌러서
00:03:48안내에 따라 새 에이전트를 만들 수도 있습니다.
00:03:50이 메디컬 봇은 제가 제작한 'Claude Managed Agents' 영상과 비슷한 시스템 프롬프트를 가지고 있어서,
00:03:56비공개 GitHub 저장소에서 제 의료 정보를 가져오고,
00:04:02Slack을 통해 대화할 수 있습니다.
00:04:04이제 Multicore를 사용하면 VPS를 직접 제어할 수 있는 자유도가 조금 더 높아지기에,
00:04:08에이전트가 GitHub에서 저장소를 복제하게 하는 대신,
00:04:12제가 직접 이 디렉토리로 복제해 두었습니다.
00:04:16시스템 프롬프트 외에도 에이전트에 맞춤형 스킬을 부여할 수 있습니다.
00:04:19에이전트는 CLI에 설치한 스킬에 접근할 수 있지만, 원한다면
00:04:24UI에서 직접 스킬을 추가할 수도 있습니다. 저는 테스트 스킬로 만들어 두었지만,
00:04:29에이전트에 추가하지는 않겠습니다.
00:04:30환경 설정과 커스텀 인수 설정도 있습니다.
00:04:33에이전트는 CLI 도구를 사용하므로, 이 경우 'open code run'이 사용됩니다. 그래서 에이전트가
00:04:37특정 모델만 사용하게 하려면 커스텀 플래그를 추가하는 식으로 제어할 수 있습니다.
00:04:42하지만 기본적으로는 CLI에 설정된 모델을 사용합니다.
00:04:46지금 OpenCode를 실행해 보면 OpenCodeZen의 'big pickle' 모델을 사용 중인 것을 볼 수 있습니다.
00:04:50이제 여기를 클릭해서 작업이나 이슈를 생성할 수 있습니다. 저는 이슈 이름을 '의료 질문'으로 하고,
00:04:54프롬프트로 '내 의료 정보를 확인하고 칼라마리를 먹어도 되는지 알려줘'라고 적겠습니다.
00:04:59칼라마리요.
00:05:00이슈 트래킹 도구를 사용해 본 적이 있다면 아주 익숙할 겁니다.
00:05:04우선순위를 설정하고, 담당자를 지정하고, 마감 기한을 정하는 등의 작업을 할 수 있습니다.
00:05:08하지만 봇을 할당하는 즉시 바로 작업에 착수해 버리기 때문에,
00:05:13이슈를 생성하고 내용을 먼저 확인하는 것을 적극 권장합니다.
00:05:17작성한 내용이 모두 괜찮은지 다시 한번 확인하세요.
00:05:21확인이 끝나면 봇에게 할당합니다.
00:05:23저는 Medibot에게 할당하고 이슈를 생성하겠습니다.
00:05:26그러면 봇이 바로 작업을 시작합니다.
00:05:28여기 이슈 탭에서 진행 상황을 계속 확인할 수 있습니다.
00:05:30이슈를 클릭해 보면 Medibot이 바로 작업을 수행 중인 것을 볼 수 있습니다.
00:05:34작업이 진행되는 동안 'Autopilot'을 클릭해 보겠습니다.
00:05:36이것이 Claude Routines의 오픈 소스 버전입니다.
00:05:39처음부터 시작하기를 클릭하고, 에이전트를 선택하고, 얼마나 자주
00:05:44작업을 실행할지 설정할 수 있습니다.
00:05:45Claude Routines와 달리 API 트리거나 GitHub 이벤트 트리거 기능은 아직 없습니다.
00:05:51나중에 추가될지도 모르죠.
00:05:53하지만 Claude Routines 영상과 비슷하게 RSS를 통해 세 뉴스레터의
00:05:57최신 이슈를 가져오라는 프롬프트를 주겠습니다.
00:06:00이슈를 가져온 다음, 유튜브 영상으로 만들기 좋은 기사 10개를 선정하라고 할 겁니다.
00:06:05이 작업은 런던 시간으로 매일 오전 9시에 실행될 것입니다.
00:06:08이상적으로는 유튜브 주제 선정에 특화된 연구용 에이전트가 좋겠지만,
00:06:14지금은 Medibot을 계속 사용하겠습니다. 생성을 누르세요.
00:06:17그 다음 Autopilot 항목을 클릭하고 'Run now'를 눌러 실제로 작동하는지 보겠습니다.
00:06:21할 일 목록에 새 이슈가 생성될 것입니다.
00:06:23이걸 몇 분 동안 돌아가게 두고, 다른 이슈를 확인해 보겠습니다. 에이전트가
00:06:28이미 검토 중으로 옮겨 놓았네요.
00:06:30여기 보면 제 의료 기록상 갑각류 알레르기가 있어서 칼라마리를 먹으면 안 된다고 나와 있고,
00:06:35알레르기에 대한 추가 정보도 적혀 있습니다.
00:06:40여기를 클릭하면 에이전트가 정확히 무엇을 했는지도 볼 수 있습니다.
00:06:43실행 기록을 펼쳐보면 bash 도구 호출을 몇 번 수행한 것을 알 수 있습니다.
00:06:48사실 의료 정보 디렉토리를 찾기 위해 bash 도구를 꽤 많이 호출했고,
00:06:53에이전트가 올바른 정보를 얻을 수 있도록 홈 디렉토리를 모두 검색하여 의료 정보를 확인했습니다.
00:06:59훌륭합니다.
00:07:00여기서 '정보 고마워'라고 답장할 수도 있습니다.
00:07:01이미 답을 얻었는데 왜 '완료'가 아니라 '검토 중' 상태로 두었는지 물어보겠습니다.
00:07:04에이전트에게 그대로 두죠.
00:07:07에이전트가 뭐라고 하는지 일일이 확인하기 번거롭다면,
00:07:09에이전트로부터 알림을 받을 수도 있습니다.
00:07:12여기 메디컬 에이전트의 답변이 있고,
00:07:14Autopilot 업데이트도 받았습니다.
00:07:16한 시간 전에 자동으로 실행된 것도 있지만, 방금 트리거한 작업이 방금 완료되었습니다.
00:07:19여기에 제가 준 프롬프트를 볼 수 있고, 프롬프트를 따라 실행한 결과가 나옵니다.
00:07:22이렇게 결과가 나왔습니다.
00:07:23여기 Barn, temporal API 등 상위 10개 항목이 선정되었습니다.
00:07:27여기서 재미있는 점은, 이슈가 검토 중 상태가 되면 에이전트가 다시
00:07:28진행 중이나 할 일로 옮기지 않는다는 것입니다. 당연히 사람이 직접 할 수는 있습니다.
00:07:33원한다면 진행 중이나 차단됨 상태로 옮길 수 있죠.
00:07:37그런데 의료 에이전트에게 질문을 던졌을 때, 답을 하는 동안
00:07:41진행 중 상태로 돌아가지 않더군요.
00:07:45그저 검토 중 상태로 유지되기 때문에, 저는 에이전트가 완료했는지 알기 위해 클릭해야 합니다.
00:07:49왜 완료 대신 검토 중으로 옮겼는지 알 수 있습니다.
00:07:51표준 워크플로우 단계라서 그렇습니다.
00:07:55결국 사람이 완료 상태로 옮기기를 기다리는 셈인데, 어느 정도 이해는 됩니다.
00:08:00여기서 계속 대화하거나, 답글을 남기거나, 댓글을 달고,
00:08:01파일이나 이모지를 첨부할 수 있습니다. 혹은 전체 이슈 트래킹 과정을 거치지 않고
00:08:05일회성 질문만 하고 싶다면 여기를 클릭해 에이전트와 직접 대화할 수도 있습니다.
00:08:09솔직히 말해서 저는 에이전트에게 작업을 할당하고 칸반 보드에서 진행 상황을 지켜보는 방식은 그리 선호하지 않습니다.
00:08:14그래서 Paperclip이나 Vibe Kanban 같은 프로젝트는 시도해 보지 않았죠.
00:08:18저는 우선순위나 마감 기한 같은 것에는 별로 신경 쓰지 않습니다. 에이전트와 한두 개의
00:08:22프로젝트만 집중적으로 작업하는 것을 좋아하고, 에이전트가 무엇을 하는지, 어떤 도구를 쓰는지,
00:08:25어떤 문제에 부딪히는지 눈으로 직접 보면서 함께 디버깅하는 대화형 방식을 선호합니다.
00:08:29그렇다고 Multicore가 싫다는 것은 아닙니다. 예약 작업 기능은 정말 좋고,
00:08:34완전한 셀프 호스팅이 가능하다는 점도 마음에 듭니다. 또 Claude 관리형 에이전트나
00:08:39Routines보다 다른 모델을 사용하면 훨씬 저렴한 도구이기도 하죠.
00:08:45하지만 설정 과정이 꽤 기술적이라서, 무엇을 하고 있는지 알아야 한다는 점은 있습니다.
00:08:50보안을 신경 써야 한다면 특히 더 그렇습니다. 관리형 에이전트나 Routines는
00:08:55자체 인프라를 통해 모든 것을 알아서 처리해 주니 훨씬 편하죠.
00:08:59커넥터를 사용하여 에이전트와 통신하는 것도 훨씬 간편합니다.
00:09:02만약 Multicore에서 똑같은 것을 하려면,
00:09:06폰에서 응답 페이지를 사용할 수는 있겠지만 Slack, Telegram, Discord를 사용하려면
00:09:11직접 연동을 설정해야 합니다.
00:09:16제가 셀프 호스팅 방식을 선택한 것은 전적으로 보안 때문입니다. 인터넷에 연결된 것은
00:09:20무엇이든 해킹의 위험이 있으니까요. 물론 Multicore를 완전히 로컬에서 사용해서
00:09:24로컬 기기에 설치하고 인터넷 연결 없이 UI를 실행할 수도 있습니다.
00:09:29하지만 인터넷에 연결해야 한다면 Tailscale을 사용하여 셀프 호스팅 경로를 이용하고,
00:09:33서버가 완전히 노출되지 않도록 하며 항상 최신 버전을 유지하는 것을 권장합니다.
00:09:37인터넷에 연결되어 있다면 분명 해킹 가능성이 있습니다. 즉, Multicore를 완전히
00:09:41로컬에서 사용할 수 있습니다. 로컬 기기에 설치하고 UI를 로컬에서 실행하면 인터넷에
00:09:46연결되지 않을 것입니다. 하지만 인터넷에 연결하고 싶다면 다음 방법을 추천합니다.
00:09:50Tailscale을 사용하여 셀프 호스팅 경로를 이용하면 서버가 완전히 노출되지 않으며,
00:09:55항상 최신 버전으로 유지할 수 있습니다.