Zero: AI 에이전트를 주요 사용자로 설계한 Vercel Labs의 실험적 시스템 언어

Zero 소개

Zero(zerolang)는 Vercel Labs 가 2026년 5월에 공개한 에이전트-우선(agent-first) 시스템 프로그래밍 언어 의 실험 프로젝트입니다. 저장소(vercel-labs/zerolang) 와 홈페이지(zerolang.ai) 는 같은 메시지를 공유합니다. "AI 에이전트가 1차 사용자라면 컴파일러 출력, 도구 체계, 표준 라이브러리, 개발자 경험은 어떻게 달라져야 하는가" 라는 질문에 대한 답을 작동하는 컴파일러와 CLI 로 답해 보겠다는 시도입니다. 파일 확장자는 .0 이고, CLI 진입점은 zero 단일 명령입니다.

대부분의 프로그래밍 언어는 사람이 오류 메시지를 읽고 스택 출력을 따라가며 디버깅하는 사용 패턴을 전제로 설계되었습니다. 반면 AI 에이전트는 비구조화된 텍스트를 잘 파싱하지 못하고, 안정적인 코드(stable code) 와 기계 판독 가능한 수리 힌트(machine-parseable repair hints) 를 더 잘 다룹니다. Zero 는 이 간극을 언어 자체 설계 시점부터 좁히려고 합니다. 컴파일러는 zero check --json 명령에 대해 JSON 진단을 기본 출력으로 주고, 각 진단에는 NAM003 같은 안정 코드와 typed repair ID 가 포함됩니다. zero explainzero fix --plan --json 은 에이전트가 프로즈(prose) 를 파싱하지 않고도 오류를 이해하고 수정할 수 있도록 만든 보완 명령입니다.

Zero 는 pre-1 단계로 명시적으로 불안정하고, 보안 취약점도 있을 수 있다고 README 가 분명히 밝힙니다. 프로덕션 시스템이나 민감 데이터에 적용하지 말고 일회용 환경에서 실험 하라는 안내가 README 첫 부분에 적혀 있습니다. 본 게시물에서는 Zero 가 어떤 설계 가치를 추구하는지, 어떤 명령어와 도구를 제공하는지, agent-first 진단명시적 effect 가 구체적으로 무엇을 의미하는지, 그리고 설치·실행 방법을 정리합니다. 라이선스는 Apache-2.0 입니다.

Zero 언어의 설계 가치 5가지

README 는 Zero의 설계 가치를 다섯 가지로 정리합니다. 일반적인 언어 소개 처럼 "빠르다, 안전하다" 가 아니라, 모두 에이전트가 일하기 좋도록 이라는 한 방향을 가리킵니다.

Agent-first 학습 용이성) : 예제·문서·컴파일러 피드백만으로 에이전트가 빠르게 습득할 수 있도록, 작고 규칙적인 언어 표면(small, regular language surface) 을 추구합니다. 문법의 예외 가 적을수록 에이전트가 코드를 일관되게 다룰 수 있습니다.

표준 라이브러리 깊이) : 흔한 기능들은 흩어진 의존성 스택 이 아니라 문서화되고 일관된 표준 라이브러리 API 안에 있어야 합니다. 프로그램이 의존성 검색으로 시작하지 않아도 되도록, 표준 라이브러리가 의도적으로 넓게 설계되어 있습니다.

결정론적 도구 체계) : 진단(diagnostics), 그래프 사실(graph facts), 사이즈 보고(size reports), 설명(explanations), 수정 계획(fix plans) 모두 에이전트가 검사하고 행동할 수 있을 만큼 구조화 되어 있어야 합니다. 사람을 위한 색상 출력이 아니라 JSON 입니다.

직접적인 개발자 경험) : 검사·실행·포매팅·검사·수리(checking, running, formatting, inspecting, repairing) 가 빠르고 복사 가능하며 스크립트화 가능 해야 합니다.

문법보다 일관성) : 대부분의 표현 방식을 하나의 명백한 방법(one obvious way) 으로 두는 것을 선호합니다. 다른 언어라면 더 압축적으로 쓸 수 있는 부분도 명시적으로 두는 쪽을 택합니다.

Zero 의 JSON 진단과 typed repair

zero check --json 을 실행하면, 컴파일러가 진단을 다음과 같이 JSON 으로 출력합니다.

{
  "diagnostics": [{
    "code": "NAM003",
    "message": "use of undeclared symbol `foo`",
    "line": 7,
    "repair": { "id": "declare-missing-symbol" }
  }]
}

각 진단은 안정 코드(code), 사람이 읽는 메시지(message), 라인 번호(line), 그리고 typed repair 객체(repair) 를 가집니다. 사람은 message 를 읽고, 에이전트는 coderepair 를 읽도록 의도된 구조입니다. 같은 CLI 명령이 두 청중의 출력 을 동시에 만들어 주므로, 별도의 agent mode 를 켤 필요가 없습니다.

