基于Temporal的RPA(机器人流程自动化)流程编排引擎,使用Playwright进行浏览器自动化。
项目采用monorepo架构,包含以下主要模块:
- 设计器 (Designer): React前端应用,提供可视化工作流设计界面
- API服务 (API): NestJS应用,处理前端请求并与Temporal交互
- 工作器 (Worker): Temporal Worker,执行RPA工作流和活动
- 共享库 (Shared): 共享类型、接口和工具
- 前端: React, TypeScript, Ant Design, React Flow
- 后端: NestJS, TypeScript
- 工作流: Temporal, TypeScript
- 浏览器自动化: Playwright
- 包管理: pnpm
make install
make start-all
# 查看帮助信息
make help
# 安装工程依赖
pnpm install
Temporal是工作流引擎的核心组件,需要先启动Temporal服务。
# 启动Temporal服务(开发模式)
pnpm temporal:dev-server
该命令将启动一个本地Temporal开发服务器,数据将保存在temporal.db
文件中。
pnpm start:api
API服务将在 http://localhost:3001 上运行,提供REST API接口。
pnpm start:worker
Worker将连接到Temporal服务并注册工作流和活动。
pnpm start:designer
设计器将在 http://localhost:3000 上运行。
- 可视化工作流设计器,支持拖拽节点和连线
- 支持多种RPA操作类型:
- 浏览器操作(导航、点击、输入等)
- 延迟
- API调用
- JavaScript脚本执行
- 条件分支
- 工作流执行状态监控
- 基于Temporal的可靠工作流执行
- 支持长时间运行的工作流
- 自动重试失败的活动
- 工作流执行历史记录
编辑 packages/api/src/main.ts
文件,可以修改端口等配置。
编辑 packages/worker/src/worker.ts
文件,可以修改Temporal连接等配置。
编辑 packages/designer/vite.config.ts
文件,可以修改前端服务配置。
- 在
packages/shared/src/types.ts
文件中添加新的节点类型 - 在
packages/worker/src/workflows/rpa-workflow.ts
中实现处理逻辑 - 在设计器中添加节点UI和属性表单
- 在
packages/shared/src/types.ts
文件中添加新的浏览器动作类型 - 在
packages/worker/src/activities/browser-activities.ts
中实现浏览器活动 - 在设计器的表单中添加新的选项和对应属性
- 增加用户认证和权限控制
- 添加更多浏览器自动化操作
- 支持工作流导入/导出
- 添加数据存储(替代内存存储)
- 增加错误处理和日志记录
- 添加更多UI组件和自定义样式支持