产品概述
ThinRPA 是一款企业级机器人流程自动化(RPA)平台,通过可视化设计器支持低代码 / 无代码开发,帮助用户快速构建工作流,实现 Windows 桌面软件与浏览器页面的端到端自动化。面向政务与企业场景,支持大模型语义理解以增强对 B/S 系统界面改版的适应性。
全面自动化
覆盖 Windows 桌面软件与浏览器:WPS/Office、金蝶/用友/SAP,以及 Chrome/Edge/IE 等多浏览器并发登录与操作。
高度组件化
内置 300+ 原子能力,覆盖 UI 操作、数据处理、系统交互,支持图形化编排与自定义组件扩展。
企业级协同
卓越中心、团队市场、终端监控、调度模式、机器人团队共享,保障权限管控与跨团队协作。
多渠道触发
直接运行、计划任务、调度模式、API 调用、MCP 服务等多种执行方式,快速对接业务系统。
系统架构
ThinRPA 采用「服务端 + 桌面客户端」双层架构:
- 服务端(Docker):MySQL 8.4 + Redis + MinIO + Casdoor(统一登录 SSO)+ OpenResty API 网关(对外
:32742)+ 五个业务微服务(ai-service、openapi-service、resource-service、robot-service、rpa-auth)+ atlas(数据库迁移)。 - Web 门户:登录 / 邀请门户(
/)与管理控制台(/admin),由宿主 Nginx 在thinkrpa.thinkalike.com.cn统一提供,并将/api反向代理至网关。 - 桌面客户端(Windows):内置 Python 3.13 RPA 引擎,集成 20+
astronverse.*组件(浏览器、GUI、Excel、视觉、文档、网络等),负责在用户本机执行流程、录制、元素拾取与图像识别。本地引擎默认监听127.0.0.1:13159,Web 控制台通过它驱动本机自动化。
/admin)用于流程编排、调度与监控;若未安装桌面客户端,控制台会提示下载安装包(thinrpa:// 协议或前往 一键安装部署页)。请求链路
浏览器 ──HTTPS──▶ 宿主 Nginx (thinkrpa.thinkalike.com.cn)
├── / → Web 门户(登录/落地)
├── /admin/ → 管理控制台(静态)
├── /docs/ → 本帮助与接口文档(静态)
└── /api/ → OpenResty 网关 :32742
├── /api/rpa-auth/ → rpa-auth :10251
├── /api/resource/ → resource-service :8030
├── /api/robot/ → robot-service :8040
├── /api/rpa-ai-service/ → ai-service :8010
├── /api/rpa-openapi/ → openapi-service :8020
└── /api/casdoor/ → casdoor :8000
桌面客户端 ── 本地引擎 :13159 ──▶ 执行 RPA 流程(浏览器/桌面自动化)
快速开始(服务端)
服务端使用 Docker Compose 部署。生产环境已在 thinkrpa.thinkalike.com.cn 完成部署;私有化部署步骤如下:
# 1. 进入 docker 目录
cd docker
# 2. 准备环境变量(首次)
cp .env.example .env
# 编辑 .env:设置 DATABASE_PASSWORD / MINIO_AK / MINIO_SK,
# 并将 CASDOOR_EXTERNAL_ENDPOINT、CASDOOR_REDIRECT_URL 改为你的域名。
# 3. 启动全部服务(依赖 healthcheck 自动错峰)
docker compose up -d
# 4. 检查状态
docker compose ps
部署自检
访问 https://你的域名/api/rpa-auth/user/login-check,若返回:
{"code":"900001","data":null,"message":"unauthorized"}
表示网关与认证服务已正确连通(未登录态返回 unauthorized 属正常)。访问 /health 应返回 healthy。
桌面客户端
桌面客户端是 RPA 的执行载体,运行于 Windows 10/11(建议内存 ≥ 8 GiB)。
获取方式
- 前往一键安装部署页:https://sn.thinkalike.com.cn/ThinkRPA,按引导下载并安装。
- 安装后在客户端安装目录
resources/conf.yaml中配置服务端地址:
remote_addr: https://thinkrpa.thinkalike.com.cn/
skip_engine_start: false
app_auth_type: casdoor
app_edition: saas
thinrpa:// 自定义协议与 Web 控制台联动;首次从控制台唤起时需允许协议关联。使用帮助
登录
- 打开
https://thinkrpa.thinkalike.com.cn/,使用 Casdoor 账号密码登录(超管见账号与超管)。 - 登录成功后自动跳转
/admin管理控制台。
流程编排与录制
- 可视化设计器:拖拽组件搭建工作流,支持调试运行与断点。
- 录制:在桌面客户端中录制鼠标键盘与页面操作,自动生成节点。
- 元素拾取:拾取浏览器 / 桌面控件,生成稳定定位。
触发方式
| 方式 | 说明 |
|---|---|
| 直接运行 | 在设计器或客户端手动执行 |
| 计划任务 | 按 Cron / 定时策略自动执行 |
| 调度模式 | 由服务端下发至机器人团队执行 |
| API 调用 | 通过 openapi-service 触发(见接口文档) |
| MCP 服务 | 通过 /api/rpa-openapi/mcp?key= 供 Agent 调用 |
组件生态(astronverse.*)
system(系统/进程/截图)、browser(浏览器自动化)、gui(鼠标键盘/界面)、excel(表格)、vision(图像识别)、ai(智能服务)、network(网络请求)、email(邮件)、docx(Word)、pdf(PDF)、encrypt(加解密);执行框架:actionlib / executor / picker / scheduler / trigger。
账号与超级管理员
| 角色 | 账号 | 说明 |
|---|---|---|
| 超级管理员 | admin | 组织 example-org 下的管理员账号,拥有平台最高权限 |
统一登录由内置 Casdoor 提供:组织 example-org、应用 example-app。用户首次登录 RPA 应用时会动态创建对应业务档案。
接口文档
所有接口经 OpenResty 网关(对外 :32742,域名下为 /api)统一路由。响应体统一结构:
{ "code": "000000", "data": { ... }, "message": "ok" }
// code == "000000" 表示成功;未登录时返回 "900001" unauthorized
网关路由表
| 路径前缀 | 后端服务 | 鉴权 | 用途 |
|---|---|---|---|
/api/rpa-auth/ | rpa-auth :10251 | 开放 | 登录 / 租户 / 用户 / 密码 |
/api/resource/ | resource-service :8030 | 会话 | 资源、流程、团队市场 |
/api/robot/ | robot-service :8040 | 开放* | 机器人 / 调度 / 反馈 |
/api/rpa-ai-service/ | ai-service :8010 | 会话 | AI 语义 / OCR(去前缀转发) |
/api/rpa-openapi/ | openapi-service :8020 | 会话 | 对外 OpenAPI(去前缀转发) |
/api/rpa-openapi/ws | openapi-service :8020 | 会话 | WebSocket 实时通道 |
/api/rpa-openapi/mcp?key= | openapi-service :8020 | API Key | MCP 服务(供 Agent 调用) |
/api/casdoor/ | casdoor :8000 | 开放 | Casdoor SSO(去前缀转发) |
/health | 网关 | 开放 | 健康检查,返回 healthy |
* robot-service 默认不做会话鉴权以避免认证服务循环调用;如需保护除 /user/info 外的接口,可在网关按更细粒度启用 Lua 鉴权。
认证接口(rpa-auth)
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/rpa-auth/user/login-check | 连通性 / 登录态自检(部署验证用) |
| POST | /api/rpa-auth/pre-authenticate | 预认证(提交账号密码,返回 tempToken) |
| GET | /api/rpa-auth/tenant/list | 获取租户列表(可带 tempToken) |
| POST | /api/rpa-auth/login | 正式登录(tempToken + tenantId) |
| GET | /api/rpa-auth/login-status | 查询登录状态 |
| GET | /api/rpa-auth/token | 获取 token |
| GET | /api/rpa-auth/user/info | 获取当前用户信息 |
| POST | /api/rpa-auth/logout | 退出登录 |
| POST | /api/rpa-auth/tenant/switch | 切换租户 |
| POST | /api/rpa-auth/password/change | 修改密码 |
| POST | /api/rpa-auth/register | 注册 |
| GET | /api/rpa-auth/user/exist | 检查手机号是否已注册 |
| POST | /api/rpa-auth/verification-code/send | 发送验证码 |
调用示例
# 连通性自检(未登录应返回 900001 unauthorized)
curl https://thinkrpa.thinkalike.com.cn/api/rpa-auth/user/login-check
# 健康检查
curl https://thinkrpa.thinkalike.com.cn/health # -> healthy
# 预认证(Casdoor 账号登录)
curl -X POST https://thinkrpa.thinkalike.com.cn/api/rpa-auth/pre-authenticate \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"******","platform":"admin","scene":"login"}'
MCP 与 OpenAPI
- MCP:
GET/POST /api/rpa-openapi/mcp?key=<API_KEY>,供 Agent 平台(如 Astron Agent)以 MCP 协议调用 RPA 流程节点;API Key 通过查询参数传递,网关访问日志已对查询参数脱敏。 - OpenAPI:
/api/rpa-openapi/*去前缀转发至 openapi-service(FastAPI),可在工作流上行同步(/workflows/upsert)等场景使用;会话鉴权由网关 Lua 完成。 - WebSocket:
/api/rpa-openapi/ws提供实时通道(升级头Upgrade/Connection已在网关透传)。
部署运维
服务与端口
| 服务 | 容器内端口 | 对外 | 说明 |
|---|---|---|---|
| openresty-nginx | 80 | 32742 | API 网关(唯一对外业务端口) |
| casdoor | 8000 | 8000 | 统一登录 SSO |
| mysql | 3306 | 内网 | 业务库 rpa + casdoor 库 |
| redis | 6379 | 内网 | 缓存 / 会话 |
| minio | 9000/9001 | 内网 | 对象存储(资源) |
| ai-service | 8010 | 内网 | AI / OCR |
| openapi-service | 8020 | 内网 | 对外 OpenAPI / MCP |
| resource-service | 8030 | 内网 | 资源 / 流程 |
| robot-service | 8040 | 内网 | 机器人 / 调度 |
| rpa-auth | 10251 | 内网 | 认证 |
资源治理
与其它生产服务共享主机时,通过 docker-compose.override.yml 为每个容器设置 mem_limit/memswap_limit,JVM 服务附加 -XX:MaxRAMPercentage=50,并配合宿主机 swap,避免 RPA 栈挤占生产内存。
域名与证书
- 宿主 Nginx 站点:
/etc/nginx/conf.d/thinkrpa.thinkalike.com.cn.conf,提供/(门户)、/admin/(控制台)、/docs/(本文档)静态资源,并将/api/反代至127.0.0.1:32742。 - TLS 由 Let's Encrypt(certbot)签发,
certbot.timer每日自动续期。
常用命令
docker compose ps # 状态
docker compose logs -f rpa-auth # 跟踪日志
docker compose restart ai-service # 重启单服务
nginx -t && systemctl reload nginx# 校验并重载宿主网关
常见问题
控制台提示需要下载客户端?
RPA 执行依赖本机桌面客户端引擎(127.0.0.1:13159)。请先在 一键安装部署页 下载安装客户端并登录,再回到 /admin 控制台。
登录返回 unauthorized / 无法登录?
- 确认
.env中CASDOOR_*(client id/secret、org、app)与 Casdoor 初始化数据一致。 - 确认
/api/已由宿主 Nginx 正确反代至:32742;用/api/rpa-auth/user/login-check自检。 - 确认 rpa-auth、casdoor、mysql 容器均为健康状态(
docker compose ps)。
AI 语义 / OCR 不可用?
需在 .env 配置 AICHAT_BASE_URL 与 AICHAT_API_KEY(OpenAI 兼容端点)后重启 ai-service。未配置时核心 RPA 功能不受影响。
服务启动缓慢或内存吃紧?
首次启动 Java/Python 服务需初始化并可能触发 swap,属正常现象;确保已应用 docker-compose.override.yml 内存上限与宿主机 swap。可用 free -h、docker stats 观测。
如何修改超管密码?
登录控制台后在个人中心修改,或通过 Casdoor 管理端(:8000)修改 example-org 下 admin 用户密码。