진단 처리 루프를 완성하는 두 개의 보조 명령이 함께 들어 있습니다. zero explain 은 진단 코드의 구조화 설명을 돌려주므로, 에이전트가 NAM003 이 무엇을 의미하는지 문서 스크래핑 없이 알 수 있습니다.

zero explain NAM003

zero fix --plan --json 은 진단을 해결하기 위해 어떤 변경을 어디에 해야 하는지를 기계 판독 가능한 수정 계획(fix plan) 으로 출력합니다. 에이전트는 오류 메시지에서 수정 방향을 추론 하는 대신, 이 계획을 그대로 적용하면 됩니다.

zero fix --plan --json add.0

이 두 명령이 Zero 의 진단 → 설명 → 수정 루프를 사람의 번역 없이 동작하게 합니다.

Zero 의 명시적 effect 와 zero skills

Zero 의 또 다른 핵심 설계 결정은 function signature 에 effect 가 명시 된다는 점입니다. 함수가 표준 출력에 쓰거나, 파일시스템에 접근하거나, 네트워크를 호출한다면, 그 사실이 capability 객체를 통해 시그니처에 드러납니다. 숨겨진 할당자, 암묵적 비동기, 매직 글로벌이 없는 everything is explicit 원칙입니다.

표준 진입점은 다음과 같은 형태입니다.

check world.out.write("hello from zero\n")

zero skills 명령은 에이전트가 사용할 가이드설치된 컴파일러 버전에 맞춰 CLI 안에서 직접 서빙합니다. 즉, 외부 문서 사이트와 컴파일러 버전 간 불일치 문제를 없애기 위한 의도된 설계 입니다. zero skills get zero --full 은 현재 버전에 해당하는 언어 기본 문법, 테스트·에이전트 편집 루프, 표준 라이브러리 사용 패턴 등을 한 번에 돌려줍니다.

zero CLI 의 자주 쓰는 명령들은 다음과 같습니다. 모두 같은 단일 바이너리 안에 들어 있습니다.

zero check examples/hello.0
zero run examples/add.0
zero build --emit exe --target linux-musl-x64 examples/add.0 --out .zero/out/add
zero graph --json examples/systems-package
zero size --json examples/point.0
zero skills get zero --full
zero doctor --json

zero graph --jsonzero size --json그래프 사실바이너리 사이즈 추정 을 JSON 으로 돌려주는 분석 명령입니다. 에이전트가 변경의 영향 반경비용 을 코드 생성 전에 확인할 수 있도록 만든 인터페이스입니다.

Zero 설치와 첫 실행

설치는 홈페이지가 제공하는 install 스크립트 한 줄입니다. 바이너리는 ~/.zero/bin/zero 에 떨어지며, 패키지는 zero.json 매니페스트와 src/ 디렉토리로 구성됩니다. zero new cli <name> 명령으로 새 CLI 패키지를 스캐폴드할 수 있다고 외부 매체가 보도합니다.

curl -fsSL https://zerolang.ai/install.sh | bash
export PATH="$HOME/.zero/bin:$PATH"
zero --version

설치 직후 첫 실행으로 자주 권장되는 패턴은 다음과 같습니다.

zero check examples/hello.0
zero run examples/add.0

zero run examples/add.0 의 기대 출력은 math works 입니다. 검증 워크플로우 자체도 pnpm run docs:test, pnpm run conformance, pnpm run native:test, pnpm run command-contracts 같은 스크립트로 정리되어 있고, 벤치마크는 pnpm run bench 로 로컬에서 돌릴 수 있습니다.

Zero 의 한계와 pre-1 면책 조항

README 가 가장 먼저 강조하는 부분은 Zero 가 아직 실험적 이라는 사실입니다. "pre-1, intentionally unstable" 이며, "오늘의 문법과 API 는 외워야 할 것이 아니라 함께 탐색할 대상" 이라고 적혀 있습니다. "보안 취약점이 있을 것으로 예상해야 한다" 는 명시적인 경고와 함께, 프로덕션 시스템, 민감 데이터, 신뢰 인프라에서는 사용하지 말고 격리된 일회용 환경에서만 실행 하라는 안내가 따라옵니다.

다시 말해 Zero 는 지금 제품에 도입할 도구 가 아니라, 에이전트가 1차 사용자라는 가정 위에서 시스템 언어 디자인이 어떻게 달라질 수 있는지를 함께 검증해 보자는 초청장 입니다. README 의 마지막 문장도 "예제를 돌려보고, 구조화된 출력을 들여다보고, 에이전트의 작업에 무엇이 도움이 되는지 피드백을 보내 달라" 는 권유로 마무리됩니다.

라이선스

Zero는 Apache-2.0 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다. Apache-2.0 은 특허 라이선스 부여(grant of patent license) 가 명시되어 있어, 파생 프로젝트의 법적 위험을 줄여 줍니다.

:house: Zero 공식 페이지

:github: Zero 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: