logo
0
0
WeChat Login
chore: 更新版本号至 v0.3.0 + README 添加下载链接和使用说明入口

WorkAgents

移动端 AI Agent 协作管理平台 — 在手机上与多个 AI Agent 实时对话、执行自动化任务、管理沙箱运行环境。


📖 项目简介

WorkAgents 是一款 Android 移动端 AI Agent 协作管理平台。每个 Agent 运行在独立的 CodeBuddy 沙箱(Sandbox)中,具备完整的代码执行、文件操作、MCP 工具调用能力。APP 通过 ACP 协议 + SSE 实时通信与沙箱内的 Agent 交互。

核心功能

模块说明
💬 会话与 AI Agent 1v1 对话、群聊,支持流式输出、代码高亮、工具调用展示
📋 任务创建定时自动化任务,后台执行并推送结果通知
🔍 发现Skill / Plugin 市场,一键安装扩展 Agent 能力
👤 我的沙箱配置、Agent 管理、个人设置

🏗️ 系统架构

┌──────────────────────────────────────────────────────────┐ │ WorkAgents Mobile APP │ │ (React Native + TypeScript) │ ├──────────┬──────────┬──────────────┬─────────────────────┤ │ 会话模块 │ 任务模块 │ 发现模块 │ 我的/沙箱模块 │ ├──────────┴──────────┴──────────────┴─────────────────────┤ │ SDK / Service 层 │ │ SandboxService │ ACPClient │ SSEManager │ ManifestBuilder │ ├──────────────────────────────────────────────────────────┤ │ 网络通信层 │ │ REST API (fetch) │ SSE (自研 SSEParser) │ ├──────────────────────────────────────────────────────────┤ │ 本地持久化 │ │ WatermelonDB (SQLite) │ Zustand Store │ └──────────────────────────────────────────────────────────┘ ↕ HTTPS ┌──────────────────────────────────────────────────────────┐ │ CodeBuddy Sandbox Runtime API │ │ 创建/销毁沙箱 │ ACP JSON-RPC │ SSE 事件流 │ Envd │ └──────────────────────────────────────────────────────────┘

🛠️ 技术栈

类别技术
跨平台框架React Native 0.84 (新架构 + Hermes 引擎)
开发语言TypeScript 5.7,strict 模式
导航React Navigation 7(Bottom Tabs + Native Stack)
状态管理Zustand 5
本地数据库WatermelonDB 0.27 (SQLite)
网络请求原生 fetch API
SSE 通信自研 SSEParser(解决 RN Android buffered response)
UI 动画react-native-reanimated 4
图标react-native-vector-icons

📁 项目结构

