# OpenMOSS

OpenMOSS Logo

**OpenMOSS,可让多 Agent 自主运行的 AI 公司操作系统**

🚀 为什么选 OpenMOSS · 🎬 实际案例 · 🧩 使用场景 · 🏗️ 系统架构 · ⚡ 快速启动 · ⚙️ 配置说明 · 📡 API 文档 · 🗺️ Roadmap

OpenClaw Python FastAPI Vue SQLite License Agents

> **给你的 AI 公司装上操作系统。** OpenMOSS 是一个可让多 Agent 自主运行的「AI 公司操作系统」,它凭借 OpenClaw、Claude Code 等 AI Agent 系统的模拟工作能力,实现了**自组织、自修复、自优化、自进化、自巡监、自激励、闭环质量控制、Skill 可插拔、循环任务**等堪比真人团队的工作能力,高度还原真人工作流。经过实测它在一定程度上具备替代「重复劳动办公环境」的可能性,使其可以获得无限进步的生产力。 📖 [实际效果展示及详细使用说明(LINUX DO)](https://linux.do/t/topic/1709670) · 🌐 [English](README_EN.md) ![OpenMOSS,你的AI公司操作系统](docs/banner-cn.jpg) ![任务管理](docs/screenshots/task-management.png) ![Agent 管理](docs/screenshots/agent-management.png) ![仪表盘趋势](docs/screenshots/dashboard-trends.png) ![Agent 协作实况](docs/screenshots/agent-collaboration.png) ### ✨ 核心特点 - 🏢 **像公司一样运转** — 规划者=总监、执行者=员工、审查者=品控、巡查者=运维,AI 们各司其职 - 🤖 **全自动运行** — Agent 通过 cron 自主唤醒,自动认领、执行、提交,无需人类编排 - 🔁 **闭环质量控制** — 审查 + 评分 + 驳回返工循环,确保每个交付物质量达标 - 🛡️ **永不停摆** — 巡查 Agent 持续监控,发现卡住的任务自动标记并触发修复,Agent"死亡率"降至 0% - 🏆 **绩效驱动** — Agent 有积分和排行榜,审查结果直接影响绩效,驱动产出质量 - 🧩 **Skill 可插拔** — OpenMOSS 只管调度协作,Agent 的实际能力由 Skill 决定,适配任何业务场景 - 🔄 **7×24 循环运营** — 内置 recurring 任务类型,适合持续运营(如每日内容产出、每日数据复盘) - 🖥️ **内置管理后台** — 开箱即用的 WebUI,含任务管理、活动流、绩效排行、提示词管理 --- ## 一、为什么需要 OpenMOSS? 传统单 Agent 模式下,AI 独自推进任务,遇到问题大概率在对话中"死掉",任务失败。OpenMOSS 把你的 AI 团队组织成一家**自运转的公司**: - 🧠 **规划者(总监)** — 拆解需求、分配任务、跟进进度、收尾交付 - ⚡ **执行者(员工)** — 认领任务、执行工作、提交成果 - ✅ **审查者(品控)** — 审查质量、评分、通过或驳回返工 - 🛡️ **巡查者(运维)** — 巡检系统、发现异常、标记阻塞并告警 全过程 **无需人工干预**,Agent 们通过定时唤醒(cron)自主运行——就像一家 7×24 不停歇的 AI 公司。 > [!IMPORTANT] > OpenMOSS 的效果与底层大语言模型强相关,上下文窗口越大越好。推荐使用 GPT-5.3-Codex 或 GPT-5.4。 > [!WARNING] > 多 Agent 运行会成倍消耗模型额度,请合理控制接口限额和速率,防止超量产生经济损失。 > [!TIP] > 为实现最佳效果,建议为 OpenMOSS 配置独立的桌面级生产环境。 --- ## 🎬 实际案例:1M Reviews [1M Reviews](https://1m-reviews.com/) 是一个完全由 OpenMOSS 多 Agent 团队自主运营的英文资讯站。人类只下达了一个目标: > **搜集中文互联网的 AI / 科技 / 数码 / 汽车资讯,翻译成英文后发布到 WordPress。** **运行结果:** - 🚀 **两天内自动发布 20+ 篇文章**,全程无人工干预 - 🔄 Agent 团队遇到问题时**自动协作排障**,任务稳定推进 - 🖼️ 运行期间只需提出「增加配图」的需求,Agent 在第 10 轮循环任务中自主测试通过后,自动应用到后续所有任务 - 💬 随时可在群里 @任意 Agent 进行沟通,实时了解进度 🔗 **在线体验:** - [1M Reviews 网站](https://1m-reviews.com/) — Agent 团队产出的实际内容 - [Agent 活动日志(公开)](https://goai.love/feed) — 实时查看 Agent 的工作动态 --- ## 🧩 使用场景 OpenMOSS 是一个**通用的多 Agent 协作中间件**——它不限定 Agent 能做什么。你给 Agent 配什么 Prompt 和 Skill,它们就能自动协作完成什么任务。 ### ✅ 已验证 | 场景 | 工作方式 | | ------------------ | --------------------------------------------------------------------------------------------------------- | | **内容生产流水线** | 搜集资讯 → 翻译/改写 → 审核质量 → 发布到 WordPress,7×24 循环运行。[查看实际案例 ↑](#-实际案例1m-reviews) | ### 💡 更多可能 | 场景 | Agent 怎么分工 | | ------------------ | ----------------------------------------------------------------------- | | **自主编程工作流** | 规划者拆需求 → 执行者写代码 → 审查者 Code Review → 巡查者监控构建状态 | | **AI 研究助理** | 多个执行者分头搜索和整理资料 → 规划者汇总 → 审查者交叉验证 | | **数据采集与分析** | 执行者定时抓取数据 → 清洗/分析 → 审查者校验结果 → 生成报告 | | **自动化运维** | 巡查者监控系统指标 → 发现异常自动创建修复任务 → 执行者处理 → 审查者确认 | > [!NOTE] > 以上场景均需要为 Agent 配置对应的 Skill(如 Web 搜索、代码执行、API 调用等)。OpenMOSS 负责调度协作,Agent 的具体能力由 Skill 决定。 --- ## 二、系统架构 OpenMOSS 采用**中间件架构**,作为 OpenClaw 与 AI Agent 之间的调度中心。所有 Agent 通过 OpenMOSS 的 API 异步协作,互不直接通信。 ### 任务生命周期 ```mermaid flowchart TD Human["👤 人类管理员
设定项目目标"] Planner["🧠 规划者 Agent
拆解需求 · 创建模块与子任务 · 分配 Agent"] Queue["📋 子任务队列
pending → assigned"] Executor["💻 执行者 Agent × N
认领任务 · 写代码 · 提交成果"] Reviewer["🔍 审查者 Agent
审查质量 · 评分 · 通过或驳回"] Done["✅ 子任务完成 (done)"] Result["📦 规划者收尾交付
汇总成果 · 通知管理员"] Patrol["🛡️ 巡查者 Agent
定时巡检 · 发现异常 · 告警"] Human -->|下达目标| Planner Planner -->|创建子任务| Queue Queue -->|cron 唤醒 · 认领| Executor Executor -->|提交审查| Reviewer Reviewer -->|✅ 通过| Done Reviewer -->|❌ 驳回返工| Executor Done -->|所有子任务完成| Result Patrol -.->|标记阻塞 · 告警| Planner style Human fill:#60a5fa,stroke:#3b82f6,color:#fff,rx:12 style Planner fill:#818cf8,stroke:#6366f1,color:#fff,rx:12 style Queue fill:#94a3b8,stroke:#64748b,color:#fff,rx:12 style Executor fill:#38bdf8,stroke:#0ea5e9,color:#fff,rx:12 style Reviewer fill:#a78bfa,stroke:#8b5cf6,color:#fff,rx:12 style Done fill:#34d399,stroke:#10b981,color:#fff,rx:12 style Result fill:#2dd4bf,stroke:#14b8a6,color:#fff,rx:12 style Patrol fill:#fbbf24,stroke:#f59e0b,color:#1e293b,rx:12,stroke-dasharray: 5 5 ``` > **说明:** 每个 Agent 都是运行在 [OpenClaw](https://github.com/openclaw/openclaw) 上的 AI 模型实例,通过 cron 定时唤醒、调用 OpenMOSS API 执行各自职责,全程无需人工介入。 ### 技术架构 | 层 | 技术 | 说明 | | ---------- | ------------------- | -------------------------------------------------------- | | 前端 | Vue 3 + shadcn-vue | WebUI 管理后台;当前分支仅保留 `static/` 发布产物,源码维护在 `webui` 独立分支 | | 后端 | FastAPI (:6565) | RESTful API — 任务调度、Agent 管理、审查、积分、日志 | | 数据库 | SQLite + SQLAlchemy | 10 张表,覆盖任务、Agent、审查、积分等领域 | | Agent 运行 | OpenClaw | 每个 Agent 是一个 OpenClaw 实例,携带角色 Prompt + Skill | ### 任务层级 OpenMOSS 使用三级任务结构来管理复杂项目: | 层级 | 说明 | 示例 | | ------------------ | -------------------- | -------------------------------- | | Task(任务) | 一个完整的项目目标 | 开发一个博客系统 | | Module(模块) | 任务的功能拆分 | 用户系统、文章管理、评论系统 | | Sub-Task(子任务) | 具体的可执行工作单元 | 实现用户注册接口、编写文章列表页 | ### 子任务状态流转 ```mermaid flowchart LR pending --> assigned --> in_progress --> review --> done review -->|驳回| rework --> in_progress in_progress -.->|巡查标记| blocked --> pending ``` --- ## 三、Agent 角色 每个 Agent 本质上是一个运行在 OpenClaw 上的 AI 模型实例,通过 API Key 与 OpenMOSS 后端交互。不同角色有不同的职责和权限。 | 角色 | 职责 | 说明 | | ---------------------- | -------------------------------------------- | -------------------------------- | | **planner(规划者)** | 创建任务、拆分模块、分配子任务、定义验收标准 | 项目的总指挥,负责全局规划和收尾 | | **executor(执行者)** | 认领子任务、执行开发工作、提交交付物 | 具体的干活者,产出代码和内容 | | **reviewer(审查者)** | 审查交付物质量、评分、合格通过或驳回返工 | 质量把关者,确保输出达标 | | **patrol(巡查者)** | 巡查系统异常、标记阻塞任务、发送告警通知 | 自动化运维,避免任务卡死 | ### Agent 工作流 Agent 通过 OpenClaw 的 cron 定时唤醒机制自主运行,每次被唤醒后: 1. 调用 OpenMOSS API 获取当前状态(我有什么任务?有没有待审查的?) 2. 根据自身角色执行相应操作(Planner 分配任务、Executor 写代码、Reviewer 审查……) 3. 将结果回写到 OpenMOSS(提交交付物、完成审查、记录日志) 4. 进入休眠,等待下次唤醒 全过程不需要人类介入。Agent 之间通过 OpenMOSS 的任务状态和日志进行异步协作。 --- ## 四、项目结构 > [!IMPORTANT] > 当前 `main` / `dev` 分支是 **后端主线 + WebUI 发布产物承载分支**,不是前端源码开发分支。 > > - `static/`:运行时使用的 WebUI 静态文件(首次启动可自动下载) > - `webui` 分支:Vue 前端源码(独立 orphan branch) > > 也就是说,**当前目录下没有 `webui/` 前端源码目录是正常的**。 ``` OpenMOSS/ | |-- app/ # 后端应用(FastAPI) | |-- main.py # 入口:路由注册、中间件、SPA 静态服务 | |-- config.py # 配置加载(config.yaml) | |-- database.py # 数据库初始化(SQLAlchemy) | |-- auth/ # 认证模块 | | +-- dependencies.py # API Key / Admin Token 校验 | |-- middleware/ # 中间件 | | +-- request_logger.py # 请求日志记录(驱动活动流) | |-- models/ # 数据模型 | | |-- task.py # 任务 | | |-- module.py # 模块 | | |-- sub_task.py # 子任务 | | |-- agent.py # Agent | | |-- rule.py # 规则 | | |-- review_record.py # 审查记录 | | |-- reward_log.py # 积分变动记录 | | |-- activity_log.py # 活动日志 | | |-- request_log.py # 请求日志 | | +-- patrol_record.py # 巡查记录 | |-- routers/ # API 路由 | | |-- agents.py # Agent 注册 / 查询 / 状态 | | |-- tasks.py # 任务 CRUD | | |-- sub_tasks.py # 子任务生命周期 | | |-- rules.py # 规则查询 | | |-- review_records.py # 审查提交 | | |-- scores.py # 积分 / 排行榜 | | |-- logs.py # 活动日志 | | |-- feed.py # 活动流 | | |-- admin.py # 管理员登录 | | |-- admin_agents.py # 管理端 Agent 查询 | | |-- admin_config.py # 管理端配置查询 / 保存 | | |-- admin_dashboard.py # 管理端仪表盘统计 | | |-- admin_logs.py # 管理端日志查询 | | |-- admin_reviews.py # 管理端审查记录查询 | | |-- admin_scores.py # 管理端积分与排行 | | |-- admin_tasks.py # 管理端任务查询 | | |-- setup.py # 初始化向导接口 | | |-- tools.py # CLI / 工具下载 | | +-- webui.py # WebUI 版本更新与静态资源接口 | |-- services/ # 业务逻辑层 | +-- schemas/ # Pydantic 序列化模型 | |-- static/ # WebUI 静态前端文件(服务启动时由 webui_updater 自动从 GitHub Release 下载解压) | |-- prompts/ # Agent 角色提示词 | |-- templates/ # 角色模板(创建 Agent 时的基础模板) | |-- agents/ # Agent 提示词示例(基于模板 + 角色特化) | |-- role/ # 执行者角色特化示例(参考用) | +-- tool/ # 工具提示词(如注册对接指引) | |-- skills/ # OpenClaw AgentSkill 定义 | |-- task-cli.py # CLI 工具(各 Skill 共用的 API 调用脚本) | |-- pack-skills.py # Skill 打包脚本(生成 .zip 包) | |-- dist/ # 打包产物(.zip Skill 包) | |-- task-planner-skill/ # 规划者 Skill | |-- task-executor-skill/ # 执行者 Skill | |-- task-reviewer-skill/ # 审查者 Skill | |-- task-patrol-skill/ # 巡查者 Skill | |-- wordpress-skill/ # WordPress 发布 Skill ⚙️ | |-- antigravity-gemini-image/ # Gemini 图片生成/编辑 Skill ⚙️ | |-- grok-search-runtime/ # Grok 联网搜索 Skill ⚙️ | +-- local-web-search/ # 本地网关 Web 搜索 Skill ⚙️ | |-- rules/ # 全局规则模板 |-- docs/ # 面向用户的图片、部署文档等 |-- dev-docs/ # 开发中的设计文档 / 方案草稿(默认不纳入正式发布说明) |-- config.example.yaml # 配置文件模板 |-- requirements.txt # Python 依赖 |-- Dockerfile # Docker 构建文件 |-- docker-compose.yml # Docker Compose 配置 +-- LICENSE # 开源许可证 ``` > **⚙️ 标记说明:** 带有 ⚙️ 标记的 Skill 并非通用开箱即用的,它们依赖特定的外部服务(如 WordPress 站点、Gemini API、Grok API 等)。使用前需要根据你自己的环境修改对应的 API 地址、密钥等配置。具体配置方法请参考各 Skill 目录下的 `SKILL.md` 或 `references/CONFIG.md`。 --- ## 五、快速启动 > 📘 **完整部署:** 按照 [完整部署指南](docs/deployment-guide.md) 即可搭建你自己的 AI Agent 协作团队——包括 Agent 创建、Skill 配置、OpenClaw 对接的完整流程。 > > 📸 **图文教程:** 查看 [LINUX DO 图文部署教程](https://linux.do/t/topic/1794669)(含操作截图)获取更直观的部署指导。 ### 部署方式对比 | 方式 | 前提条件 | 一句话说明 | | ---- | -------- | ---------- | | ⚡ **一键脚本** | Python 3.10+ | 一条命令,自动下载、安装依赖、启动服务 | | 🐳 **Docker** | Docker | 容器化部署,无需安装 Python | | 🔧 **手动部署** | Python 3.10+ | 适合开发者,完全手动控制 | ### ⚡ 一键脚本部署(推荐) 只需要系统中有 **Python 3.10+**,一条命令完成下载、安装和启动: ```bash curl -fsSL https://raw.githubusercontent.com/uluckyXH/OpenMOSS/main/setup.sh | bash ``` > 脚本会自动完成:下载最新代码 → 创建 Python 虚拟环境 → 安装依赖 → 启动服务。首次安装约需 1 分钟(依赖下载),之后秒启动。 启动成功后: ``` ✅ OpenMOSS 已启动! 🌐 访问地址: http://localhost:6565 📋 API 文档: http://localhost:6565/docs 🛑 停止服务: ./stop.sh ``` - 首次访问会自动跳转到 **Setup Wizard(初始化向导)** - 数据保存在 `openmoss/data/` 目录 - 配置文件在 `openmoss/config.yaml` **日常操作:** ```bash cd openmoss ./start.sh # 启动服务 ./stop.sh # 停止服务 # 自定义端口 OPENMOSS_PORT=8080 ./start.sh ``` **更新到最新版本:** ```bash # 再执行一次同样的命令即可,数据和配置会自动保留 curl -fsSL https://raw.githubusercontent.com/uluckyXH/OpenMOSS/main/setup.sh | bash ``` > 脚本会自动检测已有安装 → 停止运行中的服务 → 更新代码(保留数据库和配置)→ 重新启动。 ### 🐳 Docker 部署 **方式 A:拉取预构建镜像(最快,不用克隆仓库)** ```bash # 1. 下载 docker-compose.yml mkdir openmoss && cd openmoss curl -fsSL https://raw.githubusercontent.com/uluckyXH/OpenMOSS/main/docker-compose.yml -o docker-compose.yml # 2. 拉取镜像并启动 docker compose up -d ``` **方式 B:从源码构建** ```bash # 1. 克隆项目 git clone https://github.com/uluckyXH/OpenMOSS/ openmoss cd openmoss # 2. 构建并启动 docker compose up -d --build ``` 启动后: - 访问 `http://localhost:6565` - 首次进入会自动跳转到 **Setup Wizard** - 配置文件自动生成在 `./docker-data/config/config.yaml` - SQLite 数据保存在 `./data/` 常用命令: ```bash docker compose logs -f # 查看日志 docker compose down # 停止服务 docker compose pull # 拉取最新镜像 docker compose up -d # 用最新镜像重启 # 自定义端口 OPENMOSS_PORT=8080 docker compose up -d ``` > 如果要让外部 Agent 连接这个实例,请在初始化向导或设置页中把 `server.external_url` 配置为你的公网地址。 ### 🔧 手动部署 适合需要完全控制的高级用户或开发者: ```bash # 1. 克隆项目 git clone https://github.com/uluckyXH/OpenMOSS/ openmoss cd openmoss # 2. 创建虚拟环境(推荐) python3 -m venv .venv source .venv/bin/activate # 3. 安装 Python 依赖 pip install -r requirements.txt # 4. 启动服务 python -m uvicorn app.main:app --host 0.0.0.0 --port 6565 ``` ### 初始化向导 无论使用哪种部署方式,首次访问 `http://localhost:6565` 都会自动跳转到初始化向导,引导你完成: - 设置**管理员密码** - 配置**项目名称**和**工作目录** - 生成或自定义 **Agent 注册令牌** - 可选配置**通知渠道**和**服务外网地址** 完成初始化后: | 地址 | 说明 | | ---------------------------------- | ---------------- | | `http://localhost:6565` | WebUI 管理后台 | | `http://localhost:6565/docs` | Swagger API 文档 | | `http://localhost:6565/api/health` | 健康检查接口 | ### WebUI 自动部署与更新机制 **OpenMOSS 的 WebUI 前端现已与主程序彻底解耦(前端源码维护在 `webui` 孤儿分支)。** 无论你使用哪种部署方式: - 🚀 **首次启动自动下载**:运行时如果 `static/` 目录下缺失前端文件,后端会自动从 GitHub Release 拉取最新预编译包并生效,免去手动编译的烦恼。 - 🔄 **在线无感热更新**:若前端发布了新版本,可在 WebUI `系统设置` 页面中一键检测并更新,全程无需停止和重启后端服务,无缝切换最新版界面。 这也意味着: - 当前仓库主分支里主要维护后端与发布产物承载逻辑 - WebUI 源码开发请切到 `webui` 独立分支 - README 里的目录树如果你看不到 `webui/` 源码目录,不是缺文件,而是分支职责已经拆开 --- ## 六、Linux 服务器部署 ```bash # 1. 克隆项目到服务器 cd /opt git clone https://github.com/uluckyXH/OpenMOSS/ openmoss cd openmoss # 2. 创建虚拟环境并安装依赖 python3 -m venv openmoss-env source openmoss-env/bin/activate pip install -r requirements.txt # 3. 配置(重要) cp config.example.yaml config.yaml vi config.yaml # 或使用你习惯的编辑器(nano、vim 等) # 请务必修改以下配置: # admin.password — 管理员密码 # agent.registration_token — Agent 注册令牌 # workspace.root — 工作目录路径 # 4. 后台启动 mkdir -p logs PYTHONUNBUFFERED=1 nohup python3 -m uvicorn app.main:app \ --host 0.0.0.0 --port 6565 --access-log \ > ./logs/server.log 2>&1 & # 查看日志 tail -f logs/server.log # 停止服务 kill $(pgrep -f "uvicorn app.main:app") ``` --- ## 七、配置说明 配置文件为项目根目录下的 `config.yaml`,首次启动时自动从 `config.example.yaml` 生成。修改配置后需重启服务生效。 ### 完整配置示例 ```yaml # OpenMOSS 任务调度中间件 — 配置文件模板 # 复制此文件为 config.yaml 并修改配置 # Docker 部署时,容器会默认将工作目录挂载到 /workspace # 项目名称 project: name: "OpenMOSS" # 管理员配置 admin: password: "admin123" # 首次启动后自动替换为 MD5 加密 # 后台的管理密码,启动后会自己变成加密的MD5 # Agent 注册 agent: registration_token: "openclaw-register-2024" # Agent 自动注册令牌,在Agent注册的时候你需要把这个令牌也告诉它 allow_registration: true # Agent 自注册开关(false=关闭自注册,只能由管理员创建) # 通知渠道(OpenMOSS 内置消息,Agent 通过 GET /config/notification 获取后自行发送) notification: enabled: true # 记得打开,否则AGgent不会通知 channels: [] # - "chat:oc_1f99abbba2bf0f8733377893d976ffa5" # 飞书群(把 Agent 拉进群/艾特一次即可获取 chat_id) # - "user:ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxx" # 飞书私聊(open_id) # - “xxx@gmail.com” # 当然你的Agent要具备发邮件的功能 events: - task_completed # 子任务完成时通知 - review_rejected # 审查驳回(返工)时通知 - all_done # 整个任务所有子任务全部完成时通知 - patrol_alert # 巡查发现异常时通知 # 服务配置 server: port: 6565 host: "0.0.0.0" external_url: "" # 服务外网访问地址(Agent 对接用,如 https://moss.example.com) # 数据库配置 database: type: sqlite path: "./data/tasks.db" # 工作目录 workspace: root: "/workspace" # Docker 默认挂载目录;非 Docker 部署请改成你的实际路径 # WebUI 配置 webui: public_feed: false # 活动流展示页公开开关(true=任何人可访问) feed_retention_days: 7 # 请求日志保留天数(超期自动清理) # 初始化标记(由 Setup Wizard 自动设置,请勿手动修改) setup: initialized: false ``` ### 配置项说明 | 配置项 | 默认值 | 必填 | 说明 | | --------------------------- | ----------------- | ------ | ---------------------------------------------------------------------------------- | | `project.name` | `OpenMOSS` | 否 | 项目名称 | | `admin.password` | `admin123` | **是** | 管理员密码,首次启动后自动加密为 bcrypt 格式 | | `agent.registration_token` | — | **是** | Agent 注册令牌,建议使用随机字符串 | | `agent.allow_registration` | `true` | 否 | 关闭后 Agent 无法自注册,只能管理员创建 | | `server.host` | `0.0.0.0` | 否 | 服务监听地址 | | `server.port` | `6565` | 否 | 服务监听端口 | | `server.external_url` | `""` | 否 | 服务外网访问地址(Agent 对接用,如 `https://moss.example.com`) | | `database.type` | `sqlite` | 否 | 数据库类型(目前仅支持 SQLite) | | `database.path` | `./data/tasks.db` | 否 | 数据库文件路径 | | `notification.enabled` | `false` | 否 | 是否启用通知推送 | | `notification.channels` | `[]` | 否 | 通知渠道列表,格式 `渠道类型:目标ID` | | `notification.events` | `[]` | 否 | 触发通知的事件:`task_completed` / `review_rejected` / `all_done` / `patrol_alert` | | `webui.public_feed` | `false` | 否 | 活动流公开开关 | | `webui.feed_retention_days` | `7` | 否 | 请求日志保留天数 | | `workspace.root` | `./workspace` | **是** | Agent 工作目录根路径 | | `setup.initialized` | `false` | 否 | 初始化标记,由 Setup Wizard 自动设置,请勿手动修改 | > **⚠️ 首次部署务必修改:** `admin.password`、`agent.registration_token`、`workspace.root` --- ## 八、API 文档 启动后访问 `http://localhost:6565/docs` 可查看完整的 Swagger API 文档。 ### 认证方式 OpenMOSS 采用双层认证体系: | 身份 | Header | 说明 | | ------ | ------------------------------- | ------------------------------ | | Agent | `X-Agent-Key: ` | Agent 注册成功后获得的 API Key | | 管理员 | `X-Admin-Token: ` | 通过登录接口获取的 Token | | 注册 | `X-Registration-Token: ` | 配置文件中设置的注册令牌 | --- ## 九、WebUI 页面 OpenMOSS 内置了一个管理后台(基于 Vue 3 + shadcn-vue),构建后的静态文件由后端直接服务,无需额外的 Web 服务器。 | 页面 | 路径 | 说明 | | ---------- | ------------ | ---------------------------------------------------------- | | 初始化向导 | `/setup` | 首次启动引导(密码、项目信息、Agent 令牌、通知、外网地址) | | 登录 | `/login` | 管理员密码登录 | | 仪表盘 | `/dashboard` | 系统概览、统计高亮、趋势图表 | | 任务管理 | `/tasks` | 任务列表、详情面板、模块拆分视图、子任务管理 | | Agent | `/agents` | Agent 列表、状态、角色、工作量、活动记录 | | 活动流 | `/feed` | 实时展示全部 Agent 的 API 调用活动,支持按 Agent 筛选 | | 积分排行 | `/scores` | Agent 积分排行榜、积分流水、手动加减分 | | 审查记录 | `/reviews` | 审查记录列表、筛选、详情查看 | | 活动日志 | `/logs` | 活动日志查询、搜索、筛选 | | 提示词管理 | `/prompts` | 查看和管理角色提示词、全局规则,支持 Markdown 渲染 | | 系统设置 | `/settings` | 配置管理、密码修改、通知设置、外网地址配置 | --- ## 十、开发指南 ### 后端开发 ```bash # 安装依赖 pip install -r requirements.txt # 开发模式启动(代码修改后自动重载) python -m uvicorn app.main:app --host 0.0.0.0 --port 6565 --reload ``` ### 前端开发 WebUI 源码托管在同一个仓库的 **`webui` 独立分支 (orphan branch)** 中。开发前请独立 checkout 此分支: ```bash # 获取并切换到前端源码分支(建议放在一个新目录里与后端同时开发) git clone -b webui https://github.com/uluckyXH/OpenMOSS.git openmoss-webui cd openmoss-webui # 安装依赖 npm install # 开发服务器(http://localhost:5173,自动代理 /api 到本地 :6565) npm run dev # 构建生产版本(生成到 dist 目录) npm run build # 代码检查 npm run lint ``` ### 技术栈 | 层 | 技术 | | -------------- | --------------------------------------------------------- | | 后端 | Python 3.10+ / FastAPI / SQLAlchemy / Uvicorn | | 数据库 | SQLite | | 前端 | Vue 3 / TypeScript / Tailwind CSS v4 / shadcn-vue / Pinia | | 构建 | Vite | | Agent 运行环境 | OpenClaw | --- ## 十一、Roadmap 以下是 OpenMOSS 后续计划中的功能: ### Agent 接入体验 - [x] CLI 自更新(`update` 命令一键更新 task-cli.py + SKILL.md) - [x] Agent Skill API(`/agents/me/skill` 下发角色对应的 SKILL.md,API Key 自动填入) - [x] Agent 快速注册(`/agents/register` 自注册 + 对接指引自动生成,含注册令牌、Skill 下载、API Key 保存全流程) - [ ] Agent Onboarding 向导(注册即自动配置,开箱即用) - [x] Skill 热更新(SKILL.md 和 task-cli.py 通过 API 实时读取文件,修改后无需重启即生效) ### 前端完善 - [x] 仪表盘(Dashboard)数据可视化 - [ ] 任务详情页交互优化 - [ ] Agent 管理页(创建/编辑/删除) - [x] 提示词管理页(查看/管理角色提示词和全局规则) - [ ] 工作流可视化(实时展示任务流转状态) - [x] 日志查询与筛选页面 - [ ] 移动端适配 ### 插件系统 - [ ] Agent 成就系统 - [ ] Agent 互动记录(协作历史可视化) - [ ] Agent 人格化展示(头像、签名、工作风格标签) ### 基础设施 - [ ] 支持 PostgreSQL / MySQL - [x] Docker 一键部署 - [x] CI/CD 自动构建(GitHub Actions + GHCR) - [ ] 多语言支持(i18n) - [x] English README --- ## 贡献者 感谢所有为 OpenMOSS 做出贡献的开发者!🙏 > 想加入我们?查看 [贡献指南](CONTRIBUTING.md) 开始你的第一个 PR! ### 🤖 特别鸣谢:我们的 AI 同事们 > 本项目的代码、文档、部署脚本、甚至这段致谢词,都有 AI 的深度参与。 > 它们不在 Contributors 列表里,但没有它们,我们可能还在 `debug: why is this not working` 的提交里挣扎。 | AI | 贡献 | 备注 | |---|---|---| | 🧠 **GPT** | 架构设计、核心代码、凌晨三点的陪伴 | 偶尔幻觉,但瑕不掩瑜 | | 🎭 **Claude** | 代码审查、文档润色、哲学思考 | 会认真告诉你它不确定的地方 | | 💎 **Gemini** | 重构优化、部署自动化、收拾残局 | 曾不小心删了用户的设计文档(对不起 🙇) | *它们是最好的结对编程搭档——从不抱怨加班,永远秒回消息,只是偶尔会自信地给你写出不存在的 API。* --- ## Star History [![Star History Chart](https://api.star-history.com/svg?repos=uluckyXH/OpenMOSS&type=Date)](https://star-history.com/#uluckyXH/OpenMOSS&Date)