oxi · Agent OS · Rust

oxios

Agent Operating System. LLM은 chat box에 갇혀 있다 — oxios는 그 chat box를 운영체제로 바꾼다. Supervisor로 에이전트를 띄우고, Ouroboros로 스펙을 만들고, A2A로 다른 에이전트와 협업한다.

역할
설계·구현·공개 (7개 workspace 크레이트)
언어
Rust 2024 (rust 1.85+)
스택
Tokio · Axum · oxicode-sdk · ouroboros · rustls (TLS)
정보
MIT · ~67K LOC · 196+ source files

0. 주요 화면

mock 데이터로 빌드된 React SPA 실제 화면. daemon 없이 /api를 mock 가로채고 zustand chat store를 pre-seed했다 (Web UI 섹션 참조).

oxios Chat page — Korean agent conversation with Interview/Execute/Evaluate phase badges and a memory.store tool call
Chat — 인터뷰·실행·평가 phase 배지가 달린 한국어 에이전트 대화. 세션 컨텍스트 유지.
oxios Dashboard — 6 KPI cards (Agent Status / Tokens / CPU / RAM / Memory / Pending Approvals), system health, and activity feed
Dashboard — 6개 KPI(에이전트 상태, 토큰, CPU/RAM, 메모리, 승인 대기)와 시스템 헬스.
oxios Agents list — 8 agents with status, cost, duration, tokens table; All/Running/Completed/Failed tabs
Agents — 8개 에이전트 리스트, 상태·비용·지속시간·토큰. All/Running/Completed/Failed 탭.
oxios Sessions list — 4 sessions with IDs, agent, message counts, timestamps
Sessions — 세션별 에이전트·메시지 수·생성/갱신 시각.

1. 무엇을 풀려는가

문제해결책
chat 닫으면 에이전트도 죽음Supervisor: fork / exec / wait / kill — Unix 프로세스처럼
스펙 없이 실행 → 출력 신뢰 불가Ouroboros: assess → crystallize → execute → review
앱마다 브라우저/실행 재발명Built-in engine: 헤드리스 브라우저(oxibrowser) · 호스트 exec · MCP 브리지 · 스킬
세션 사이 기억 없음Vector memory: 지속·검색·시맨틱 회상
에이전트 사이 보안 경계 없음Access Manager: RBAC · 경로 샌드박스 · Merkle-chain 감사 로그
LLM 프로바이더 장애가 연쇄 전파Circuit Breaker: 3-state 보호
에이전트 간 작업 위임 프로토콜 없음A2A: Google의 agent-to-agent 프로토콜

2. 레이어 아키텍처

oxios 레이어 아키텍처: Channel → Gateway → Kernel(Orchestrator/Supervisor/13 subsystems) → Ouroboros → Engine(oxicode-sdk)
사용자는 Channel(Web/CLI/Telegram) 어느 것이든 동일한 메시지를 보낸다. Gateway가 채널 무관 라우팅을 하고, Kernel은 13개 서브시스템을 KernelHandle 파사드로 노출한다. 모든 실행은 oxicode-sdk 기반.

2.1 KernelHandle — 22개 API

외부에서 Kernel을 다룰 때의 단일 진입점.

3. 핵심 서브시스템

3.1 Supervisor

Oxios의 init. Unix의 fork/exec/wait/kill을 에이전트에 그대로 적용. Send+Sync 트레잇 객체로 어디든 띄울 수 있다.

3.2 Ouroboros Protocol

"스펙 없이 실행하지 않는다"는 원칙을 강제. 4단계 unified flow (재시도 2회):

  1. assess — 의도와 요구사항 평가
  2. crystallize — 실행 가능한 스펙 생성
  3. execute — 실행
  4. review — 결과 검토, 실패 시 최대 2회 재시도

3.3 Built-in Browser

oxibrowser를 내장. 별도 Chromium 설치나 헤드리스 브라우저 subprocess 없음 — 모두 in-process. AI 에이전트는 kernel.browser 한 줄로 웹 자동화를 시작한다.

3.4 Skills

프롬프트 스킬 시스템 (brainstorming, code review, …). 사용자가 정의한 스킬도 동적 로드.

3.5 Vector Memory

시맨틱 검색 가능한 영속 메모리. 세션 간 컨텍스트 유지.

3.6 Spaces

에이전트 작업 컨텍스트 분리 (worktree 기반 isolation과 결합).

3.7 MCP & A2A

MCP(Model Context Protocol)로 외부 도구 통합. A2A로 다른 에이전트와 수평 통신.

3.8 Persona System

사용자/에이전트 페르소나 정의. 작업 톤과 권한을 페르소나 단위로 묶는다.

3.9 Circuit Breaker

3-state (Closed/Open/Half-Open) 보호. LLM 프로바이더 장애가 한 호출에서 시스템 전역으로 번지지 않는다.

3.10 Git Integration

worktree 기반 작업 격리. 에이전트 작업이 메인 브랜치를 오염시키지 않는다.

3.11 Cron Scheduler · Budget Manager · Resource Monitor

백그라운드 작업, 토큰 예산, 리소스(CPU/RAM/디스크) 모니터링.

4. 워크스페이스 구조

oxios-kernel

Supervisor · Orchestrator · Scheduler · 13 서브시스템

oxios-gateway

채널 무관 메시지 라우팅 (Web · CLI · Telegram)

oxios-ouroboros

스펙 우선 프로토콜 엔진 — Seed/Phase/Evaluation 타입

oxios-memory

Vector memory — 시맨틱 회상·영속

oxios-mcp

MCP(Model Context Protocol) 통합

oxios-markdown

마크다운 렌더링·문서 도구

oxios-calendar

시간 기반 트리거·스케줄링

5. 보안 모델

6. 디자인 철학

Unix

한 가지만 잘한다. 작은 조각을 조합한다. 에이전트에 fork/exec/wait/kill. 이벤트에 pipe. 컨테이너 없음.

Ouroboros

스펙 없이 실행하지 않는다. assess → crystallize → execute → review (재시도 2회).

No reimplementation

oxicode-sdk를 재사용. 이미 있는 걸 다시 만들지 않는다.

7. 3자 통합 — oxicode-sdk · oxibrowser · oxios

oxios는 두 개의 foundation tier를 동시에 합성한다.

7.1 oxicode-sdk 통합

oxicode-sdk의 멀티 에이전트 빌더 패턴을 oxios-kernel이 그대로 사용한다. AgentRuntimeoxicode_sdk::AgentLoop를 감싸고, 에이전트 정의는 동일한 Rust 타입. oxicode CLI에서 만든 에이전트 그룹이 oxios에서도 동작한다.

7.2 oxibrowser 통합

kernel.browser API는 oxibrowser를 in-process로 임베드한다 (oxios/Cargo.tomloxibrowser = "0.17" 의존). subprocess Chromium, Playwright dependency, 외부 바이너리 호출 없음. 헤드리스 브라우저가 24MB 단일 바이너리에 들어간다. oxicode도 같은 oxibrowser를 다른 트레잇 레이어(browser)로 사용한다 — 같은 foundation을 공유하지만 각자의 도구 호출 모델에 맞게 노출한다.

7.3 통합의 효과

oxi 통합 의존성 다이어그램 — oxicode-sdk와 oxibrowser가 foundation이고 oxios가 둘을 합성한다
oxi 3자 통합 — oxicode-sdkoxibrowserfoundation tier를 이루고, oxios가 둘을 합성한다.

8. 레포지토리

⬡ github.com/project-oxi/oxios