WorkAgents/ ├── App.tsx # 应用入口 ├── index.js # RN 注册入口 ├── package.json ├── tsconfig.json # 路径别名 @/* → src/* │ ├── src/ │ ├── components/ # 通用 UI 组件 │ │ ├── Avatar.tsx # 头像 │ │ ├── Button.tsx # 按钮 │ │ ├── Card.tsx # 卡片 │ │ └── EmptyState.tsx # 空状态占位 │ │ │ ├── database/ # WatermelonDB 数据库层 │ │ ├── schema.ts # 6 张表的 Schema 定义 │ │ ├── index.ts # 数据库初始化 │ │ └── models/ # ORM 模型 (Agent, Conversation, Message, ...) │ │ │ ├── navigation/ # React Navigation 导航 │ │ ├── RootNavigator.tsx # 底部 4 Tab 导航 │ │ ├── ChatStack.tsx # 会话模块 Stack │ │ ├── TaskStack.tsx # 任务模块 Stack │ │ ├── DiscoverStack.tsx # 发现模块 Stack │ │ └── ProfileStack.tsx # 我的模块 Stack │ │ │ ├── screens/ # 各模块页面 │ │ ├── chat/ # 会话列表 │ │ ├── task/ # 任务列表 │ │ ├── discover/ # 发现首页 │ │ ├── profile/ # 个人主页 + 沙箱配置 │ │ └── debug/ # 调试页面(沙箱全流程测试) │ │ │ ├── services/ # 服务 / API 层 │ │ ├── api.ts # CodeBuddy Runtime API 接口 │ │ ├── apiClient.ts # HTTP 客户端 │ │ └── sandbox/ # 🔑 沙箱服务核心模块 │ │ ├── SandboxService.ts # 沙箱生命周期管理(8 步流程) │ │ ├── SSEManager.ts # SSE 连接 + 自动重连 │ │ ├── SSEParser.ts # SSE 协议解析器 │ │ ├── ACPClient.ts # ACP JSON-RPC 客户端 │ │ ├── EnvdClient.ts # 沙箱文件操作 │ │ └── ManifestBuilder.ts # Agent Manifest 构建器 │ │ │ ├── store/ # Zustand 状态管理 │ │ └── index.ts # 5 个 Store (App/Agent/Conversation/Task/Discover) │ │ │ ├── theme/ # 主题系统 (浅色/深色/跟随系统) │ │ ├── index.ts # 颜色/字号/间距/圆角定义 │ │ └── ThemeContext.tsx # React Context + useTheme() Hook │ │ │ └── types/ # 全局 TypeScript 类型定义 │ └── index.ts │ └── android/ # Android 原生层 └── app/ └── build.gradle # 包名 com.workagents, minSdk 24, targetSdk 36

🚀 快速开始

环境要求

  • Node.js >= 18
  • JDK 17
  • Android SDK (compileSdk 36, buildTools 36.0.0)
  • Android 设备/模拟器 (minSdk 24, 即 Android 7.0+)

安装依赖

cd WorkAgents npm install

构建 Release APK

项目采用离线打包方式,JS Bundle 内置于 APK 中,不依赖 Metro 开发服务器:

cd android ./gradlew assembleRelease

生成的 APK 位于 android/app/build/outputs/apk/release/

直接下载安装

前往 Releases 页面下载最新版 APK,安装到 Android 设备即可使用。

📖 详细的功能介绍和操作指南见 doc/使用说明.md

开发模式运行

# 启动 Metro 开发服务器 npm start # 另一个终端,安装到 Android 设备 npm run android

📊 开发进度

阶段说明状态
Phase 0 — 工程初始化项目骨架、导航、主题、网络层✅ 已完成
Phase 1 — 沙箱通信核心SandboxService、SSE、ACP、Manifest、Envd、E2E 联调✅ 已完成
Phase 2 — 会话模块1v1 对话 + 群聊 + 流式输出 + 真机验证✅ 已完成
Phase 3 — 我的 & 沙箱管理沙箱配置 + Agent CRUD + 状态同步 + 深色模式✅ 已完成
Phase 4 — 任务模块定时任务创建 + 后台执行 + 通知⏳ 待开始
Phase 5 — 发现模块Skill/Plugin 安装 + Agent 绑定⏳ 待开始
Phase 6 — 打磨 & 发布E2E 测试 + 发布⏳ 待开始

详细的技术方案和研发计划见 doc/技术方案与研发计划.md


🔑 沙箱通信流程

APP 与 CodeBuddy 沙箱的完整通信流程(Phase 1 核心实现):

1. createSandbox() → 创建远程沙箱实例 2. waitForReady() → 轮询等待沙箱就绪 3. establishSSE() → 建立 SSE 长连接,获取 connectionId 4. acpInitialize() → ACP 协议初始化握手 5. sessionNew() → 创建会话,获取 sessionId 6. setMode() → 设置 bypassPermissions 模式 7. sendPrompt() → 发送用户消息 8. ← SSE 流式接收 → agent_message_chunk / tool_call / turn_complete 9. cleanup() → 销毁沙箱,释放资源

📄 许可证

私有项目,未经授权不得使用或分发。

About

WorkAgents

Language
TypeScript99.5%
Kotlin0.4%
JavaScript0.1%