diff --git a/Dockerfile b/Dockerfile index a1bf23d..a7dfc3d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ COPY config.yaml . COPY data/jwt-private.pem ./data/ EXPOSE 3000 -CMD ["./tori"] +CMD ["./tori", "server"] diff --git a/Makefile b/Makefile index bcbdf93..91c231a 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ dev: wait dev-backend: - cargo run + cargo run -- server dev-frontend: cd web && npm run dev -- --port 5173 diff --git a/README.md b/README.md index 2fad15c..5a9ead2 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,29 @@ AI agent 驱动的工作流管理 Web 应用。描述需求,AI 规划,agent 执行,随时通过 comment 反馈。 +## 架构 + +``` +Frontend <--> Server (REST + WS) <--> Worker (agent loop + LLM + exec) + | + SQLite +``` + +- **Server** (`tori server`): API 网关 + DB 持久化 + WebSocket 广播 + 派发调度 +- **Worker** (`tori worker`): 完整 agent 执行引擎(LLM 调用 + 脚本执行 + 工具),必须在线才能跑 workflow + ## 快速开始 ```bash # 开发模式(前后端同时启动) make dev +# 启动 worker(连接本地 server) +cargo run -- worker + +# 启动 worker(连接远程 server) +cargo run -- worker --server wss://tori.euphon.cloud/ws/tori/workers --name my-worker + # 构建生产版本 make build @@ -28,4 +45,4 @@ cp config.yaml.example config.yaml - **前端**: Vite + Vue 3 + TypeScript - **LLM**: OpenAI 兼容 API(Requesty.ai 网关) - **实时通信**: WebSocket -- **远程执行**: SSH +- **Worker**: `tori server` / `tori worker` 子命令 diff --git a/doc/deploy.md b/doc/deploy.md index 5fac4b0..cf2d035 100644 --- a/doc/deploy.md +++ b/doc/deploy.md @@ -88,6 +88,23 @@ database: path: "tori.db" ``` +## Worker 部署 + +Worker 可以部署在任何机器上,通过 WebSocket 连接 server: + +```bash +# 同一台机器 +./tori worker + +# 远程连接 +./tori worker --server wss://tori.euphon.cloud/ws/tori/workers --name my-worker + +# 环境变量方式 +TORI_SERVER=wss://tori.euphon.cloud/ws/tori/workers TORI_WORKER_NAME=gpu-worker ./tori worker +``` + +Server 容器内的 CMD 已改为 `./tori server`。Worker 可以独立部署,不需要 config.yaml(LLM config 由 server 下发)。 + ## 查看状态 ```bash