仓库分布与职责¶
OmicOS 的代码不在一个 monorepo——拆成多个仓库,每个负责一层。下表是 你贡献代码前应该知道的全景:
仓库 |
角色 |
主要语言 |
入口 |
|---|---|---|---|
Rust sidecar — agent 编排、LLM 流式、工具执行、内核桥接 |
Rust 1.78+ |
|
|
Tauri 桌面前端 — Vue 3 SPA |
Vue 3 + TS + Rust(Tauri 容器) |
|
|
omicos-admin |
Flask 共享后端 — agent / skill / model catalog |
Python 3.11 (Flask + Gunicorn) |
|
omicos-env |
内核 venv — |
Python 3.11 |
|
用户向教程(Jupyter notebooks) |
Python |
— |
|
本仓库 |
开发者文档(你正在读) |
Markdown / Sphinx |
|
谁依赖谁¶
┌─────────────────────┐
│ omicos-admin │
│ (单独部署) │
└──────────┬──────────┘
│ HTTPS sync only
▼
┌──────────┐ spawn ┌───────────────┐ spawn ┌───────────┐
│ omicos-ui│ ───────▶│ omicos-core │ ───────▶│ omicos-env│
│ (Tauri) │ │ (Rust) │ ZMQ │ (Jupyter) │
└──────────┘ └───────────────┘ └───────────┘
omicos-ui依赖omicos-core二进制——构建 Tauri 包之前必须 把omicos-core的 release sidecar 拷到omicos-ui/src-tauri/binaries/omicos-aarch64-apple-darwin(或对应 平台名)。omicos-core不依赖omicos-ui——可以单独跑cargo run启动 HTTP server,CLI 也用得着。omicos-admin谁都不依赖——是个孤立服务,对其它仓库零硬连接。
在本机的物理对应¶
~/Desktop/analysis/omicverse-project/
├── omicos-core/ # → PrimorDecode/omicos-core
├── omicOS-ui/ # → PrimorDecode/omicos-ui
├── omicos-admin/ # → 内部仓库
├── omicos-env/ # → 内核 venv(pyproject)
├── omicverse-skills/ # → 内置 skill 源(已弃用为 root,但仍是
│ # skill 写作的协作仓库)
└── omicos-develop-tutorial/ # ← 你正在读的
读源码的入口¶
写代码之前最该读的几个文件:
模块 |
关键文件 |
为什么重要 |
|---|---|---|
omicos-core |
|
所有 HTTP 路由都在这里登记 |
omicos-core |
|
|
omicos-core |
|
|
omicos-core |
|
turn 主循环:build prompt → call provider → 循环工具 |
omicos-core |
|
toolset 展开规则 |
omicos-core |
|
3 个 provider 协议(ChatCompletions / Codex / Gemini) |
omicos-ui |
|
conversation + sync 状态 |
omicos-ui |
|
sidecar 拉起 / 死亡处理 |
omicos-admin |
|
全部 endpoint + 权限 |