Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions docs/development/model-onboarding.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,15 @@ xgeny model remove qwen-xgen
`--token-stdin`, `XGENY_OPENAI_API_KEY`, profile secure store 순서다. Profile credential은 profile URL과
최종 URL이 정확히 같을 때만 사용한다.

Profile 파일 `model-profiles.json`은 platform config directory 아래 app-owned private directory에 둔다.
Linux는 `$XDG_CONFIG_HOME/xgeny` 또는 `$HOME/.config/xgeny`, macOS는
`$HOME/Library/Application Support/XGENy`, Windows는 `%APPDATA%\XGENy`다. `XGENY_CONFIG_HOME`으로 위치를
바꿀 수 있으며 state root와 같은 규칙(절대경로, home/config base directory 자체와 `.`/`..` 거부, Unix
`0700`)을 적용한다. `XGENY_STATE_HOME`은 Run state만 옮기므로, 격리된 test나 measurement에서
`XGENY_STATE_HOME`만 설정하고 `model setup`/`use`/`remove`를 실행하면 사용자의 실제 profile 저장소가
바뀐다. 저장소를 건드리지 않으려면 `XGENY_CONFIG_HOME`을 함께 설정하거나 `run`/`model check`에
`--base-url`, `--model`, `--tokenizer`를 명시한다.

Compatibility probe는 production planner와 같은 proposal JSON Schema와 프로필의 출력 token 예산·inference timeout(ADR-0035, 기본 1024 token·300초)을 사용하고 응답을 production과 같은 document 규칙으로 검증한다. Probe는 model에게 schema 밖의 top-level field를 하나 더 넣으라고 요구하므로, strict schema를 실제로 강제하는 provider만 통과한다. Schema를 받아들이지만 강제하지 못하는 provider(예: 문법 컴파일에 실패하고도 200을 반환하는 서버)는 첫 planner call 대신 `model setup`에서 실패한다. Catalog GET만 더 짧은 timeout을 유지한다. Reasoning을 많이 쓰는 model이 최종 JSON 전에 예산을 소진하면 `provider_output_truncated`로 닫으며, rate limit과 구분한다.

`model check`는 기본적으로 기존 계약인 catalog GET만 보낸다. `--compatibility`는 strict JSON Schema
Expand Down
3 changes: 2 additions & 1 deletion docs/development/public-local-run-resume.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ workspace mode는 `list-directory`, `stat`, `search-text`, `read-text`, `write-a
## 실행

SQLite 실행 파일이나 server는 필요 없다. 기본 state 위치 대신 격리된 위치를 쓰려면
`XGENY_STATE_HOME`을 설정한다. API token이 필요한 HTTPS endpoint만
`XGENY_STATE_HOME`을 설정한다. Model profile 저장소는 별도의 `XGENY_CONFIG_HOME`을 따르며 `XGENY_STATE_HOME`의
영향을 받지 않는다. API token이 필요한 HTTPS endpoint만
`XGENY_OPENAI_API_KEY`를 사용한다. token을 CLI argument로 전달하지 않는다. 반복 입력을 줄이려면
base URL, model과 tokenizer identity를 각각 `XGENY_OPENAI_BASE_URL`, `XGENY_OPENAI_MODEL`,
`XGENY_OPENAI_TOKENIZER`에 둘 수 있다. Tokenizer를 생략하면 model ID를 같은 identity로 사용한다. Planner 호출의 wall-clock 예산과 출력 token 예산은 활성 프로필의 값(ADR-0035, 기본 300초·1024 token)을 따르며 `XGENY_OPENAI_INFERENCE_TIMEOUT`, `XGENY_OPENAI_MAX_OUTPUT_TOKENS`로 덮어쓸 수 있다. 두 값은 request profile digest에 들어가므로 Run 시작과 resume 사이에 바꾸면 `configuration_mismatch`가 된다.
Expand Down
6 changes: 6 additions & 0 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,12 @@ Run state는 별도로 보존된다. Linux는 `$XDG_STATE_HOME/xgeny` 또는 `$H
macOS는 `$HOME/Library/Application Support/XGENy`, Windows는 `%LOCALAPPDATA%\XGENy`를 사용한다.
State 삭제는 Run 기록과 durable recovery 정보를 잃으므로 uninstall에 자동 포함하지 않는다.

Model profile 설정 파일(`model-profiles.json`)도 남는다. 위치는 platform config directory로, Linux는
`$XDG_CONFIG_HOME/xgeny` 또는 `$HOME/.config/xgeny`, macOS는 `$HOME/Library/Application Support/XGENy`,
Windows는 `%APPDATA%\XGENy`다. `XGENY_STATE_HOME`은 Run state만 옮기고 profile 위치는 바꾸지 않으며,
profile 저장소를 격리하려면 `XGENY_CONFIG_HOME`을 따로 설정한다. OS 보안 저장소의 credential까지
지우려면 삭제 전에 `xgeny model remove <name>`을 실행한다.

## 문제 해결과 지원 정보

| 증상 | 확인과 조치 |
Expand Down