Files
boss/README.md

257 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Boss
Boss 是一个面向多设备开发协作的 agent control plane。
它的目标是让用户通过对话入口或独立控制台,持续管理多台 Windows、Mac 上的编码代理,支持任务拆分、实时进度、需求变更、审批和审计。
## 当前状态
当前仓库已经包含产品设计文档与一版可直接跑起来的本地控制台:
- [文档总览](./docs/README.md)
- [竞品对比](./docs/competitor-comparison.md)
- [系统架构](./docs/system-architecture.md)
- [MVP 功能清单](./docs/mvp-feature-plan.md)
- [技术选型](./docs/technical-selection.md)
- [消息协议与状态机](./docs/message-protocol-and-state-machine.md)
- [实施路线图](./docs/implementation-roadmap.md)
当前原型能力:
- Fastify API
- 文件持久化状态存储
- SSE 实时事件流
- Web 控制台
- Android 主控 APPJetpack Compose
- `boss-worker` 模拟执行器
- `boss-worker` 外部命令执行模式,可接本地 Codex / Claude / 自定义脚本
- AI Glasses 云服务器一键部署脚本
- 命令行对话入口脚本
- `npm run smoke` 自动跑端到端验证
- `Dockerfile` + `compose.yaml` 支持容器启动
## 当前推荐方向
- 主控面Web 为主,聊天入口为辅
- ManagerCodex
- 设备侧 workerCodex CLI + Claude Code
- 工具层MCP
- 调度:持久队列或工作流引擎
## 本地运行
```bash
npm install
npm run demo
```
浏览器打开:
```bash
http://127.0.0.1:43210
```
如果你只想单独启动服务端:
```bash
npm run dev
```
如果你想把数据写到独立文件,避免和默认 demo 数据混用:
```bash
BOSS_DATA_FILE=.boss-data/local-dev.json npm run dev
```
## 云端主控部署
如果你要按最初的产品策略来跑:
- 云服务器只跑 Boss control plane
- 你的 Windows / Mac 本机各自跑 worker
- 你通过浏览器或命令行和云端主控对话
仓库已经内置 AI Glasses 云服务器部署脚本:
```bash
./scripts/deploy_ai_glasses_server.sh
```
这条脚本会优先尝试 Docker 部署;如果云机拉不到 Docker Hub 镜像,会自动回落到 Node 常驻进程模式。
部署完成后,先用这个脚本确认云端状态:
```bash
./scripts/boss_cloud_status.sh
```
查看云端日志:
```bash
./scripts/boss_cloud_logs.sh
```
默认云端入口:
```bash
http://111.231.132.51/boss/
```
这就是你当前最短的“主账号对话入口”。
如果你要手工启动 worker
```bash
npm run worker -- --name win-a --os windows --capability terminal --capability browser
npm run worker -- --name win-b --os windows --capability terminal --capability test
npm run worker -- --name mac-a --os macos --capability terminal --capability test --capability browser
```
如果你要接真实本地执行器,而不是模拟执行:
```bash
npm run worker -- \
--name mac-codex \
--os macos \
--capability terminal \
--capability test \
--mode command \
--workspace /path/to/project \
--executor ./scripts/codex_executor.sh
```
也可以接 Claude Code 或任意你自己的脚本,只要命令能从环境变量里读取任务上下文:
- `BOSS_TASK_TITLE`
- `BOSS_TASK_DESCRIPTION`
- `BOSS_TASK_KIND`
- `BOSS_TASK_JSON`
- `BOSS_WORKSPACE`
- `BOSS_WORKER_NAME`
仓库里已经自带两个可直接改造的适配脚本:
- `./scripts/codex_executor.sh`
- `./scripts/claude_executor.sh`
- `./scripts/codex_executor.ps1`
- `./scripts/claude_executor.ps1`
例如:
```bash
npm run worker -- \
--name win-claude \
--os windows \
--capability terminal \
--capability browser \
--mode command \
--workspace /path/to/project \
--executor ./scripts/claude_executor.sh
```
## 怎么和系统对话
当前推荐两种方式:
1. 浏览器入口
打开云端控制台:
```bash
http://111.231.132.51/boss/
```
这是最符合产品策略的入口,也是主控面。
2. 命令行聊天入口
仓库里自带一个简单 CLI可以直接发消息给 Boss
```bash
BOSS_SERVER_URL=http://111.231.132.51/boss ./scripts/boss_chat.sh create "Boss 主控对话"
BOSS_SERVER_URL=http://111.231.132.51/boss ./scripts/boss_chat.sh send "先调研这个问题,不要急着改代码。"
BOSS_SERVER_URL=http://111.231.132.51/boss ./scripts/boss_chat.sh status
```
这条 CLI 入口后面也很容易改造成 Telegram / Slack / 企业微信 webhook。
3. Android 主控 APP
仓库现在已经带了一个原生安卓端,适合把“对话、切换设备、绑定设备、审批、看任务”统一放到手机里完成。
首次构建前,先在 `android-app` 目录满足其中一个条件:
- 设置 `ANDROID_HOME``ANDROID_SDK_ROOT`
- 或手工创建 `android-app/local.properties`,内容类似:
```properties
sdk.dir=/Users/yourname/Library/Android/sdk
```
然后构建 debug 包:
```bash
cd android-app
./gradlew assembleDebug
```
输出 APK
```bash
android-app/app/build/outputs/apk/debug/app-debug.apk
```
如果你后面要只用那台荣耀无线调试手机来联调,仓库里已经有固定目标脚本:
```bash
./scripts/android_honor_debug.sh build-install
./scripts/android_honor_debug.sh launch
./scripts/android_honor_debug.sh screenshot
```
这个脚本默认只会操作当前锁定的荣耀设备,不会去碰别的安卓手机。需要切换目标时,再通过 `BOSS_ANDROID_SERIAL` 显式覆盖。
安卓端当前包含:
- 会话创建、切换、持续对话
- 任务分组查看、暂停、恢复、取消、重排
- 审批查看与批准/拒绝
- 设备列表、设备聚焦切换、设备下线
- 绑定新设备并生成启动命令
- 云端 Boss 地址切换与重排入口
一键本地 demo
```bash
npm install
npm run demo
```
这会拉起:
- Web/API 服务
- 2 台 Windows 模拟 worker
- 1 台 Mac 模拟 worker
自动 smoke test
```bash
npm run smoke
```
容器启动:
```bash
docker compose up --build
```
## 当前 v1 能力
- 创建项目会话并持续对话
- 自动生成任务树并调度到不同 worker
- worker 心跳、掉线回收、任务重排
- worker 真实外部命令执行,支持本地命令适配
- 审批、暂停、恢复、取消、重排
- SSE 实时事件流和 Web 控制台
- 会话归档与恢复
- 云端主控部署脚本与状态脚本
- 命令行对话入口
- 一键 demo 启动