You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@$(VENV_PYTHON) -c "from tools import AVAILABLE_TOOLS; git = [k for k in AVAILABLE_TOOLS if k.startswith('git_')]; print(f' {len(git)} git tools, {len(AVAILABLE_TOOLS)} total tools')"
주 제공자가 실패하면 Kyrozen은 자동으로 폴백 체인(예: DeepSeek → OpenAI → Claude)을 통해 전환합니다. 속도 제한 오류(HTTP 429)는 지터가 포함된 지수 백오프를 트리거합니다.
248
+
주 제공자가 실패하면 Kyrozen은 자동으로 폴백 체인(예: DeepSeek → OpenAI → Claude)을 통해 전환합니다. 속도 제한 오류(HTTP 429)는 지터가 포함된 지수 백오프를 트리거합니다. Ollama는 키가 필요 없는 로컬 제공자입니다. `KYROZEN_PROVIDER=ollama`를 설정하고 필요하면 `KYROZEN_BASE_URL`로 OpenAI-compatible endpoint를 지정하세요. Web headless 시작은 stdin을 읽지 않습니다. 원격 제공자 키가 없으면 명확한 degraded 상태가 되며 대화형 CLI만 키를 요청합니다.
248
249
249
250
---
250
251
251
252
## 🛠 도구 레퍼런스
252
253
253
-
모든 26개 도구는 JSON 액션 블록에서 일반 문자열 `args` 필드를 허용합니다:
254
+
모든 31개 런타임 도구는 JSON 액션 블록에서 일반 문자열 `args` 필드를 허용합니다. 도구 이름, capability 라벨, MCP 입력 schema 및 실제 HTTP 경로는[생성된 런타임 인벤토리](docs/tool-inventory.md)를 기준으로 합니다:
|`browser_type`| CSS selector 입력 | `"session-id|input[name=q]|query"` |
293
+
|`browser_close`| 격리된 브라우저 세션 닫기 |`"session-id"`|
294
+
295
+
### Git (14개 도구)
280
296
281
297
| 도구 | 기능 |
282
298
|------|------|
@@ -293,7 +309,6 @@ python main.py
293
309
|`git_show`|`--stat`으로 커밋 상세 정보 확인 |
294
310
|`git_remote`| 원격 저장소 나열 / 추가 / 삭제 |
295
311
|`git_clone`| 저장소 클론 |
296
-
|`analyze_remote_repo`| 클론 + 모든 파일 읽기 → 구조화된 요약 |
297
312
298
313
### 메모리
299
314
@@ -373,7 +388,9 @@ CLI는 유휴 상태에서 30초마다 최대 4개 기능을 라운드 로빈으
373
388
374
389
### 메모리 저장소
375
390
376
-
장기 메모리는 **ChromaDB**(벡터 데이터베이스, `chroma_memory/`에 저장)를 사용합니다. ChromaDB를 사용할 수 없는 경우 인메모리 저장소로 폴백합니다. 메모리는 의미 기반 검색이 가능하며 — 에이전트는 몇 주 전의 관련 사실을 기억할 수 있습니다.
391
+
OpenKyrozen v2의 장기 메모리는 **SQLite를 사실의 원본**(`~/.kyrozen/v2/openkyrozen.sqlite3`)으로 사용하고, ChromaDB는 다시 만들 수 있는 파생 의미 인덱스로 사용합니다. workspace와 session은 분리되며 ChromaDB를 사용할 수 없어도 SQLite 키워드 검색으로 영속성이 유지됩니다. Web/MCP 단일 사용자 배포에서는 `KYROZEN_SERVER_TOKEN` 하나가 안정적인 actor 하나를 나타내고, 요청의 `speaker`만으로 private 데이터의 소유자를 바꿀 수 없습니다.
392
+
393
+
작업은 재시작 후에도 저장되며 상태는 `pending`, `running`, `succeeded`, `failed`, `blocked`, `cancelled`입니다(이전 `done`은 읽기 호환). `TaskDone`만으로는 성공하지 않고 도구 결과, 테스트, 파일 확인 또는 명시적 확인 증거가 필요합니다. 안전한 API 작업은 worker가 재개하며 failed/blocked 작업은 `/api/v2/tasks/{task_id}/resume`으로 명시적으로 재개합니다.
|`GET`|`/api/v2/agents`| 전문 sub-agent profile 조회 |
440
+
|`POST`|`/api/v2/agents/run`| 격리된 memory와 capability로 sub-agent 실행 |
441
+
|`GET`|`/api/cost`| token 사용량 및 비용 요약 |
442
+
|`GET`|`/api/health`| provider 상태 + memory 수 |
443
+
|`GET`|`/api/voice/speak?text=...`| 시스템 TTS 텍스트 음성 변환 |
400
444
|`POST`|`/api/voice/transcribe`| 음성-텍스트 변환 (패스스루) |
401
445
|`POST`|`/api/webhooks/register`| Webhook URL 등록 |
402
-
|`GET`|`/api/webhooks`| 등록된 Webhook 나열|
446
+
|`GET`|`/api/webhooks`| 등록된 Webhook 조회|
403
447
|`POST`|`/api/webhooks/test`| 테스트 Webhook 실행 |
404
448
|`POST`|`/mcp`| 모델 컨텍스트 프로토콜 (JSON-RPC 2.0) |
405
449
450
+
모든 JSON Action은 일반 문자열 `args`를 사용합니다. MCP의 `tools/list`와
451
+
`server/discover`는 허용된 각 도구의 `inputSchema`를 반환하고 object 인자를 같은 문자열 계약으로 명시적으로 변환합니다. 알 수 없거나 권한이 없는 도구는 JSON-RPC protocol error이며, 실행된 도구의 실패는 `result.isError: true`입니다. 전체 정식 목록은 [docs/tool-inventory.md](docs/tool-inventory.md)를 참조하세요.
452
+
406
453
### Docker 배포
407
454
408
455
```bash
@@ -450,10 +497,12 @@ def register():
450
497
| 기능 | 보호 내용 |
451
498
|------|---------|
452
499
|**위험 명령어 필터**|`rm -rf`, `mkfs`, 포크 폭탄, Windows 파괴적 명령어 차단 |
0 commit comments