Salix
Salix
Salix는 Comma의 에이전트 하네스입니다. 모든 Comma 에이전트를 실행하는 분산형 멀티 테넌트 런타임으로, Elixir와 Lean으로 작성되었습니다.
적은 리소스로 많은 에이전트를
기존 에이전트는 각자 전용 샌드박스를 가집니다. 에이전트가 일하는 동안 계속 켜져 있는 컨테이너나 VM이죠. Salix는 그런 샌드박스 하나가 쓰는 CPU와 메모리로 에이전트 수백 개를 실행합니다.
Salix는 각 에이전트를 클러스터의 노드에 배치하고, 클러스터가 바뀌면 에이전트를 노드 사이에서 옮깁니다. 노드를 넘나들며 에이전트 간 메시지도 전달합니다. 클러스터 하나에 노드를 수백 개까지 둘 수 있습니다.
에이전트는 샌드박스 밖에서 실행됩니다
에이전트가 하는 일은 대부분 컴퓨터가 필요 없습니다. 읽고, 계획하고, 쓰고, 연결된 앱을 호출하는 일이죠. Salix는 이런 일을 샌드박스가 아니라 하네스 안에서 직접 실행합니다.
에이전트에게 컴퓨터가 필요하면 Salix가 클라우드 VM을 깨웁니다. VM은 사용이 끝나도 스토리지를 유지하므로, 파일과 설치한 도구가 에이전트가 두고 간 그대로 남아 있습니다. 일이 끝나면 VM은 다시 잠들 수 있습니다.
Elixir와 Lean으로 구축
Salix는 Elixir와 Erlang VM 위에서 실행됩니다. 각 에이전트는 저마다 가벼운 프로세스입니다. 시스템 일부에 장애가 나면 그 부분이 다시 시작되고, 다른 에이전트는 계속 실행됩니다.
에이전트 루프의 핵심은 Lean으로 작성되었습니다. 한 턴에서 다음에 무엇을 할지, 데이터가 어디로 흘러가도 되는지 같은 제어 결정은 기계로 검증한 증명을 갖춘 Lean 코드로 실행됩니다.
Loop는 Spinfoam 위에서 실행됩니다. Spinfoam의 JIT 컴파일러는 메모리 안전한 코드를 생성한다는 것이 형식 검증되었습니다.
상시 샌드박스 없이도 늘 깨어 있습니다
에이전트는 Loop로 내 데이터를 24시간 지켜볼 수 있습니다. Loop는 클러스터에서 실행되는 작은 프로그램입니다. 처리할 일이 있을 때만 에이전트를 깨우므로, 조용한 시간에는 모델 토큰이 들지 않습니다.
내 머신과 내 런타임
Salix에 Linux나 macOS 머신을 연결하면, 에이전트가 그 머신에서 명령을 실행하고 파일을 엽니다. Comma는 이 방식으로 내 Mac에서 일합니다.
Salix에는 자체 에이전트 루프가 있습니다. 에이전트는 내가 고른 디바이스에서 Codex나 Claude Code 같은 외부 에이전트 런타임을 쓸 수도 있습니다.