WillDeep
스스로 실행하게 하세요. 왜냐하면 실행이 끝난 후에는 장부를 확인할 수 있기 때문입니다.
자체 호스팅(self-hosted) AI 코딩 에이전트입니다. 모델은 해외로 나가지 않아도 되며, 변경된 모든 줄은 어떤 Agent가, 어떤 도구 호출을 통해 수정했는지 추적할 수 있습니다. 작은 모델이 가져온 작업 결과는 자체 선언이 아닌 종료 코드(exit code)로 판정하며, 체크포인트 복원 시 대화 내용과 파일 전체를 함께 되돌립니다. 목표(/goal) 설정은 토큰 예산 및 승인 목록을 포함하는 장기 과제이며, 이는 여러 라운드와 재시작에도 누적됩니다. 데몬(daemon)이 중단되어도 스스로 계속 실행합니다. 모델 사용량과 Agent에게 사람이 수정한 모든 교정 사항은 로컬 장부에 남겨지므로, 완료 후에는 항목별로 검토할 수 있습니다. 하나의 바이너리로 터미널/브라우저/모바일 세 가지 인터페이스를 지원하며, 창을 닫아도 작업은 계속됩니다.
WillDeep은 Agent가 수행한 모든 것에 대해 책임을 져야 하는 사람들을 위한 자체 호스팅 AI 코딩 에이전트입니다. 변경된 모든 줄은 해당 Agent와 도구 호출에 의해 출처가 명시되며, 위험한 명령어는 판정을 위해 모델에게 전달되지 않습니다. 서브-Agent의 작업은 종료 코드(exit code)로 판단되며, 세션과 목표는 터미널을 초월합니다 — 토큰 예산 및 승인 체크리스트는 데몬 재시작 후에도 유지됩니다. 사용량 및 피드백 장부는 사용자 기기에 남아있기 때문에, 모든 모델 호출과 Agent가 받아야 했던 모든 교정 사항이 나중에 검토 가능합니다. 데이터센터를 벗어나지 않는 모델을 포함하여 OpenAI와 호환되거나 Anthropic 스타일의 엔드포인트와 작동합니다.
CI
Release
License
Rust
Platforms
willdeep --workspace . "현재 저장소를 검사하고 테스트를 수정하세요"
WillDeep TUI 演示:找到缺陷、改一行、裸跑测试验证,收尾后空输入框里灰字预测下一句
30초 만에 시작하기
1. 바이너리를 설치합니다. Node.js 18 이상 버전이 있는 경우:
npm install -g @niuwoai/willdeep@rc
willdeep --version
설치기는 npm 패키지 버전과 일치하는 GitHub Release를 다운로드하며, SHA256을 검증한 후 단일 willdeep 파일을 npm의 bin 디렉토리에 배치합니다. 또는 배포 패키지를 직접 사용할 수도 있습니다:
curl -fsSL https://github.com/niuwoai/willdeep-cli/releases/latest/download/willdeep-macos-universal.tar.gz | tar -xz
sudo install -m 0755 willdeep /usr/local/bin/willdeep
...
| 플랫폼 | 배포 패키지 |
|---|
| macOS | willdeep-macos-universal.tar.gz |
| ... | |
소스 코드로 빌드하려면 아래 개발 참여를 참고하세요.
2. 열쇠를 받습니다. 설정 파일이 없어도 실행할 수 있으며, 환경에 인식 가능한 Key가 있으면 바로 작업을 시작합니다:
export SOMEIM_API_KEY=...
willdeep --onboarding
3. 작업을 시작합니다. 동일한 바이너리로 세 가지 사용 방식이 가능합니다:
willdeep --workspace . # 터미널 인터페이스 (TUI)
willdeep --web --workspace . # 브라우저 인터페이스, 기본값 127.0.0.1:9847
willdeep web # Runtime Web App을 재사용하거나 시작하고 브라우저를 열기
...
willdeep doctor는 어떤 Provider와도 연결하지 않고 구성, 샌드박스(围栏), 그리고 Runtime 상태를 확인할 수 있습니다. 더 자세한 단계는 설치 및 빌드, 구성 가이드, CI 통합를 참조하세요.
SWE-bench 공개 평가
2026년 10월 30일 기준으로, 공식 웹사이트 공개 평가에서 각 모델이 최신으로 정산되었으며 해결률이 70%를 초과한 결과는 다음과 같습니다. 두 항목 모두 WillDeep CLI 0.94.0-rc5를 사용하여, 12개 프로젝트를 포괄하는 동일한 동결 문제 세트 verified-60-v1에서 실행되었으며 SWE-bench 공식 평가기로 패치를 판정했습니다.
| 기반 모델 | 해결률 | 해결 문제 수 | 완료 날짜 (베이징 시간) | 배치 및 증거 |
|---|
| DeepSeek V4 Flash | 75.0% | 45/60 | 2026-10-14 | 오류 보정 조합 v2 |
| GLM-5 | 71.7% | 43/60 | 2026-10-13 | 독립 배치 |
문제당 최대 60 라운드, 1200초이며, 메인 Agent, 서브 Agent 및 보조 호출의 보고된 토큰 누적 임계값은 8백만 토큰입니다 (최종 및 진행 중인 호출은 초과할 수 있음). DeepSeek의 초기 결과는 41/60이었으나, 오류 문제에 대한 독립적인 재보정 후 조합하여 45/60을 달성했으며, 이는 단일 전체 재실행 또는 단일 통과율이 아닙니다. GLM-5의 60문제 분모에는 상위 레벨 502 오류 문제가 1개 포함되어 있습니다.
공개 코딩 에이전트 성적 비교
아래는 SWE-bench 공식 Verified 리더보드에서 발췌한 공개 제출 기록이며, 검토 날짜는 2026년 10월 30일입니다. 이는 특정 Agent, 모델 및 제출 날짜를 나열하여 공개 성적 참고 자료로 제공할 뿐, 각 제품의 현재 버전 능력 상한선을 대표하지 않습니다.
측정 기준이 다름: WillDeep은 Verified의 고정된 60문제 탐색적 하위 집합이며, 아래 표는 전체 Verified 500 문제입니다. 문제 범위, 모델, 예산 및 재시도 방식이 다르므로, 이를 근거로 우위를 계산하거나 순위를 주장하며 특정 Agent보다 뛰어나다고 말할 수 없습니다.
| 코딩 에이전트 | 모델 / 구성 | Verified 500 문제 해결률 | 제출 날짜 | 출처 |
|---|
| live-SWE-agent | Claude Opus 4.5, medium | 79.2% | 2025-12-15 | 공개 제출 |
| ... | | | | |
위의 모든 공개 제출 기록은 단일 시도(single attempt)로 표시되어 있습니다. 공식 리더보드에 등재되었다고 해서 해당 팀이 모두 독립적으로 재검토된 것은 아닙니다. WillDeep 성적은 해당 모델과 Agent 실행 프레임워크의 조합을 나타내며, 모델 자체 테스트가 아니므로 Mac 또는 Android 버전의 성적으로 직접 사용할 수 없습니다.
공식 웹사이트 평가 페이지에서는 문제별 비식별 대화, 도구 호출, 제출 패치, 판정 및 증거 패키지를 제공하며, 동결 문제 세트는 샘플 범위를 확인하는 데 사용될 수 있습니다. 과거 배치 기록은 보존되었으며, v2로 대체된 DeepSeek의 재보정 v1은 위의 엄선된 결과에 중복으로 포함되지 않았습니다.
누구에게 적합한가
⚠️ [IMG:N] 형식 토큰은 이미지 플레이스홀더입니다. 번역하지 말고 원래 위치에 그대로 유지하세요.
| 귀하의 상황 | WillDeep이 제공하는 것 |
|---|
| 데이터가 기지국을 벗어날 수 없어 오픈 소스 가중치 + 자체 GPU만 구동 가능 | 모든 엔드포인트에 연결 가능한 세 가지 라인 형식; 32K–64K와 128K–256K 두 개의 모델 구간만을 가진 '기지국' 환경을 위해 설계된 세 단계의 라우팅. 1M 등급은 기반이 아닌 가속기입니다. |
| ... | |
| 적합하지 않은 경우: 대중적인 터미널 에이전트의 극대화된 사용감 추구, Computer Use / Browser Use가 필요한 경우, 다수의 사용자를 위한 웹 서비스. 이 분야는 저희가 진출하지 않으며, 자세한 내용은 경계를 참고하십시오. | |
다른 코딩 에이전트와 무엇이 다른가
주요 경쟁사 4곳 모두 '하나의 프로세스 내에서 하나의 에이전트를 구동'합니다. WillDeep은 Runtime을 상시 대기하는 제어면(Control Plane)으로 만들었으며, 아래 여섯 가지 기능들이 이 위에 구축되어 있습니다:
터미널 TUI ─┐
브라우저 ─┼─→ Runtime Daemon (상시 대기) ─→ 메인 에이전트 ─→ 서브 에이전트 (전용 Worktree) ─→ Verifier (종료 코드 판정)
모바일 중계 ─┘ │
...
추적 가능 · 모든 줄의 변경은 출처가 있다
- Diff 스냅샷은 어떤 Turn, 어떤 Agent, 어떤 도구 호출에서 이 줄이 바뀌었는지 정확하게 파악합니다. 단순히 'AI가 37개 파일을 수정했다'가 아니라, '4번째 라운드에서
test_fixer의 두 번째 edit_file 작업으로 이 6줄이 변경되었다'는 식입니다.
- 검토 패널은 파일별로 통과 / 거부 / 수정 요청을 진행합니다. 제출 전에 Commit Preview를 확인(미실행 미리보기)할 수 있으며, 취소는 회수 구역(Recycle Area)을 통해 이루어지므로
git checkout처럼 일괄적으로 되돌릴 필요가 없습니다.
- 쓰기형 서브 에이전트는 전용 Git Worktree에서 작업하며, 검토를 통과해야만 병합이 허용됩니다. 메인 브랜치에서 같은 파일을 건드리면 즉시 병합 불가로 판정합니다.
/rewind 명령으로 N단계까지 되돌아가며, 대화 내용과 파일 변경 사항이 함께 돌아갑니다. 심지어 되돌리는 과정 자체도 다시 되돌릴 수 있습니다. → 체크포인트 되돌리기
차단 가능 · 다섯 개의 문지기, 하나가 더 바깥에 있다
- 작업 공간 정책. 읽기 전용 / 스마트 승인 / 쓰기 가능 세 단계로 구분되며, 서버 측에서 강제합니다. 클라이언트가 스스로 쓰기 가능하다고 보고할 수 없습니다.
- 정적 규칙.
rm / sudo / mkfs / git push --force / 포크 폭탄과 같은 위험한 형태의 명령어는 절대로 모델에게 판정을 맡기지 않으며, 직접 사용자에게 전달됩니다. 분류기는 의도적으로 보수적입니다: 분석할 수 없는 것은 무조건 '판단 필요'로 하향 조정되며, 버그 하나를 처리하는 비용이 승인 카드를 추가로 띄우는 것이지, 한 번에 아무도 통과시키지 못하는 rm -rf가 아닙니다. 반대로도 제어합니다: `grep
- 6가지 공개 에이전트 역할(工种): Reader, Implementer, Tester, Ops Runner, Judge, Deep. 역할을 정의하고, 읽기, 로그 기록, Git 추적 등의 작업을 소형 모델에게 자동으로 할당하여 주 컨텍스트가 과부하되는 것을 방지합니다.
- 3단계 라우팅은 Runtime의 강제 정책이며 권장 사항이 아닙니다. 1M의
deep 단계는 신청제로, 반드시 낮은 단계를 시도했다는 증거가 담긴 업그레이드 티켓을 제출해야 합니다.
- 라우팅이 고정되지 않습니다: TUI
/routing 및 Web 패널 모두에서 Root / Worker / Deep의 Provider, 모델, 창(Window) 및 예산을 수정할 수 있으며, 추천 매핑을 원클릭으로 복구할 수도 있습니다. config.toml 파일을 직접 수정하는 것은 여전히 1순위 경로이며, 동시 저장 시 충돌 감지 기능이 작동합니다. → 하위 에이전트, 모델 단계
지속 가능성 · 당신의 터미널보다 오래 살아있는 작업
- 상주하는 Runtime Daemon이 자체 프로세스 내에서 작업을 실행합니다. CLI를 닫거나, SSH 연결을 끊거나, 브라우저를 새로고침해도 작업은 계속 진행되며, 돌아와서 이벤트 커서를 통해 이어서 작업할 수 있고 메시지가 손실되는 일이 없습니다.
daemon upgrade는 진행 중인 도구를 손상 없이 인계받아 처리하며, 바이너리 업그레이드 시 작업을 종료할 필요가 없습니다. 이 경로는 진정한 Daemon의 엔드투엔드 테스트를 거칩니다.
- 터미널, 브라우저, 모바일 기기가 동일한 세션(Session), 승인 프로세스 및 에이전트 상태를 공유합니다: 터미널에서 시작하고, 출퇴근길에 모바일로 승인을 처리하며, 집에 와서 브라우저에서 결과를 확인할 수 있습니다.
- 작업 라운드 중에 개입할 수 있습니다: 프롬프트와 첨부 파일이 대기열에 추가되며,
Esc 키를 누르면 언제든지 중단할 수 있고, 대기열은 즉시 재개됩니다. → Runtime Daemon
보안성 · 보이는 진행 상황과 보이지 않는 비밀
- 도구 호출, Token 사용량, 소요 시간, Diff 출처가 모두 구조화되어 보고됩니다. 프롬프트, 명령어, 도구 매개변수, 도구 출력, 로컬 경로는 Web 프론트엔드에 전송되지 않으며 로그에도 기록되지 않습니다.
- 영구 로그를 작성하기 전에, 매개변수에 포함된 자격 증명(Credential)은 명령어 승인과 동일한 규칙으로 마스킹 처리되며, 초장문 출력은 유한한 요약본으로 잘립니다.
- 자체 모델을 탑재하여 특정 벤더에 종속되지 않습니다. OpenAI Chat Completions, OpenAI Responses, Anthropic Messages 세 가지 라인 포맷과 some.im 원클릭 로그인을 지원합니다. Provider 신원 및 라인 포맷은 두 개의 독립적인 차원이므로 자유롭게 조합할 수 있습니다. → 인증 및 자격 증명
기능 개요
| |
|---|
| 모델 | Chat Completions · Responses · Anthropic Messages · some.im |
| ... | |
데이터 기반 증명
소형 컨텍스트 Skill Worker 테스트베드
소형 모델에게 작업을 할당했을 때 실제로 작동하는지 여부를 확인합니다. 여기서는 형용사 대신, 테스트베드에서 나온 수치를 제시합니다: 실제 Provider, 실제 결함(Defect), 실제 cargo 종료 코드가 있으며, verifier가 통과하고 테스트 블록의 단어 하나도 변경되지 않았을 때 성공으로 간주됩니다. 세부 기준 및 샘플은 소형 컨텍스트 Skill Worker를 참조하고, 원본 데이터는 bench/skill-worker-range/에 있습니다. 아래 내용은 ruby scripts/range_trend.rb --inject로 생성되었으므로 직접 수정하지 마십시오.
<!-- range:begin -->
최근 라운드: 2026-08-24T03:21:24Z · 모델 glm-5 · 코드 7e4bb4e
| 지표 | 최근 라운드 | 이전 대비 | 추세 |
|---|
| Worker Verified Success | 100% | ±0 | ▄▄ |
| ... | | | |
| 샘플 16 (검증 가능 13 · 읽기 전용 3) · 평균 5318 token/샘플 · 12 초/샘플 · 부정행위 0 | | | |
<details><summary>과거 2 라운드</summary>
| 시간 | 코드 | 모델 | 샘플 | Verified Success | 부정행위 | 인용 정확도 | 정답률 | 평균 시도 |
|---|
| 2026-08-24T03:21:24Z | 7e4bb4e | glm-5 | 16 | 100% | 0 | 100% | 100% | 1.00 |
| 2026-08-24T03:07:01Z | 2af4f76 | glm-5 | 12 | 100% | 0 | 100% | 100% | 1.00 |
</details>
<!-- range:end -->
테스트 환경은 실험실이고, 온라인(운영 환경)은 별개입니다: 일상 사용 중 Runtime이 실제로 배포한 자식 Agent는 매주 월요일에 스냅샷을 찍는데, 프롬프트(prompt), 경로(path), agent id 없이 카운트와 비율만 기록됩니다. 이제 막 시작했기 때문에 샘플이 적고, 구체적인 지표는 온라인 배포 지표를 참조하세요.
<details><summary>온라인 배포 주간 스냅샷 (<code>ruby scripts/agent_metrics_trend.rb --inject</code>로 생성됨, 수동 수정 금지)</summary>
<!-- agent-metrics:begin -->
최근 스냅샷: 2026-09-20T17:04:54Z · 기간 7d · 코드 b5d1fcc · 버전 0.78.0-rc26
| 지표 | 최근 7일 | 이전 대비 | 목표 | 추세 |
|---|
| Deep Share | 0% | — | ≤ 5% | ▄ |
| ... | | | | |
| 최근 7일: 자식 Agent 실행 5 (협소 분야 3 · 표준 2 · deep 0) · verifier 보유 0 · 미검증 5 · 평균 시도 - | | | | |
| 누적: 자식 Agent 실행 11 · Deep Share 0% · Worker Verified Success 0% (0/2) · 미검증 9 | | | | |
<details><summary>이전 스냅샷 1회</summary>
| 시간 | 코드 | 기간 | 자식 실행 | Deep Share | Skill Coverage | Verified Success | Escalation | 인용 정확도 | 평균 시도 |
|---|
| 2026-09-20T17:04:54Z | b5d1fcc | 7d | 5 | 0% | 60% | - | - | - | - |
</details>
<!-- agent-metrics:end -->
</details>
경계(Boundary)
같은 솔직함: 이것들은 현재 없는 기능들입니다. 검토 회의에서 걸려 넘어지지 마세요.
- OS 레벨 방화벽은 읽기를 제한하지 않으며, 네트워크에 중간 단계가 없습니다. 프로세스가 무엇을 읽든 상관없습니다 (
~/.aws/credentials를 읽을 수 있음). 네트워크는 통신 가능/불가능 두 가지 상태만 있으며, 특정 도메인만 허용할 수 없습니다. [[hooks]] 명령어, MCP stdio 자식 프로세스 및 호스트 자체의 git / rg 호출은 방화벽 밖에 있습니다; bubblewrap이 설치되지 않은 Linux 머신에는 방화벽이 없습니다.
- Hooks는 세 가지 트리거 지점만 존재합니다.
pre_tool / post_tool / approval_resolved이며, 이 중 approval_resolved는 아직 연결되지 않았습니다. hook은 허용하거나 가로채기만 할 수 있으며, 파라미터를 수정할 수는 없습니다.
- MCP는 서버 측의 능동적인 요청을 받지 않습니다.
sampling/*, roots/* 및 GET 이벤트 스트림은 모두 처리하지 않습니다: 호스트가 원격지 대신 모델 요청을 보낼 권한이 없습니다.
- 체크포인트는 라운드(round) 단위까지만 지원하며, git 저장소만 인식합니다. 한 라운드 내에서 개별 도구의 변경 사항 추적은 여전히
/diff의 소유권 기록에 의존합니다; git 저장소가 아닌 작업 공간에서는 대화 복원만 가능합니다.
- Computer Use와 Browser Use는 포함하지 않습니다.
- Web 모드는 단일 사용자 모드이며, 애플리케이션 레벨 인증이 없습니다. 아래 보안 주의사항을 참조하세요.
대중적인 터미널 Agent 분야는 저희가 차지하지 않을 것입니다. 우리가 원하는 것은 사설화(private), 주권(sovereignty), 이종 소형 모델 오케스트레이션(heterogeneous small model orchestration) 영역입니다.
문서
전체 문서는 **docs/**에 있으며, '사용법 먼저, 원리 이해' 순서로 구성되어 있습니다. 자주 사용하는 진입점:
보안 주의사항
- API Key는
api_key_env를 우선 사용하세요 (알림 채널은 해당 *_env 필드를 사용). 설정에 인라인 평문 키가 나타날 경우, Unix 환경에서 파일 권한은 반드시 0600이어야 하며, 그렇지 않으면 시작이 거부됩니다. willdeep config show는 데이터를 마스킹합니다.
- Runtime 제어면(control plane)은 루프백만 수신하며, 인증 토큰은 Shell이나 MCP 자식 프로세스로 전달되지 않습니다.
- Web 모드는 단일 사용자 모드이며, 애플리케이션 레벨 인증이 없습니다. 크로스 머신 접근은 Nginx, VPN 또는 SSH Tunnel을 통해 인증 및 HTTPS를 제공해야 하며, 포트를 공용 인터넷에 직접 노출해서는 안 됩니다.
- 휴대폰 페어링 QR 코드는 평문으로 중계 토큰(relay Token)을 가지고 있으며, 자신의 장치만 스캔할 수 있습니다.
개발 참여
소스 코드에서 빌드하려면 Rust 1.94, Node.js 22 및 Yarn이 필요합니다. 웹 프론트엔드는 바이너리에 임베딩되므로, 먼저 프론트엔드를 구축해야 합니다:
cd web && yarn install --frozen-lockfile && yarn build && cd ..
cargo build --release
제출 전에 이 네 줄을 실행하여 통과시키세요:
cargo fmt --all -- --check
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
...
세 가지 Provider 프로토콜 모두 로컬 Mock HTTP 계약 테스트를 가지고 있어, 실제 API 호출이나 Key 소모 없이 전체 도구 왕복(tool round-trip)을 커버합니다. 실제 모델의 실탄 사격장(live range)은 기본적으로 #[ignore] 처리되어 CI에 포함되지 않습니다. 왜냐하면 신뢰할 수 있는 자격 증명(credentials), 네트워크, 그리고 라운드마다 비용이 들기 때문입니다. 실행 방법은 bench/skill-worker-range/를 참조하세요.
아키텍처는 docs/ARCHITECTURE.md에서, 기능 개요는 PRODUCT_OVERVIEW.md에서, 각 버전의 변경 사항은 CHANGELOG.md에서 확인할 수 있습니다. Issue와 PR 모두 환영합니다. 보안 경계와 관련된 변경 사항이 있다면, 반드시 해당 문서를 업데이트해 주십시오. 모호한 약속을 하는 것보다 "현재 지원하지 않음"이라고 명시하는 것이 낫습니다.
라이선스
Apache License 2.0입니다. WillDeep이라는 이름과 상표는 소스 코드 라이선스에 포함되지 않습니다.
만약 '자체적으로 감사할 수 있는(auditable) 자율 에이전트'가 당신이 기다리던 종류의 Agent라면, 별점(⭐)을 눌러 더 많은 사람이 볼 수 있게 해주세요.