feat(worker): 实现基于进程的 Worker 调度与管理#39
Conversation
|
/oc |
|
This PR implements a process-based Worker scheduling and management system for SingerOS. Key changes:
Architecture flow: User creates DigitalAssistant → Saved to DB → Worker process started → Worker connects via WebSocket for config → Agent Runtime initialized → Ready Scope: 9 files changed, +659/-289 lines. Two new files ( One review from author ( |
|
/oc 检查一下变更是否有什么问题 |
|
检查发现以下主要问题: 严重问题:
中等问题:
逻辑问题:
|
- 新增 WorkerScheduler 接口替代原 WorkerRuntime - 新增 WorkerEnvType 类型定义 (process/docker/kubevirt) - 实现 ProcessScheduler 支持 Worker 进程启动/停止/健康检查 - Worker 启动时通过 WebSocket 从 Server 获取 DigitalAssistant 配置 - Server 新增 getConfig 消息处理,从数据库查询配置返回给 Worker - DigitalAssistant Service 创建时自动启动对应的 Worker 进程 - 支持 --assistant-code 参数指定数字员工标识 架构流程: 用户创建 DigitalAssistant → 保存数据库 → 启动 Worker 进程 → Worker 连接 Server 获取配置 → 初始化 Agent Runtime → 就绪
6817cd0 to
93c0607
Compare
- 删除 claude_worker.go 和 simplechat.go - 添加 worker_claudecode.go 和 worker_simplechat.go 子命令 - 新增 worker.go 配置加载和 MCP 服务器启动逻辑 - 简化 config.go,移除 CLIEnginesConfig 和 WorkerConfig - 添加 worker.go 独立配置文件


架构流程:
用户创建 DigitalAssistant → 保存数据库 → 启动 Worker 进程 →
Worker 连接 Server 获取配置 → 初始化 Agent Runtime → 就绪