์ด ๋ฌธ์๋ Developer Preview v0.1.0-rc.3 release artifact๊ฐ ๊ฒ์๋ ๋ค binary ํ๋๋ฅผ ์ค์นํ๊ณ
OpenAI-compatible model์ ์ฐ๊ฒฐํด ํ์ผ ์ฝ๊ธฐ๋ถํฐ ํ๋ก์ ํธ ํ์ยท์์ ยทtest/build๊น์ง ์คํํ๋ ์ต์
์ ์ฐจ๋ค. RC3 ํ๋ณด๋ exact
--allow-file, --allow-dir workspace discovery, atomic write/patch์ host-catalogued shell-free
process ์คํ์ ํฌํจํ๋ค. Native installer ๊ฒฝ๋ก๋ ์์ค ๊ฐ๋ฐ ์ ์ฐจ์ ๋ฌ๋ฆฌ Rust, C compiler, Python,
Node.js, SQLite ์คํ ํ์ผ, Docker ๋๋ XGEN state์ฉ ๋ณ๋ daemon์ด ํ์ํ์ง ์๋ค. npm ๊ฒฝ๋ก๋ง
launcher์ฉ Node.js 22.14 ์ด์์ด ํ์ํ๋ค. ์ฌ์ฉํ model endpoint ์์ฒด๋ ๋ก์ปฌ ๋๋ ์๊ฒฉ์ ๋ณ๋๋ก ์คํ
์ค์ด์ด์ผ ํ๋ค.
๋จผ์ ์ฌ์ฉํ OpenAI-compatible endpoint URL, served model ID์ ํ์ํ ๊ฒฝ์ฐ API key๋ฅผ ์ค๋นํ๋ค. Node.js 22.14 ์ด์์ด ์๋ ์ง์ OS์์๋ ์๋ ์์๊ฐ ๊ฐ์ฅ ์งง๋ค.
npm install --global --include=optional @xgen-ai/cli@0.1.0-rc.3
xgen --version
xgen model setup
xgen model check --compatibility
cd my-project
xgen๋ํํ ํ๋ฉด์์ /status๋ก ์ ํ model๊ณผ idle ์ํ๋ฅผ ํ์ธํ๊ณ , ์์ ์ฝ๊ธฐ ์ ์ฉ ์์
์ผ๋ก ์ฒซ ์น์ธ์
ํ์ธํ ๋ค /exit์ผ๋ก ์ข
๋ฃํ๋ค. Model egress์ file read๋ ์๋ก ๋ค๋ฅธ ์น์ธ์ด๋ค. Node.js๋ฅผ ์ค์นํ์ง
์์ผ๋ ค๋ฉด ์๋ checksum installer๋ฅผ ์ฌ์ฉํ ๋ค xgen model setup๋ถํฐ ๊ฐ์ ์์๋ก ์งํํ๋ค. API key๋ฅผ
๋ช
๋ นํ ์ธ์, shell history ๋๋ ์ผ๋ฐ ์ค์ ํ์ผ์ ๋ฃ์ง ์๋๋ค.
์์
๋ค /usage๋ฅผ ์
๋ ฅํ๋ฉด ์ถ๊ฐ API ํธ์ถ ์์ด ์
๋ ฅยท์ถ๋ ฅยทcached input ํ ํฐ์ ํ์ธํ ์ ์๋ค.
xgen usage RUN_ID๋ ๋ณ๋ ํฐ๋ฏธ๋์์๋ ์์ธ JSON์ ์ถ๋ ฅํ๋ค. ์ฌ์ฉ๋ ๊ธฐ๋ก์ด ์๋ ์ด์ Run์ด๋
provider๊ฐ ์์น๋ฅผ ๋ณด๋ด์ง ์์ ํธ์ถ์ ๋ฏธ์์ด๋ฉฐ, ๋ถ๋ถ ํฉ๊ณ๋ ์ค์ ์ด๋น์ฉ์ผ๋ก ํด์ํ์ง ์๋๋ค.
๋ณ๋ ์ฌ์ฉ๋ ์ค์ ์ ํ์ ์๋ค. ๋น์ฉ์ ์ถ์ ํ ๋๋ง ํ์ฌ ๊ณ์ฝ์ USD/๋ฐฑ๋ง ํ ํฐ ๋จ๊ฐ๋ฅผ
--input-price, --cached-input-price, --output-price ์ธ ์ต์
์ผ๋ก ํจ๊ป ์ง์ ํ๋ค.
| CI runner OS | Architecture | Release asset |
|---|---|---|
| Ubuntu 24.04 | x86-64 | xgen-x86_64-unknown-linux-musl |
| Ubuntu 24.04 ARM (public preview runner) | ARM64 | xgen-aarch64-unknown-linux-musl |
| macOS 15 | Intel | xgen-x86_64-apple-darwin |
| macOS 15 | Apple Silicon | xgen-aarch64-apple-darwin |
| Windows Server 2025 + Visual Studio 2026 | x86-64 | xgen-x86_64-pc-windows-msvc.exe |
Linux binary๋ musl target, Windows binary๋ static CRT๋ก ๋น๋ํ๋ค. macOS์ Windows artifact๋ ํ์ฌ prototype ๋จ๊ณ์์ OS code signing/notarization์ด ์์ผ๋ฏ๋ก Gatekeeper ๋๋ SmartScreen ๊ฒฝ๊ณ ๊ฐ ๋ํ๋ ์ ์๋ค. GitHub build attestation์ build provenance๋ฅผ ๊ฒ์ฆํ์ง๋ง OS code signing์ ๋์ ํ์ง ์๋๋ค. ํ๋ณด๋ค ์ค๋๋ OS version์ ์์ง ์ค์น E2E๋ฅผ ํต๊ณผํ๋ค๊ณ ์ฃผ์ฅํ์ง ์๋๋ค.
Node.js 22.14 ์ด์์ด ์ด๋ฏธ ์๋ ๊ฐ๋ฐ์๋ RC3๊ฐ npm์ ๊ฒ์๋ ๋ค ๋ค์์ฒ๋ผ exact version์ ์ค์นํ๋ค.
@xgen-ai/cli์๋ lifecycle script๊ฐ ์๊ณ ํ์ฌ OS/CPU์ฉ native optional package ํ๋๋ฅผ registry์์ ํจ๊ป
์ค์นํ๋ค. ์ค์น ์ค GitHub download๋ source compile์ ํ์ง ์๋๋ค.
npm install --global @xgen-ai/cli@0.1.0-rc.3
xgen --version
xgen licensesPrerelease ์ต์ ์ฑ๋์ @xgen-ai/cli@next, stable์ @xgen-ai/cli@latest์ง๋ง ์ฌํ ๊ฐ๋ฅํ ์ค์น์ ๊ฒ์ฆ์๋
exact version์ ์ฌ์ฉํ๋ค. npm install --omit=optional์ ์คํ binary package๋ฅผ ์ ๊ฑฐํ๋ฏ๋ก ์ง์ํ์ง
์๋๋ค. npm ๊ฒฝ๋ก์์ platform package๋ฅผ ์ฐพ์ง ๋ชปํ๋ฉด launcher๋ ๋ค๋ฅธ binary๋ฅผ ๋ด๋ ค๋ฐ์ง ์๊ณ ์ข
๋ฃํ๋ค.
Node.js๋ฅผ ์ค์นํ๊ณ ์ถ์ง ์๊ฑฐ๋ GitHub attestation๊น์ง ์ง์ ํ์ธํ๋ ค๋ฉด ์๋ checksum installer ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ค.
Installer๋ฅผ ๋จผ์ ํ์ผ๋ก ๋ฐ์ ๋ค ๊ฒํ ยท์คํํ๋ค. Installer๋ shell profile์ด๋ user PATH๋ฅผ ์๋์ผ๋ก
์์ ํ์ง ์๊ณ ๊ด๋ฆฌ์ ๊ถํ์ ์์ฒญํ์ง ์๋๋ค. RC3๋ prerelease์ด๋ฏ๋ก stable release๋ง ๊ฐ๋ฆฌํค๋
releases/latest ๋์ ์๋ exact tag๋ฅผ ์ฌ์ฉํ๋ค. ํ๋ณด version PR์ merge๋ง์ผ๋ก artifact๊ฐ ์๊ธฐ์ง๋
์์ผ๋ฏ๋ก GitHub Release์ v0.1.0-rc.3์ด ๊ฒ์๋ ๊ฒ์ ํ์ธํ ๋ค ์คํํ๋ค.
Linux/macOS:
installer=$(mktemp "${TMPDIR:-/tmp}/xgen-installer.XXXXXX")
curl -q --proto '=https' --proto-redir '=https' --tlsv1.2 \
--connect-timeout 15 --max-time 60 --max-filesize 1048576 -fsSLo "$installer" \
https://github.com/PlateerLab/xgen-cli/releases/download/v0.1.0-rc.3/xgen-installer.sh
sh "$installer" --version v0.1.0-rc.3
rm -f "$installer"
export PATH="$HOME/.local/bin:$PATH"Windows PowerShell:
$installer = Join-Path ([System.IO.Path]::GetTempPath()) "xgen-installer-$([Guid]::NewGuid().ToString('N')).ps1"
curl.exe -q --proto "=https" --proto-redir "=https" --tlsv1.2 --connect-timeout 15 --max-time 60 --max-filesize 1048576 -fsSLo $installer "https://github.com/PlateerLab/xgen-cli/releases/download/v0.1.0-rc.3/xgen-installer.ps1"
if ($LASTEXITCODE -ne 0) { throw "XGEN installer download failed" }
& $installer -Version v0.1.0-rc.3
Remove-Item -LiteralPath $installer
$env:Path = "$env:LOCALAPPDATA\XGEN\bin;$env:Path"Windows client์ effective execution policy๊ฐ Restricted๋ฉด & $installer๊ฐ ์ฐจ๋จ๋ ์ ์๋ค. ๋ด์ฉ์
๊ฒํ ํ ๋ค์๋ง ํ์ฌ process ํ์ ์ผ๋ก
powershell.exe -NoProfile -ExecutionPolicy Bypass -File $installer๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ์๋ช
๋
installer/winget ๊ฒฝ๋ก๋ prototype ์ดํ ๋ฒ์๋ค.
๊ธฐ๋ณธ ์์น๋ Linux/macOS์ $HOME/.local/bin/xgen, Windows์
%LOCALAPPDATA%\XGEN\bin\xgen.exe๋ค. ๋ค๋ฅธ user-owned ์์น๋ ๊ฐ๊ฐ --install-dir ๋๋
-InstallDir๋ก ์ง์ ํ๋ค. ์ค์น๊ธฐ๋ ๋ค์ ์์๋ฅผ fail-closed๋ก ์ํํ๋ค.
- OS์ architecture์ ๋ง๋ raw binary ํ๋ ๋ฐ
checksums.sha256์ ๊ฐ์ exact release์์ ๋ฐ๋๋ค. - SHA-256์ด ์ผ์นํ๋์ง ํ์ธํ๋ค.
- ๋ฐ์ binary์
--version์ด ์์ฒญ tag์ ์ผ์นํ๋์ง ํ์ธํ๋ค. xgen protocol check๋ฅผ ์ธ๋ถ network ์์ด ์คํํ๋ค.- symbolic link/reparse point๊ฐ ์๋ regular destination์ ๊ฐ์-directory rename์ผ๋ก ์ค์นํ๋ค.
Project, Cargo dependency, Rust standard library, Linux musl๊ณผ LLVM libunwind์ ๊ณ ์ง๋ ์ค์น๋ binary์ ํฌํจ๋๋ค. ํ์ธ ๋ช ๋ น์ runtime state๋ฅผ ๋ง๋ค๊ฑฐ๋ network๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
xgen licenses์ฌํ ๊ฐ๋ฅํ ์ค์น์๋ latest ๋์ exact tag๋ฅผ ์ง์ ํ๋ค.
installer=$(mktemp "${TMPDIR:-/tmp}/xgen-installer.XXXXXX")
curl -q --proto '=https' --proto-redir '=https' --tlsv1.2 \
--connect-timeout 15 --max-time 60 --max-filesize 1048576 -fsSLo "$installer" \
https://github.com/PlateerLab/xgen-cli/releases/download/v0.1.0-rc.3/xgen-installer.sh
sh "$installer" --version v0.1.0-rc.3
rm -f "$installer"$installer = Join-Path ([System.IO.Path]::GetTempPath()) "xgen-installer-$([Guid]::NewGuid().ToString('N')).ps1"
curl.exe -q --proto "=https" --proto-redir "=https" --tlsv1.2 --connect-timeout 15 --max-time 60 --max-filesize 1048576 -fsSLo $installer "https://github.com/PlateerLab/xgen-cli/releases/download/v0.1.0-rc.3/xgen-installer.ps1"
if ($LASTEXITCODE -ne 0) { throw "XGEN installer download failed" }
& $installer -Version v0.1.0-rc.3
Remove-Item -LiteralPath $installerRelease asset์ ์ง์ ๋ฐ์ ๊ฒฝ์ฐ GitHub CLI๋ก build provenance๋ฅผ ์ถ๊ฐ ํ์ธํ ์ ์๋ค.
gh attestation verify ./xgen-x86_64-unknown-linux-musl \
--repo PlateerLab/xgen-cliChecksum์ ์ ์ก ์์์ ํ์งํ์ง๋ง ๊ฐ์ release publisher ์์ฒด๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์ธ์ฆํ์ง๋ ์๋๋ค. ์๋ update์ silent downgrade๋ ํ์ฌ ์ง์ํ์ง ์๋๋ค.
ํ์ฌ ๊ฒ์ฆ๋ ๊ธฐ์ค์ vLLM์ OpenAI-compatible Chat Completions endpoint๋ค. ๋ค์ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํด์ผ ์ค์ planner call์ด ํต๊ณผํ๋ค.
- base URL์ด bare host๊ฐ ์๋๋ผ API root๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ๋๋ถ๋ถ
/v1์ด์ง๋ง provider๊ฐ ์๊ธฐ API๋ฅผ ๋ค๋ฅด๊ฒ ๋ฒํธ ๋ถ์ด๋ฉด ๊ทธ ๊ฒฝ๋ก๋ฅผ ์ด๋ค(์:/api/paas/v4). ๋์/๊ฐ ๋ถ์ด๋ ๊ฐ๊ฒ ์ทจ๊ธํ๋ค. - plaintext HTTP๋
127.0.0.1๋๋::1literal loopback๋ง ์ฌ์ฉํ๋ค. - server๊ฐ strict JSON Schema response format์ ์ง์ํ๋ค.
- response์
model๋ฌธ์์ด์ด ์ค์ ํ served model ID์ ์ ํํ ๊ฐ๋ค. - custom CA, ambient proxy, redirect์ ์๋ retry์ ์์กดํ์ง ์๋๋ค.
์ผ๋ฐ ์ฌ์ฉ์๋ ๋ํํ ์จ๋ณด๋ฉ์ ํ ๋ฒ ์คํํ๋ค. ๋๋ฝ๋ URL๊ณผ API key๋ฅผ ๋ฌป๊ณ catalog์์ model์ ์ ํํ๋ค. API key๋ ์จ๊น ์ ๋ ฅ์ด๋ฉฐ ์ผ๋ฐ config๋ SQLite๊ฐ ์๋๋ผ OS ๋ณด์ ์ ์ฅ์์๋ง ๋ณด๊ดํ๋ค.
xgen model setup
xgen model list
xgen model check --compatibilitymodel setup์ด provider๋ฅผ ๋ฌผ์ ๋ ๊ณ ๋ฅด๋ preset์ base URL๊ณผ wire ์ค์ ๋ง ์ฑ์ ์ฃผ๋ ๊ธฐ๋ณธ๊ฐ์ด๋ค.
๋ช
์ํ option, XGEN_OPENAI_* ํ๊ฒฝ๋ณ์, ์ด๋ฏธ ์๋ ๊ฐ์ ์ด๋ฆ์ profile์ด preset๋ณด๋ค ์ฐ์ ํ๋ค.
--provider <id>๋ก ๋ํ ์์ด ์ง์ ํ ์๋ ์๋ค.
| id | provider | base URL | ๊ฒ์ฆ |
|---|---|---|---|
deepseek |
DeepSeek | https://api.deepseek.com/v1 |
์ค์ ํธ์ถ๋ก ํ์ธ |
openai |
OpenAI | https://api.openai.com/v1 |
๋ฏธํ์ธ, provider ๋ฌธ์ ๊ธฐ์ค |
openrouter |
OpenRouter | https://openrouter.ai/api/v1 |
๋ฏธํ์ธ, provider ๋ฌธ์ ๊ธฐ์ค |
glm |
GLM / Zhipu (z.ai) | https://api.z.ai/api/paas/v4 |
๋ฏธํ์ธ, provider ๋ฌธ์ ๊ธฐ์ค. Coding Plan ๊ณ์ ์ https://api.z.ai/api/coding/paas/v4์ด๋ฏ๋ก --base-url๋ก ์ง์ ํ๋ค |
local |
๋ก์ปฌ model (Ollama ๊ธฐ๋ณธ port) | http://127.0.0.1:11434/v1 |
loopback fixture๋ก ํ์ธ |
custom |
๊ทธ ๋ฐ์ OpenAI-compatible endpoint | ์ง์ ์ ๋ ฅ | โ |
preset์์ ๊ฐ์ฅ ์ค์ํ ๊ฐ์ response_format์ด๋ค. planner๋ ๊ตฌ์กฐํ๋ JSON์ผ๋ก ๋ตํ๋ฏ๋ก ์ด ์ค์ ์
๋ฌด์ํ๋ provider๋ model setup์ ํต๊ณผํ๊ณ Run์ ์ ๋ถ ์คํจํ๋ค. ๊ทธ๋์ Anthropic Claude๋
preset์ ์๋ค. Claude์ OpenAI ํธํ layer๋ response_format์ ๋ฌด์ํ๋ค๊ณ ๋ฌธ์์ ์ ํ ์์ด์,
preset์ผ๋ก ๋ฃ์ผ๋ฉด ์ค์ ์ ๊นจ๋ํ๊ฒ ๋๋๊ณ ๋งค ํด์ด ๊นจ์ง๋ค. ์ด ์ค์ ์ ์งํค๋ gateway(์: OpenRouter)
๋ฅผ ํตํ๋ฉด ์ฌ์ฉํ ์ ์๋ค.
์ธ์ฆ ์๋ loopback vLLM์ non-interactiveํ๊ฒ ์ง์ ํ ์๋ ์๋ค. Tokenizer๋ฅผ ์๋ตํ๋ฉด model ID๋ฅผ tokenizer/profile identity๋ก ์ฌ์ฉํ๋ค.
xgen model setup \
--base-url http://127.0.0.1:8000/v1 \
--model qwen3.8-27b \
--tokenizer Qwen/Qwen3.8-27B-FP8Loopback HTTP์๋ ambient XGEN_OPENAI_API_KEY๊ฐ ์๋๋ผ๋ ์ ์กํ์ง ์๋๋ค.
Planner ํธ์ถ์ wall-clock ์์ฐ๊ณผ ์ถ๋ ฅ token ์์ฐ์ ํ๋กํ ์ค์ ์ด๋ค. ๊ธฐ๋ณธ๊ฐ์ 300์ด์ 1024 token์ด๋ฉฐ
--inference-timeout <์ด>, --max-output-tokens <ํ ํฐ> ๋๋ XGEN_OPENAI_INFERENCE_TIMEOUT,
XGEN_OPENAI_MAX_OUTPUT_TOKENS๋ก ๋ฐ๊พผ๋ค. ๋ก์ปฌ 27B ๊ธ model์ planning context prefill๋ง 30์ด
์ด์ ๊ฑธ๋ฆด ์ ์์ผ๋ฏ๋ก timeout์ ์ค์ผ ๋๋ model_call_unknown์ด ๋์ด๋๋ค. ๋ ๊ฐ์ Run์ request
profile์ ๋ฌถ์ด๋ฏ๋ก Run ์์ ๋ค ํ๋กํ์์ ๋ฐ๊พธ๋ฉด ๊ทธ Run์ resume์ configuration_mismatch๋ก
๋ซํ๋ค.
xgen model setup --name qwen38 --base-url http://127.0.0.1:11434/v1 \
--model qwen3.8:27b-q4_K_M --inference-timeout 300 --max-output-tokens 1024์๊ฒฉ provider๋ HTTPS๋ฅผ ์ฌ์ฉํ๋ค. Interactive setup์ macOS Keychain, Windows Credential Manager ๋๋
Linux Secret Service์ key๋ฅผ ์ ์ฅํ๋ค. Headless/CI๋ secret manager ์ถ๋ ฅ์ stdin์ผ๋ก ์ ๋ฌํ๋ค.
--store-token์ ์๋ตํ๋ฉด ํ์ฌ setup ๊ฒ์ฆ์๋ง ์ฌ์ฉํ๊ณ ์ ์ฅํ์ง ์๋๋ค.
secret-manager-command | xgen model setup \
--name qwen-xgen \
--base-url https://provider.example/v1 \
--model served-model-id \
--token-stdin \
--store-tokenOS ๋ณด์ ์ ์ฅ์๊ฐ ์๋ Linux server์์๋ ํ๋ฌธ ํ์ผ๋ก fallbackํ์ง ์๊ณ
credential_store_unavailable๋ก ์คํจํ๋ค. ์ด ๊ฒฝ์ฐ ํ๊ฒฝ๋ณ์๋ stdin์ ๋งค ์คํ์ ์ฃผ์
ํ๋ค.
XGEN_OPENAI_API_KEY="$(secret-manager-command)" xgen model check --compatibility์ผ๋ฐ ์ค์ ์ฐ์ ์์๋ ๋ช
์์ option, XGEN_OPENAI_* ํ๊ฒฝ๋ณ์, selected/active profile ์์๋ค.
Credential์ --token-stdin, XGEN_OPENAI_API_KEY, profile secure store ์์๋ค. Stored credential์
profile URL๊ณผ ์ต์ข
URL์ด ์ ํํ ๊ฐ์ ๋๋ง ์ด๋ค.
xgen model setup์ bounded GET /v1/models ๋ค ์ค์ strict JSON Schema
POST /v1/chat/completions๋ฅผ ๋ณด๋ด ๋ ์์ฒญ์ด ๋ชจ๋ ์ฑ๊ณตํ profile๋ง commitํ๋ค. Workspace, SQLite ๋๋
Run state๋ฅผ ๋ง๋ค์ง ์๋๋ค. model check ๊ธฐ๋ณธํ์ ๊ธฐ์กด ์๋ํ ํธํ์ฑ์ ์ํด catalog GET๋ง ์ํํ๊ณ ,
--compatibility๋ฅผ ์ง์ ํ๋ฉด ๊ฐ์ inference probe๋ฅผ ์ถ๊ฐํ๋ค. Redirect, retry์ ambient proxy๋
์ฌ์ฉํ์ง ์๋๋ค. ์ผ๋ถ compatible server๋ catalog๋ฅผ ์ ๊ณตํ์ง ์๊ฑฐ๋ alias๋ฅผ ๋ค๋ฅด๊ฒ ๊ด๊ณ ํ๋ฏ๋ก
model_not_advertised๋ catalog์์ ํ์ธ๋์ง ์์๋ค๋ ๋ป์ด๋ค. Setup probe ํต๊ณผ๋ ์ ์ฒด coding loop
ํ์ง์ ๋ณด์ฅํ์ง๋ ์์ผ๋ฉฐ ์ค์ workspace E2E๋ ๋ณ๋ release gate๋ค.
Profile ๊ด๋ฆฌ๋ ๋ค์ ๋ช ๋ น์ผ๋ก ํ๋ค.
xgen model list
xgen model use qwen-xgen
xgen model logout qwen-xgen
xgen model remove qwen-xgen์ธ๋ถ ๋ณด์ยทheadless ๋์์ ๋ชจ๋ธ ํ๋กํ๊ณผ ์ต์ด ์จ๋ณด๋ฉ์ ๋ฐ๋ฅธ๋ค.
์ ์ก ์ฌ๋ถ๊ฐ ๋ถํ์ ํ inference transport ์คํจ๋ ์๋ ์ฌ์๋ํ์ง ์๊ณ ํด๋น Run์
model_call_unknown recovery ์ํ๋ก ๋จ๊ธธ ์ ์๋ค.
ํ๋ก์ ํธ root์์ xgen๋ง ์คํํ๋ฉด ๊ฐ๋ฒผ์ด REPL์ด ์ด๋ฆฐ๋ค. TTY์์ active profile์ด ์์ผ๋ฉด URL, ์จ๊น
API key์ model ์ ํ ์จ๋ณด๋ฉ์ ๋จผ์ ์ํํ๋ค. Pipe/headless ์
๋ ฅ์์๋ prompt๋ฅผ ์๋์ผ๋ก ์ด์ง ์๋๋ค.
cd my-project
xgen๊ธฐ๋ณธ๊ฐ์ model egress, read, write, execute๋ฅผ ๊ฐ๊ฐ ask๋ก ๋ฌป๋๋ค. ํ์ฌ directory๋ ํ์ ๊ฐ๋ฅํ
workspace scope์ง๋ง ์น์ธ์ด ์์ผ๋ฉด ์ค์ I/O๋ฅผ ์ํํ์ง ์๋๋ค. PATH์์ ๊ณ ์ allowlist์ ํด๋นํ๋ ๊ณตํต
๊ฐ๋ฐ executable์ logical catalog๋ก ๋ฐ๊ฒฌํ๋ catalog ๋ฑ๋ก์ ์คํ ์น์ธ์ด ์๋๋ค.
xgen> ํ๋ก์ ํธ๋ฅผ ํ์ํ๊ณ ์คํจํ ํ
์คํธ๋ฅผ ์์ ํด์ค.
Allow sending the goal, session context, and tool observations to the model? [y/N] y
progress: model_call_starting
๋ช
๋ น์ /model, /status, /permissions, /resume, /clear, /exit์ด๋ค. ์ค ๋ \๋ multiline
continuation์ด๋ค. ์ง์ durable completion summary๋ง ๋ค์ goal์ ๋น์ ๋ขฐ context๋ก ์ด์ด์ง๋ฉฐ /clear๋
์ฐ๊ฒฐ์ ์ ๊ฑฐํ์ง๋ง Run state๋ฅผ ์ญ์ ํ์ง ์๋๋ค. ์์ธ ๋์๊ณผ Ctrl+C ๋ณต๊ตฌ ์๋ฏธ๋
๋ํํ REPL์ ๋ฐ๋ฅธ๋ค.
๋ชจ๋ธ ์๋ต ๊ฑฐ์ ๋ค /resume RUN_ID๊ฐ configuration_mismatch๋ก ๋งํ๋ฉด ์ถ๊ฐ๋ก ํ์๋๋
configuration๊ณผ changed_items๋ฅผ ํ์ธํ๋ค. workspace๋ ์๋ ๋๋ ํฐ๋ฆฌ, file_catalog๋ ์๋
--allow-file/--allow-dir, model_profile์ ์๋ ๋ชจ๋ธยท์ถ๋ก ์ต์
์ ๋ณต์ํด์ผ ํ๋ค. execution_profile์์
environment:LANG ๊ฐ์ ํญ๋ชฉ์ ์๋ ์
ธ ํ๊ฒฝ์, executable:git ๊ฐ์ ํญ๋ชฉ์ ์๋ ์คํ ํ์ผ ์ ํยท๊ฒฝ๋กยท๋ด์ฉ์
๋ณต์ํ๋ค. ๊ฐยท๊ฒฝ๋ก๋ ์ถ๋ ฅํ์ง ์์ผ๋ฉฐ binding์ ๋ฌด์ํ๋ ๊ฐ์ ์ฌ๊ฐ๋ ์ ๊ณตํ์ง ์๋๋ค.
์ Run์๋ ํญ๋ชฉ๋ณ fingerprint๋ฅผ ์ ์ฅํ๋ค. ๊ธฐ์กด Run์ ์ด ์ ๋ณด๊ฐ ์๊ฑฐ๋ ์คํ profile ์ ์ ์์ฒด๊ฐ ๋ฌ๋ผ์ก๋ค๋ฉด ํญ๋ชฉ ์ด๋ฆ๊น์ง๋ ์ ์ ์๊ณ ์ค์ ์ข ๋ฅ๋ง ์๋ดํ๋ค. ์ด๋ฏธ ์๋ฃํ Run์ ์ต์ข ์๋ต replay์๋ ์ด ์ค์ ๋ณต์์ด ํ์ํ์ง ์๋ค.
ํ์ฌ directory๋ฅผ workspace๋ก ์ด๊ณ model์ด ์ ํํ ์ ์๋ ์๋ ํ์ผ์ ๋ช ์ํ๋ค. Model egress์ ์ค์ file read๋ ์๋ก ๋ค๋ฅธ ๋์๋ค.
xgen run \
--allow-file README.md \
--allow-remote-model-egress \
--allow-read \
'README๋ฅผ ์ฝ๊ณ ํต์ฌ์ ์์ฝํด์ค.'Windows PowerShell์์๋ active profile์ ์ฌ์ฉํด ๊ฐ์ ๋ช ๋ น์ ์คํํ๋ค.
xgen run `
--allow-file README.md `
--allow-remote-model-egress `
--allow-read `
"README๋ฅผ ์ฝ๊ณ ํต์ฌ์ ์์ฝํด์ค."RC3์์๋ ์ฌ์ฉ์๊ฐ ํ์ผ๋ช ์ ๋ฏธ๋ฆฌ ๋์ดํ์ง ์๊ณ ์ ํํ workspace directory๋ฅผ ํ์ํ๊ณ ๋ณ๋ ์น์ธ ์๋ atomic writeํ ์ ์๋ค.
xgen run \
--workspace . \
--allow-dir . \
--allow-remote-model-egress \
--allow-read \
--allow-write \
'ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ํ์ธํ๊ณ ํ์ํ ํ์ผ์ ์์ ํ๊ฒ ์์ ํด์ค.'์ด mode๋ list-directory, stat, case-sensitive literal search-text, bounded UTF-8
read-text, write-atomic, apply-patch๋ฅผ ์ ๊ณตํ๋ค. --allow-write๋ read/model egress์ ๋
๋ฆฝ๋ ๋์๋ค. ๋ ์ข๊ฒ
ํ์ฉํ๋ ค๋ฉด --allow-dir src --allow-dir tests์ฒ๋ผ ๋ฐ๋ณตํ๊ณ ,
directory ๋ฐ์ exact file๋ง --allow-file Cargo.toml๋ก ์ถ๊ฐํ๋ค. ๋ฏธ์๋ฃ ์ฌ๊ฐ์๋ ์๋์ ๋์ผํ
--allow-dir/--allow-file ์งํฉ์ ๋ค์ ์ ๊ณตํด์ผ ํ๋ค.
RC3์์๋ test/build์ฉ executable๋ absolute path๋ก ๋ช ์ํ ์ ์๋ค. ๊ฒฝ๋ก๋ฅผ model์ ๋ณด๋ด์ง๋ ์์ผ๋ฉฐ logical ID๋ง planning constraint์ ๋ ธ์ถํ๋ค.
xgen run \
--workspace . \
--allow-dir . \
--allow-executable cargo="$(command -v cargo)" \
--allow-remote-model-egress \
--allow-read \
--allow-write \
'ํ๋ก์ ํธ๋ฅผ ํ์ํ๊ณ ์์ ํ ๋ค ํ
์คํธํด์ค.'Process ์คํ์ file read/write์ ๋ณ๋ ์น์ธ์ด๋ค. --allow-execute๊ฐ ์์ผ๋ฉด ์ค์ ์คํ ์ ์
execute_approval_required๋ก pauseํ๋ฉฐ, ๋์ผํ scope์ executable catalog๋ฅผ ๋ค์ ์ ๊ณตํด ์น์ธํ๋ค.
xgen resume run-0123456789abcdef0123456789abcdef \
--workspace . \
--allow-dir . \
--allow-executable cargo="$(command -v cargo)" \
--allow-read \
--allow-write \
--allow-execute๋งค๋ฒ ๊ฒฝ๋ก๋ฅผ ์ ์ง ์์ผ๋ ค๋ฉด --allow-path-executables๋ก PATH์์ ์ฐพ์ ๊ฐ๋ฐ ๋๊ตฌ(git, cargo, node,
npm, python3, go, make, java ๋ฑ)๋ฅผ ํ ๋ฒ์ catalog์ ๋ฃ๋๋ค. ๋ํํ REPL์ ๋งค ์ธ์
์ด๋ ๊ฒ ๋์ํ์ง๋ง
run์ ๊ธฐ๋ณธ๊ฐ์ด ์๋๋ค. ๋ฐ๊ฒฌ ๊ฒฐ๊ณผ๋ ๊ทธ ์คํ์ PATH์ ๋ฌ๋ ค ์์ด์ Run์ execution profile์ด
๋จธ์ ๋ง๋ค ๋ฌ๋ผ์ง๊ณ , ๊ทธ๋ฌ๋ฉด resume์ด ํ๋กํ ๋ถ์ผ์น๋ก ๋ซํ๋ค. ๊ทธ๋์ opt-in์ด๊ณ , resume์๋ ๊ฐ์
ํ๋๊ทธ๋ฅผ ๋ค์ ์ค์ผ ํ๋ค. --allow-executable๋ก ์ ์ ํญ๋ชฉ์ ๊ทธ๋๋ก ์ ์ง๋๋ฉฐ ์ด๋ฆ์ด ๊ฒน์น๋ฉด ์ด๊ธด๋ค.
xgen run \
--workspace . \
--allow-dir . \
--allow-path-executables \
--allow-remote-model-egress \
--allow-read \
--allow-write \
--allow-execute \
'ํ
์คํธ๋ฅผ ๋๋ฆฌ๊ณ ์คํจ๋ฅผ ๊ณ ์ณ์ค.'์๋ ๋ฐ๊ฒฌ์ shell์ catalog์ ๋ฃ์ง ์๋๋ค. ํญ๋ชฉ ํ๋๊ฐ executable ํ๋์ด๋ฏ๋ก Receipt์ ์ค์ ๋ก ์คํ๋
๊ฒ์ด ๋จ๋๋ค(ADR-0049). sh -c "<๋ช
๋ น>"์ ์ค์ ๋ช
๋ น์ argument ์์ ์จ๊ธฐ๋ฏ๋ก, shell์ด ํ์ํ host๋
--allow-executable sh=/bin/sh์ฒ๋ผ ์ด๋ฆ์ ์ง์ ์ ์ด ํจ๊ป ๋ฃ๋๋ค.
--allow-execute๋ ์น์ธ์ด๊ณ catalog๋ ๋๋จธ์ง ํ์ชฝ์ด๋ค. catalog ์์ด --allow-execute๋ง ์ฃผ๋ฉด
configuration_mismatch๋ก ๋ซํ๋ฉฐ, ์ด๋ ์ชฝ์ด ๋น ์ก๊ณ ์ด๋ป๊ฒ ์ฑ์ฐ๋์ง ํจ๊ป ์ถ๋ ฅํ๋ค.
์คํ์ shell์ ์ฌ์ฉํ์ง ์์ง๋ง OS sandbox๋ ์๋๋ค. ํ์ฉํ compiler, package manager, interpreter์
๊ทธ ํ์ process๋ ํ์ฌ ์ฌ์ฉ์ ๊ถํ์ผ๋ก project code๋ฅผ ์คํํ ์ ์๋ค. CLI๋ ambient ํ๊ฒฝ ์ ์ฒด๋ฅผ
์์ํ์ง ์๊ณ ์ ํ๋ host ํ๊ฒฝ๋ง ์ ๋ฌํ๋ฉฐ API key์ proxy/ํด๋ผ์ฐ๋ credential์ child์ ์ ๋ฌํ์ง
์๋๋ค. Top-level executable catalog๋ ํด๋น ๋๊ตฌ๊ฐ ์คํํ๋ ํ์ ํ๋ก๊ทธ๋จ์ allow-list๊ฐ ์๋๋ค.
๋ฏธ์๋ฃ ์ฌ๊ฐ ์ executable ๋ด์ฉ, workspace ๋๋ safe environment binding์ด ๋ฌ๋ผ์ง๋ฉด ์๋ ๋์ฒด๋ ์ฌ์คํ
์์ด configuration_mismatch๋ก ๋ซ๋๋ค.
์ํ๊ฐ pause๋๋ฉด stderr์ run_id๋ฅผ ์ฌ์ฉํ๋ค. ๋ฏธ์๋ฃ Run์ workspace์ ์๋ ์ฌ์ฉํ ๋์ผํ
allow-file/allow-dir catalog๋ฅผ ๋ค์ ์ ๊ณตํ๊ณ ํ์ํ ๋์๋ฅผ ๋ช
์ํ๋ค. Base URL์ ์ environment์์
๋ค์ ์ฝ๋๋ค.
xgen resume run-0123456789abcdef0123456789abcdef \
--workspace . \
--allow-file README.md \
--allow-remote-model-egress \
--allow-read์๋ฃ๋ Run๋ง model๊ณผ workspace ์์ด ๋ค์์ฒ๋ผ offline replayํ ์ ์๋ค.
xgen resume run-0123456789abcdef0123456789abcdef์์ธ ์ฌ๊ฐ ์ ์ฐจ๋ Public local run/resume prototype์ ๋ฐ๋ฅธ๋ค. RC3๋ workspace discovery, bounded atomic text write/patch์ ๋ช ์์ shell-free process ์คํ์ ์ ๊ณตํ๋ค. Browser์ MCP๋ ํ์ ๋ฒ์์ด๋ฏ๋ก ํ ์ํ๋ฅผ Claude Code/Codex ์ ์ฒด ๊ธฐ๋ฅ๊ณผ ๋์ผํ๋ค๊ณ ํด์ํ์ง ์๋๋ค. Discovery ๊ฒฝ๊ณ๋ Workspace filesystem discovery, write ๊ฒฝ๊ณ๋ Workspace atomic write๋ฅผ ๋ฐ๋ฅธ๋ค.
npm ์ค์น๋ณธ์ ์ exact version์ ๋ค์ ์ค์นํด ์
๋ฐ์ดํธํ๋ค. next๋ ์๊ฐ์ด ์ง๋๋ฉด ๋ค๋ฅธ prerelease๋ฅผ
๊ฐ๋ฆฌํฌ ์ ์์ผ๋ฏ๋ก ํ์ผ๋ฟ๊ณผ ์ฅ์ ์ฌํ์๋ ์ฌ์ฉํ์ง ์๋๋ค.
npm install --global --include=optional @xgen-ai/cli@0.1.0-rc.3
xgen --versionNative ์ค์น๋ณธ์ ์ installer๋ฅผ ๊ฐ์ install directory์ exact tag๋ก ๋ค์ ์คํํ๋ค. Installer๋ ์
binary์ checksum, version๊ณผ protocol์ ๋จผ์ ํ์ธํ๊ณ ์ฑ๊ณตํ ํ์ผ๋ง ๊ฐ์ directory rename์ผ๋ก ๊ต์ฒดํ๋ค.
์คํ ์ค์ธ xgen๋ฅผ ๊ต์ฒดํ์ง ๋ง๊ณ ๋ชจ๋ session์ ์ข
๋ฃํ ๋ค ์
๋ฐ์ดํธํ๋ค.
RC3 npm package๋ง ๋ฌธ์ ๊ฐ ์๊ณ ๊ฐ์ RC3 GitHub Release๊ฐ ์ ์์ด๋ผ๋ฉด npm ์ค์น๋ณธ์ ์ ๊ฑฐํ๊ณ exact RC3 native installer๋ก ์ ํํ ์ ์๋ค. ๋ ์ฑ๋์ ๊ฐ์ release binary๋ฅผ ๋ด์ผ๋ฏ๋ก ์ด๋ ์ ํ version rollback์ด ์๋๋ผ ์ค์น ์ฑ๋ ์ ํ์ด๋ค.
์ ํ version์ RC2๋ก ๋๋๋ ค์ผ ํ๋ฉด ๊ธฐ์กด RC3 binary์ state๋ฅผ ์ง์ฐ๊ฑฐ๋ ๋ฎ์ด์ฐ์ง ๋ง๊ณ RC2๋ฅผ ๋ณ๋ user-owned directory์ ์ค์นํ๋ค. RC3๊ฐ ๋ง๋ Run์ RC2๋ก ์ด๊ฑฐ๋ resumeํ๋ ๊ฒ์ ์ง์ํ์ง ์๋๋ค. RC2์์ ์์ํด ์์ง model egress๊ฐ ํ์ํ Run์ ์๋ RC2 binary๋ก ๋ง์น๊ณ , ์ ์์ ์ RC3์์ ์ Run์ผ๋ก ์์ํ๋ค. ์๋ฃ๋ RC2 Run์ RC3์์ offline replayํ ์ ์๋ค.
RC2๋ ์ด๋ฆ ๋ณ๊ฒฝ ์ release์ด๋ฏ๋ก ์๋ historical installer์ ์คํ ํ์ผ์ xgeny ์ด๋ฆ์ ์ฌ์ฉํ๋ค.
rollback_dir="$HOME/.local/xgen-rc2/bin"
installer=$(mktemp "${TMPDIR:-/tmp}/xgen-installer.XXXXXX")
curl -q --proto '=https' --proto-redir '=https' --tlsv1.2 \
--connect-timeout 15 --max-time 60 --max-filesize 1048576 -fsSLo "$installer" \
https://github.com/PlateerLab/xgen-cli/releases/download/v0.1.0-rc.2/xgeny-installer.sh
sh "$installer" --version v0.1.0-rc.2 --install-dir "$rollback_dir"
rm -f "$installer"
"$rollback_dir/xgeny" --versionImmutable GitHub Release๋ npm version์ ์น๋ช ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ๊ธฐ์กด tag๋ package๋ฅผ ์ด๋ยท๊ต์ฒดยท์ฌ์ฌ์ฉํ์ง ์๋๋ค. ์์ ์ ๋ ๋์ ์ version์ผ๋ก ๊ฒ์ํ๊ณ , ์ํฅ์ ๋ฐ์ exact version๊ณผ ์ฐํ ๋ฐฉ๋ฒ์ release note์ ๋จ๊ธด๋ค.
npm ์ค์น๋ณธ์ launcher์ ํ์ฌ platform package๋ฅผ ํจ๊ป ์ ๊ฑฐํ๋ค.
npm uninstall --global @xgen-ai/cliNative installer๋ runtime state๋ฅผ ์ญ์ ํ์ง ์๋๋ค. Binary๋ง ์ ๊ฑฐํ๋ ค๋ฉด ์ค์นํ exact regular file์ ์ง์ด๋ค.
rm "$HOME/.local/bin/xgen"Remove-Item -LiteralPath "$env:LOCALAPPDATA\XGEN\bin\xgen.exe"Run state๋ ๋ณ๋๋ก ๋ณด์กด๋๋ค. Linux๋ $XDG_STATE_HOME/xgen-cli ๋๋ $HOME/.local/state/xgen-cli,
macOS๋ $HOME/Library/Application Support/XGEN CLI, Windows๋ %LOCALAPPDATA%\XGEN CLI๋ฅผ ์ฌ์ฉํ๋ค.
State ์ญ์ ๋ Run ๊ธฐ๋ก๊ณผ durable recovery ์ ๋ณด๋ฅผ ์์ผ๋ฏ๋ก uninstall์ ์๋ ํฌํจํ์ง ์๋๋ค.
Model profile ์ค์ ํ์ผ(model-profiles.json)๋ ๋จ๋๋ค. ์์น๋ platform config directory๋ก, Linux๋
$XDG_CONFIG_HOME/xgen-cli ๋๋ $HOME/.config/xgen-cli, macOS๋ $HOME/Library/Application Support/XGEN CLI,
Windows๋ %APPDATA%\XGEN CLI๋ค. XGEN_STATE_HOME์ Run state๋ง ์ฎ๊ธฐ๊ณ profile ์์น๋ ๋ฐ๊พธ์ง ์์ผ๋ฉฐ,
profile ์ ์ฅ์๋ฅผ ๊ฒฉ๋ฆฌํ๋ ค๋ฉด XGEN_CONFIG_HOME์ ๋ฐ๋ก ์ค์ ํ๋ค. OS ๋ณด์ ์ ์ฅ์์ credential๊น์ง
์ง์ฐ๋ ค๋ฉด ์ญ์ ์ ์ xgen model remove <name>์ ์คํํ๋ค.
| ์ฆ์ | ํ์ธ๊ณผ ์กฐ์น |
|---|---|
xgen: command not found |
npm global bin ๋๋ native install directory๊ฐ ํ์ฌ PATH์ ์๋์ง ํ์ธํ๊ณ ์ terminal์์ ๋ค์ ์คํํ๋ค. |
unsupported_platform ๋๋ platform package ์์ |
์ง์ OS/architecture์ Node.js version์ ํ์ธํ๊ณ --omit=optional ์์ด exact package๋ฅผ ์ฌ์ค์นํ๋ค. |
| Installer๊ฐ destination์ ๊ฑฐ๋ถ | ๊ด๋ฆฌ์ ๊ณต์ฉ ๊ฒฝ๋ก ๋์ user-owned directory๋ฅผ ์ฌ์ฉํ๊ณ symbolic link/reparse point๋ broadly writable directory๋ฅผ ์ ๊ฑฐํ์ง ๋ง๊ณ ๋ค๋ฅธ ๋น ๊ฒฝ๋ก๋ฅผ ์ ํํ๋ค. |
| PowerShell์์ installer ์ฐจ๋จ | Script๋ฅผ ๋จผ์ ๊ฒํ ํ๋ค. ํ์ฌ process ํ์ execution-policy ์์ธ๋ ์กฐ์ง ์ ์ฑ ์ด ํ์ฉํ ๋๋ง ์ฌ์ฉํ๋ค. SmartScreen ๊ฒฝ๊ณ ๋ RC3์ Authenticode๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค. |
base_url_must_name_the_api_root |
base URL์ด host๋ง ์๊ณ ๊ฒฝ๋ก๊ฐ ์๋ค. https://api.openai.com์ด ์๋๋ผ https://api.openai.com/v1์ฒ๋ผ API root๊น์ง ์ ๋๋ค. ์ด๋ค ๊ฒฝ๋ก์ธ์ง๋ provider ๋ฌธ์๊ฐ ์ ํ๋ค. |
credential_store_unavailable |
ํ๋ฌธ ์ ์ฅ fallback์ ์๋ค. Secret manager ์ถ๋ ฅ์ --token-stdin์ด๋ ํ์ฌ process์ XGEN_OPENAI_API_KEY๋ก ์ ๋ฌํ๋ค. |
chat_completions_incompatible |
Provider๊ฐ strict JSON Schema ์์ฒญ์ ๋ฐ์๋ค์์ง๋ง ์ค์ ๋ก ๊ฐ์ ํ์ง ์์๊ฑฐ๋ envelope ๋ฐ์ผ๋ก ๋ตํ๋ค. Probe๋ production planner์ ๊ฐ์ proposal schema๋ฅผ ๋ณด๋ด๊ณ schema ๋ฐ field๋ฅผ ํ๋ ๋ ์๊ตฌํ๋ฏ๋ก, ๋ฌธ๋ฒ์ ๊ฐ์ ํ์ง ๋ชปํ๋ ์๋ฒ๋ planner call ๋์ model setup์์ ์ฌ๊ธฐ์ ๋ซํ๋ค. ์ด๋ ์๋๋ ๋์์ด๋ค. Probe ์คํค๋ง๋ ๊ตฌ์กฐ๋ง ๊ฐ์ ํ๋ฏ๋ก(ADR-0037) additionalProperties, required, enum, const๋ฅผ ๊ฐ์ ํ์ง ๋ชปํ๋ provider๊ฐ ์ฌ๊ธฐ์ ๊ฑธ๋ฆฐ๋ค. |
model_not_advertised ๋๋ compatibility ์คํจ |
URL์ด bare host๊ฐ ์๋๋ผ provider์ API root์ธ์ง, exact served model ID์ strict JSON Schema Chat Completions ์ง์์ ํ์ธํ๋ค. Redirect๋ ์๋ retry์ ์์กดํ์ง ์๋๋ค. |
model setup/model check์ timeout |
Inference probe๋ production planner์ ๊ฐ์ wall-clock ์์ฐ์ ์ด๋ค. ๋ก์ปฌ model์ ์ฒซ ๋ก๋๊ฐ ํฌ๊ธฐ์ disk cache ์ํ์ ๋ฐ๋ผ ์์ญ ์ด ๊ฑธ๋ฆด ์ ์์ผ๋ฏ๋ก endpoint์์ model์ ํ ๋ฒ warm-upํ ๋ค ์ฌ์๋ํ๋ค. |
provider_output_truncated |
Probe๋ planner ์๋ต์ด ์ถ๋ ฅ token ์์ฐ์์ ์๋ ธ๋ค. Reasoning์ ๋ง์ด ์ฐ๋ model์ ์ต์ข JSON ์ ์ ์์ฐ์ ์์งํ ์ ์์ผ๋ฏ๋ก model์ thinking ์ค์ ์ด๋ profile์ ์ถ๋ ฅ ์์ฐ์ ์กฐ์ ํ๋ค. Rate limit์ด ์๋๋ฏ๋ก ์ฌ์๋๋ก ํด๊ฒฐ๋์ง ์๋๋ค. |
proposal_rejected.* |
๋ค์ class๊ฐ Core๊ฐ ์ ์์ ๊ฑฐ๋ถํ ์ด์ ๋ค. capability_unavailable/capability_unsupported๋ ํ์ฉํ์ง ์์ capability ์ ํ, invocation_invalid๋ scope ๋ฐ ์ธ์๋ ์คํค๋ง ์๋ฐ, tool_call_budget_exhausted๋ ์์ฐ ์์ง์ด๋ค. Class๋ Core ํ์ ์ด๋ฉฐ model ์ถ๋ ฅ ์๋ฌธ์ด ์๋๋ค. |
model_rejected.* |
๋ค์ class๋ journal์ model call settlement์ ๊ฐ์ ๊ฐ์ด๋ค. planner_invalid_response๋ provider๊ฐ strict JSON Schema๋ฅผ ์งํค์ง ์์ ์๋ต(๋ฌธ๋ฒ ๋ฏธ์ง์ยท๋ฏธ์ ์ฉ), provider_limit์ ์ถ๋ ฅ ์์ฐยท์์ฒญ ํฌ๊ธฐ ์ด๊ณผ, provider_rejected๋ 4xx ๊ฑฐ๋ถ๋ค. Class๋ Core ํ์ ์ด๋ฉฐ model ์ถ๋ ฅ ์๋ฌธ์ด ์๋๋ค. |
configuration_mismatch |
์๋ workspace, file/directory scope, executable์ model profile binding(inference timeoutยท์ถ๋ ฅ ์์ฐ ํฌํจ)์ผ๋ก resumeํ๋ค. ์๋ ๋์ฒดํ์ง ๋ง๊ณ ํ์ํ๋ฉด ์ Run์ ์์ํ๋ค. |
model_call_unknown.timeout์ด planner ํธ์ถ๋ง๋ค ๋ฐ๋ณต |
ํ๋กํ์ inference timeout์ด modelยทhardware์ ๋นํด ์งง๋ค. ๋ก์ปฌ 27B๋ ํธ์ถ๋น 60์ด ์ํ์ด ๊ฑธ๋ฆฌ๋ฏ๋ก --inference-timeout์ ์ฌ๋ฆฐ๋ค. |
model_call_unknown.transport_unavailable / .interrupted |
์์ฒญ์ด ์ ์ก๋์ ์ ์์ผ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ชป ๋ฐ์๋ค(์ฐ๊ฒฐ ๋๊น) ๋๋ process๊ฐ ์๋ต ์ ์ ๋๋ฌ๋ค. ์๋ replayํ์ง ์์ผ๋ฏ๋ก endpoint ์ํ๋ฅผ ํ์ธํ ๋ค resumeํ๋ค. |
model_call_unknown.* ๋๋ effect_outcome_unknown |
๋ถํ์ ์์
์ ์๋ ๋ฐ๋ณตํ์ง ์๋๋ค. /status์ /resume์ ๊ณ ์ ์ง๋จ์ ํ์ธํ๊ณ ์ธ๋ถ ์ํ๋ฅผ ๋ณ๋๋ก ๊ฒ์ฆํ๋ค. |
์ง์ ์์ฒญ์๋ xgen --version, OS/architecture, ์ค์น ์ฑ๋, ์ข
๋ฃ ์ฝ๋์ ๊ณ ์ ๋ ์ค๋ฅ ์ฝ๋๋ง ์ฐ์ ์ ๊ณตํ๋ค.
API key, endpoint ์ ์ฒด URL, prompt, model ์๋ฌธ ์๋ต, source, process stdout/stderr, state DB์ Run ID๋ ๊ณต๊ฐ
issue์ ์ฒจ๋ถํ์ง ์๋๋ค. ์ผ๋ฐ ๋ฒ๊ทธ๋
GitHub Issues, ๋ณด์ ์ทจ์ฝ์ ์ ๊ณต๊ฐ issue๊ฐ ์๋
๋น๊ณต๊ฐ ์ทจ์ฝ์ ์ ๊ณ ๋ฅผ ์ฌ์ฉํ๋ค. ์ฌํ์ฉ
project๋ ๋ฏผ๊ฐ์ ๋ณด๊ฐ ์๋ ์ต์ fixture๋ก ์๋ก ๋ง๋ ๋ค. ์ธ๋ถ ๋ฒ์๋ ๋ณด์ ์ ์ฑ
์ ๋ฐ๋ฅธ๋ค.
- XGEN๋ model egress, read, write์ execute๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์น์ธํ๋ค. ํ ์น์ธ์ด ๋ค๋ฅธ ๊ถํ์ ํฌํจํ์ง ์๋๋ค.
process.execute๋ shell injection์ ์ค์ด์ง๋ง OS sandbox๊ฐ ์๋๋ค. ํ์ฉํ compiler, package manager์ child process๋ ํ์ฌ ์ฌ์ฉ์ ๊ถํ์ผ๋ก project code๋ฅผ ์คํํ๋ค.- Run state์๋ goal๊ณผ bounded tool output์ด ํฌํจ๋ ์ ์์ผ๋ฏ๋ก state root ์ ์ฒด๋ฅผ ๋ฏผ๊ฐ ๋ฐ์ดํฐ๋ก ์ทจ๊ธํ๋ค.
- SQLite๋ binary์ ๋ด์ฅ๋ local library๋ค. SQLite server๋ ๋ณ๋ database ์ค์น๊ฐ ํ์ํ์ง ์๋ค.
- ์ ์ก ์ฌ๋ถ๊ฐ ๋ถํ์ ํ model/effect๋ Unknown์ผ๋ก ๋ณด์กดํ๋ฉฐ ์๋ replayํ์ง ์๋๋ค.
- macOS/Windows RC3 binary์๋ OS code signing/notarization์ด ์๋ค. Checksum๊ณผ GitHub attestation์ ์ ์ก ๋ฌด๊ฒฐ์ฑ๊ณผ build provenance๋ฅผ ํ์ธํ์ง๋ง OS publisher ์๋ช ์ ๋์ ํ์ง ์๋๋ค.