Weft 소개
Weft는 AI 시스템을 만들기 위한 프로그래밍 언어입니다. 요즘의 실제 소프트웨어는 LLM을 호출하고, 데이터베이스를 띄우고, 사람의 응답을 기다리고, 웹을 탐색하고, 여러 에이전트를 조율합니다. 그런데 이런 동작은 대부분 라이브러리를 가져다 붙이고 그 사이를 잇는 배관(plumbing) 코드를 직접 작성해야 얻어집니다. Weft는 LLM, 사람, API, 인프라를 언어의 기본 재료(base ingredient)로 삼아, 이들을 노드로 선언하고 서로 연결하면 컴파일러가 구조를 검사하고 프로그램의 시각적 그래프를 자동으로 만들어 주는 방식을 제안합니다.
Weft를 만든 사람은 WeaveMind의 Quentin Feuillade--Montixi이며, 언어 코어와 실행기는 Rust로 작성되어 있습니다. Weft의 핵심 발상은 하나의 프로그램을 두 개의 표현으로 동시에 다룰 수 있다는 점입니다. AI 빌더에게는 조밀한 코드로, 사람에게는 노드 그래프로 렌더링되며 한쪽을 편집하면 다른 쪽이 갱신됩니다. 여기에 타입 시스템과 크래시에도 이어지는 지속 실행(durable execution)을 결합해, "AI 시스템을 짜는 배관 작업"을 언어 차원에서 덜어내는 것을 목표로 합니다.
한 가지 분명히 해둘 점은 Weft가 아직 초기 단계라는 사실입니다. 저자는 이 프로젝트를 공개적으로 개발 중인 개념 증명(POC)이라고 밝히며, 언어와 타입 시스템, 지속 실행기가 안정적인 부분이고 노드 카탈로그는 아직 작고 의도적으로 제한적이라고 설명합니다. 현재 메인 브랜치는 멈춰 있고 mvp 브랜치에서 다시 만들어지는 중이며, 릴리스는 2026년 8월로 계획되어 있습니다. 저자 스스로도 프로덕션 도입을 고려한다면 완성품이 아니라 그 위에 쌓아 올릴 기반으로 보라고 권합니다. 본 게시물에서는 Weft가 풀려는 문제, 코드와 그래프라는 두 뷰, 주요 특징, 노드 구조, 그리고 라이선스를 정리합니다.
Weft가 풀려는 문제
저자는 "2026년의 실제 소프트웨어는 LLM을 부르고, 데이터베이스를 띄우고, 사람을 기다리고, 웹을 탐색하고, 에이전트를 조율하는데 그런 원시 기능(primitive)은 어디에 있느냐"고 되묻습니다. 대부분의 코드베이스는 이 기능들을 라이브러리 조합과 배관 코드로 매번 다시 구현합니다. 사람의 승인을 기다리려면 웹훅과 폴링, 상태 관리를 직접 붙여야 하고, 프로그램이 중간에 죽으면 어디서부터 다시 시작할지 별도로 챙겨야 합니다.
Weft는 이런 원시 기능을 언어의 일급 요소로 끌어올립니다. LLM 호출, 사람에게 폼을 보내 응답을 받는 일, HTTP 요청, 데이터 저장 같은 것들이 라이브러리가 아니라 노드(node)로 존재하고, 이들을 연결(edge)로 잇는 것이 곧 프로그램이 됩니다.
Weft의 두 가지 뷰: 코드와 그래프
Weft의 가장 특징적인 부분은 같은 프로그램을 코드와 그래프, 두 가지 네이티브 뷰로 다룬다는 점입니다. 코드 뷰는 AI 빌더가 다루기 좋은 조밀한 형태이고, 그래프 뷰는 사람이 전체 구조를 한눈에 보기 좋은 형태입니다. 어느 쪽을 편집해도 다른 쪽이 함께 갱신되므로, 둘은 서로 다른 문서가 아니라 한 프로그램의 두 표현입니다.
아래는 저자가 제공하는 짧은 Weft 프로그램으로, 주제(topic)를 받아 LLM이 짧은 시를 쓰고 그 결과를 출력하는 예제입니다. 네 개의 노드와 네 개의 연결로 이루어지며, 이 코드가 로딩되는 동안 컴파일러는 이미 모든 연결과 타입을 검증합니다.
# Project: Poem Generator
# Description: Writes a short poem about any topic
topic = Text {
label: "Topic"
value: "the silence between stars"
}
llm_config = LlmConfig {
label: "Config"
model: "anthropic/claude-sonnet-4.6"
systemPrompt: "Write a short, beautiful poem (4-6 lines) about the given topic."
temperature: "0.8"
}
poet = LlmInference -> (response: String) {
label: "Poet"
}
poet.prompt = topic.value
poet.config = llm_config.config
output = Debug { label: "Poem" }
output.data = poet.response
Weft의 주요 특징
Weft가 내세우는 특징은 다음과 같습니다.
일급 사람(First-class humans) 은 프로그램 중간에 멈춰 사람에게 폼을 보내고, 며칠을 기다렸다가 정확히 그 지점에서 재개하는 것을 하나의 노드로 처리합니다. 웹훅이나 폴링, 별도의 상태 관리가 필요하지 않습니다.
재귀적 접기(Recursively foldable) 는 여러 노드로 이루어진 그룹을 인터페이스가 정의된 하나의 노드로 접을 수 있게 합니다. 저자의 설명에 따르면 100개 노드로 이루어진 시스템도 최상위에서는 5개 블록처럼 보입니다.
끝까지 타입 검사(Typed end to end) 는 제네릭, 유니온, 타입 변수, 널 전파를 지원합니다. 컴파일러가 누락된 연결, 타입 불일치, 깨진 구조를 실행 전에 잡아냅니다.
지속 실행(Durable execution) 은 Restate를 통해 프로그램이 크래시와 재시작을 견디도록 합니다. 3일이 걸리는 사람의 승인과 3초가 걸리는 처리가 같은 코드로 표현됩니다.
내장 노드(Built-in nodes) 로는 LLM, Code, HTTP, Human Query, Gate, Template, Discord, Slack, Telegram, WhatsApp, Email, X, Postgres, Memory, Apollo, Web Search 등이 제공됩니다. 저자는 장기적으로 AI가 언어 기능을 사용해 커스텀 노드를 즉석에서 만드는 것을 목표로 하지만, 지금은 그 단계가 아니라고 명시합니다.
Weft의 노드 카탈로그와 구조
Weft에서 노드는 저장소의 catalog/ 디렉토리가 진실 공급원(source of truth)입니다. 각 노드는 두 개의 파일을 담은 폴더로 정의됩니다. backend.rs 는 Node 트레이트를 구현한 Rust 코드이고, frontend.ts 는 포트·설정 필드·아이콘 같은 대시보드 UI 정의입니다. scripts/catalog-link.sh 가 이 파일들을 Rust 크레이트와 대시보드로 심볼릭 링크하고, inventory 크레이트가 시작 시 모든 노드를 자동으로 찾아냅니다. 저자는 새 노드를 추가하는 일이 한 폴더 안의 두 파일이면 된다고 설명합니다.
언어와 실행기는 여러 Rust 크레이트로 나뉘어 있습니다. weft-core 는 타입 시스템·컴파일러·실행기·Restate 객체를, weft-nodes 는 노드 트레이트와 레지스트리를, weft-api 는 REST API를, weft-orchestrator 는 Restate 서비스와 프로젝트 실행기를 담당합니다. 대시보드 UI는 SvelteKit과 Svelte 5로, 사람이 개입하는 흐름(human-in-the-loop)을 위한 브라우저 확장은 WXT로 만들어져 있습니다.
Weft의 라이선스
Weft는 저장소의 LICENSE 파일에 담긴 커스텀 라이선스인 "O'Saasy License Agreement"로 공개되어 있습니다. 사용·복사·수정·병합·배포·판매를 자유롭게 허용한다는 점에서 MIT 라이선스와 비슷하지만, 한 가지 제약이 추가되어 있습니다. 이 소프트웨어(수정·파생본 포함)를 그 자체의 기능이 핵심 가치가 되는 호스팅·관리형·SaaS 형태의 서비스로 제3자에게 제공해 원 라이선서와 직접 경쟁하는 용도로는 사용할 수 없습니다. 따라서 표준 오픈소스 라이선스가 아니라 이 제약을 둔 소스 공개(source-available) 라이선스로 이해하는 것이 정확합니다.
Weft 문서 사이트
Weft를 만든 이유를 설명한 블로그 글
Weft 프로젝트 GitHub 저장소
더 읽어보기
-
Microsoft Agent Framework: Microsoft가 새롭게 공개한 Multi-Agent Framework (feat. Python, C#/.NET)
-
Harmonist: 186개의 전문 AI 에이전트와 기계적 프로토콜 강제 실행을 갖춘 멀티에이전트 오케스트레이션 프레임워크
-
OpenAI, OpenAI Agents SDK를 사용하여 개발한 고객 서비스(CS) Agents Demo 프로젝트 공개
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()

