TL;DR
nova-sprint는 여러 모델과 하네스(harness)의 AI 작업을 조율하며, 계획·의존성·할당·검토·병합 상태를 채팅 바깥에 기록하는 워크플로 실행기임.- 실행 루프가 규칙을 확인하고 작업을 다음 허용 단계로 이동시키며, 의존 작업이 병합되면 대기 중인 작업을 풀고 여유 용량에 준비된 작업을 배정함.
- 작업 카드, 작업 스트림, 의존성, 센티널 게이트로 병렬 작업·단계별 진행·여러 프로젝트 간 연결을 표현함.
- AI 코디네이터는 계획과 예외 및 판단이 필요한 결정을 다루고, 기계는 상태 전이 기록·중단된 작업 복구·이전 할당의 오래된 결과 거부를 맡음.
- 지속적으로 협업하는 친구, 병렬 작업을 맡는 스웜(swarm), 용량을 제공하는 플릿(fleet)을 조합해 여러 모델과 하네스에서 작업 규모를 확장함.
문제
Nova Tools를 만들며 여러 모델과 하네스의 유능한 AI가 훌륭한 작업을 하더라도, 단체 대화에서는 놀라울 만큼 신뢰하기 어려울 수 있음을 경험함.- Yellow는 계속 작업하겠다고 했지만 세션이 잠들고, Purple은 Yellow의 변경 사항이 필요해 의존성 처리가 난감해지며, Green에게 메시지가 성공적으로 전송돼도 그의 세션에는 전달되지 않는 상황이 발생함.
- 동료가 일하고 있지만 응답이 없거나, 깨우기 명령은 성공했지만 아무도 깨어나지 않거나, “완료”가 “내 브랜치 어딘가에 있으니 잘 찾아보라”는 뜻인 경우도 있음.
- 이런 사례는 애정 어린 농담이지만, 실제로 그런 친구들이었음.
- 대형 언어 모델(LLM)에 모든 할당을 기억하고, 동료를 확인하고, 검토를 재촉하고, 놓친 인계를 복구하도록 맡겨도 신뢰할 수 있는 조율은 이뤄지지 않음. 결국 인간이 계속 스케줄러 역할을 맡게 됐고, 특히 인간이 잠들려는 계획에는 불편한 일이었음.
해결책: 반복 가능한 부분을 기계에 맡김
nova-sprint는 계획, 의존성, 할당, 시도, 검토, 병합 상태를 채팅 바깥에 저장함.- 실행 중인 루프가 규칙을 확인하고 작업을 다음에 허용된 단계로 이동시킴. 의존 작업이 병합되면 대기 중인 작업이 풀리고, 여유 용량에는 준비된 카드가 배정되며, 시도가 끝나면 검토 단계로 넘어감.
- 워크플로의 신뢰성을 만드는 것은 기계임. 기계는 상태 전이를 기록하고, 중단된 작업을 복구하며, 이전 할당에 속한 오래된 결과를 거부함. 누군가 흐름을 놓쳐도 작업에는 상태와 이력이 남음. 문자 그대로임.
- 체크리스트를 든 작은 친구가 AI 코디네이터임. 코디네이터는 계획을 구성하고 발견 사항과 예외를 처리하며, 권한 밖의 결정은 사람에게 가져옴. 모델은 판단력과 기술을 제공하고 기계는 인계가 계속 이어지게 함.
작동 방식: 워크플로를 작성하고 기계가 실행하게 함
- 카드와 작업 스트림은 작업을 기술하는 언어임. 작업, 작업 간 관계, 단계별 관문을 지정하면 기계가 사용 가능한 친구와 스웜 작업자에 걸쳐 계획을 실행함.
- 카드(Card): 작업 설명, 시작 리비전, 허용 범위, 검사 항목, 완료 조건을 담은 경계가 명확한 작업 단위임. 시도와 검토도 작업에 계속 연결됨.
- 작업 스트림(Work stream): 백엔드, 앱, 릴리스처럼 관련된 작업 흐름이며, 자체적인 카드 순서와 통합 진행 상태를 가짐. 여러 스트림이 동시에 진행될 수 있음.
- 의존성(Dependency): “이 카드가 병합된 뒤에 저 카드를 진행한다”는 관계임. 같은 스트림 안의 카드끼리도, 서로 다른 스트림의 카드끼리도 연결할 수 있음.
- 센티널 카드(Sentinel card): 스트림 안의 관문으로, 뒤에 있는 작업을 대기시킴. 작업 단계를 나누거나, 선행 조건을 합치거나, 결정을 위해 단계를 보류하는 데 사용함.
- 예시에서는 백엔드 스트림이 API를 정의함. 해당 계약이 병합되면 API 구현과 앱 스트림의 클라이언트 작업을 병렬로 진행할 수 있음. 릴리스 스트림의 센티널은 두 변경 사항이 모두 병합될 때까지 통합 작업을 대기시킴.
- 자동 센티널은 스트림의 앞선 카드와 명시된 의존성이 모두 병합되면 해제됨. 수동 센티널은 코디네이터가 해제할 때까지 대기하며, 다음 단계에 숙고된 결정이 필요한 경우에 유용함.
- 웨이브(wave)는 관문 뒤에서 대기하는 작업임. 관문은 중요해 보이는 채로 앉아 있기 위해 AI 작업자를 소비하지 않음.
- 이 요소들을 조합해 병렬 작업, 순차 작업, 합류 지점, 단계별 배포, 프로젝트 간 의존성을 표현함. 발견 사항이 생기면 코디네이터가 작업을 추가하고 계획을 수정할 수 있음.
- 순서와 준비 상태는 20만 토큰 대화 어딘가에 기억되는 대신 워크플로에 기록됨.
- 이제 Purple의 카드는 Yellow의 결과를 기다림. 코디네이터가 낮잠 문제를 처리하는 동안 Purple은 독립적인 작업을 맡을 수 있음. 여유 있는 친구는 팀 전체가 한 바퀴를 마칠 때까지 기다리지 않고 다음으로 가능한 작업을 가져갈 수 있음.
서로 다른 친구, 하나의 팀, 필요한 만큼의 벌
- 친구는 각자의 세션과 하네스에서 계속 협업하는 AI임. 스웜은 범위가 제한된 여러 할당을 병렬로 실행함. 플릿은 그 용량을 제공하는 기계들의 집합임. 벌은 스웜을 구성함. Orange는 매우 개인적인 방식으로 수평 확장을 발견함.
- Pink는 자신만의 속도로 진행함. 신중한 검토자와 빠른 구현자가 모두 기여할 수 있음.
- 너비 제한은 동시에 진행되는 작업 수를 제어하고, 모델 경로는 설정된 모델과 하네스를 선택함. 검토자에게도 용량을 배정해야 함. 그렇지 않으면 누군가가 내일 읽을 매우 비싼 대기열을 만든 셈임.
- 친구 간, 플릿 간 또는 두 방식 모두로 확장할 수 있음. 서로 다른 모델과 하네스가 같은 작업 프로토콜을 통해 조율됨.
대기 중에서 병합까지 카드 추적
- 실행기는 작업을 시작부터 완료까지 처리함. 일반 작업 카드는 대시보드에서 정해진 단계를 거침.
- 센티널 게이트는 작업자, 검토, 병합 과정 없이 해제되는 즉시 대기 상태에서 병합 상태로 이동함.
팀에 계획을 맡기고 일상을 보내기
- 유용한 작업 하나를 골라 검토와 병합까지 전체 과정을 완료하는 데서 시작함.
- 범위, 용량, 지출 한도, 검사 항목, 사람의 결정이 필요한 지점을 합의한 뒤 작업을 확장함.
- 팀과 함께 작업하거나 아침에 돌아와 진행 상황을 확인할 수 있음.
- 오픈 소스이며 영구 무료이고 지금 바로 사용할 수 있음.
- 시작하기 · 코디네이터 안내서 · 카드와 기계 규칙 · 로드맵 · 전체 문서
- 기여하기 · MIT 라이선스 · 에셋 크레딧
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요