Tài liệu RunMacro
Tạo robot đầu tiên, rồi tiến xa theo nhu cầu.
Hướng dẫn rõ ràng từng bước để tạo, chạy và cải thiện robot cho công việc máy tính lặp lại.

Thiết lập và vận hành nhiều máy bằng RunMacro Manager
Kích hoạt cùng workspace license trên các máy đích rồi mở RunMacro; Manager Agent tự kết nối và máy chuyển Online. Tắt RunMacro chỉ làm máy Offline, không mất activation hay giải phóng slot. Đăng nhập RunMacro Manager bằng license đó chỉ để xem các Machine ID đã bind. Muốn chuyển máy phải dùng Gỡ key / Giải phóng license trên máy đang giữ slot.
Điều kiện cần
- Một trial hoặc license còn hiệu lực có quyền RunMacro Manager; giới hạn máy, Job, Runner, lịch và lưu kết quả do policy của workspace trả về.
- RunMacro đã cài và kích hoạt bằng license của cùng workspace trên từng máy Windows đích.
- Manager Agent tự kết nối khi RunMacro mở; không có bước Connect/Disconnect thủ công. Có thể bật Tự động chạy Manager Agent khi khởi động Windows nếu muốn RunMacro sẵn sàng ngay sau đăng nhập Windows.
- Một GitHub Gist chứa các Package đã phát hành theo định dạng catalog của RunMacro — chính là cùng một Gist mà RunMacro Studio dùng để phát hành (Đồng bộ đám mây/Xuất RunMacro package) và RunMacro Runner đọc khi Kiểm tra cập nhật — cùng token có quyền đọc/ghi phù hợp. Không ghi credential vào tài liệu hoặc ghi chú Package.
- Kết nối HTTPS tới
manager.runmacro.app, Manager API, GitHub API và Gist từ trình duyệt lẫn máy đích. - Package dùng app-key, không yêu cầu mật khẩu tương tác. Job Trình duyệt còn cần URL Google Sheets HTTPS hợp lệ riêng cho từng máy và môi trường Chrome/CDP tương thích.
Chế độ hỗ trợ
- Chế độ Desktop — Job Desktop chạy trong phiên Windows của máy đích và dùng chuột, bàn phím, cửa sổ cùng màn hình thật. Manager không tạo desktop tương tác và không làm giao diện khóa trở thành khả dụng.
- Chế độ Browser — Job Trình duyệt dùng Chrome/CDP. Manager yêu cầu URL Google Sheets hợp lệ theo từng máy, cho đặt kích thước cửa sổ và số phiên đồng thời, rồi gửi cấu hình tạm thời mà không ghi đè cache Runner cục bộ.
- RunMacro Runner — Manager Agent tải Package đã ghim theo revision và SHA-256, sau đó yêu cầu RunMacro Runner mở unattended. Runner vẫn là runtime thực thi và chỉ nhận một lượt local hoặc Manager tại một thời điểm.
Chức năng này làm gì
RunMacro Manager là bảng điều khiển web cho một workspace gồm các máy Windows đã kết nối. Manager Agent chạy trong RunMacro trên từng máy, báo trạng thái, nhận lệnh, tải đúng Package đã ghim từ GitHub Gist — cùng Gist mà Studio phát hành và Runner đọc — rồi chuyển cho RunMacro Runner. Từ Manager, bạn có thể xem máy và Package, tạo Job Desktop hoặc Trình duyệt trên một hay nhiều máy, lên lịch theo thời gian hoặc nối Job thành pipeline, theo dõi tiến độ, tạm dừng/tiếp tục/dừng và xem log cùng kết quả giới hạn. Manager điều phối; workflow vẫn thực thi trên máy đích bằng quyền và môi trường của máy đó.
Khi nào nên dùng
- Điều khiển và theo dõi cùng một Package trên nhiều máy Windows từ một trình duyệt trung tâm.
- Giao Job chạy ngay cho máy đang rảnh hoặc tạo lịch bền vững để chờ máy đích sẵn sàng.
- Chạy batch Trình duyệt theo nguồn profile Google Sheets riêng cho từng máy và giới hạn số phiên đồng thời.
- Nối pipeline bằng Chạy sau một Job hoặc một Lịch nguồn, tùy chọn bật Chỉ chạy khi nguồn thành công, xem lineage và gom log/kết quả vận hành vào một nơi.
Khi nào không nên dùng
- Chỉ cần hẹn một Package trên chính máy đang dùng với kiểu Mỗi N phút, Đếm ngược hoặc Startup — dùng Lập lịch chạy cục bộ.
- Máy đích không thể duy trì RunMacro/Manager Agent hoặc phiên Windows tương tác cần cho thao tác Desktop.
- Package cần người dùng nhập mật khẩu mở gói hoặc input password tại thời điểm chạy; Manager không có luồng hỏi đáp unattended cho các bí mật này.
- Kết quả đầy đủ, file lớn hoặc log không rút gọn là yêu cầu bắt buộc; kênh kết quả Manager có giới hạn truyền và lưu ngắn hạn.
Các bước cấu hình
- Trên mỗi máy đích, cài RunMacro và kích hoạt license của workspace. Activation bind Machine ID vào license và chiếm một slot lâu dài.
- Mở RunMacro. Manager Agent tự kết nối; máy đang bind chuyển Online. Khi RunMacro tắt hoặc mất mạng, máy vẫn tồn tại trong Manager và chỉ chuyển Offline.
- Nếu cần máy sẵn sàng ngay sau đăng nhập Windows, bật Tự động chạy Manager Agent khi khởi động Windows. Đây chỉ là tùy chọn mở RunMacro cùng Windows, không phải công tắc activation hay connection.
- Mở
https://manager.runmacro.app, chọn ngôn ngữ, nhập license key của workspace. Chỉ bật Ghi nhớ thiết bị này trên trình duyệt tin cậy; license key không được web app lưu lại. - Vào Cài đặt › Lưu trữ GitHub Gist, nhập Gist ID và token cho lần đầu, bấm Kiểm tra kết nối rồi Lưu cấu hình. Các lần sau để trống trường không đổi.
- Nếu hiện xung đột, chọn đúng source of truth: cấu hình RunMacro đã báo cáo hoặc cấu hình Manager đã mã hóa. Xem Gist ID đã che và tránh đổi qua lại khi chưa biết bản nào đúng.
- Mở Gói RunMacro, bấm Làm mới danh mục, kiểm tra tên, channel, phiên bản, revision và SHA-256 của Package rồi chọn Tạo công việc mới.
- Đặt tên Job, điền input không nhạy cảm và chọn máy. Với Desktop, bảo đảm phiên tương tác sẵn sàng; với Trình duyệt, nhập URL Google Sheets riêng cho mỗi máy, kích thước cửa sổ và số phiên đồng thời.
- Chọn Chạy ngay, Chạy theo thời gian (Một lần/Hằng ngày/Hằng tuần + múi giờ IANA), hoặc Chạy sau rồi chọn một Job hoặc một Lịch làm nguồn (có thể bật Chỉ chạy khi nguồn thành công) để tạo pipeline, rồi tạo Job/lịch.
- Mở chi tiết Job để xem từng máy, vòng/lệnh/phần trăm, log và kết quả. Dùng Tạm dừng/Tiếp tục/Dừng khi capability cho phép; với lịch, nhớ rằng Hủy chỉ xóa lượt tương lai hoặc đang chờ, không dừng Job đã bắt đầu.
Giải thích từng tùy chọn
Kết quả mong đợi
Các máy đã đăng ký xuất hiện với trạng thái Online/Offline và activity hiện tại; catalog hiển thị Package đã ghim. Job tạo ra một lượt chạy theo máy, cập nhật tiến độ và nhận lệnh điều khiển. Khi kết thúc, Manager hiển thị trạng thái, log tail đã giảm rủi ro, bảng kết quả rút gọn và file nhỏ được chấp nhận. Lịch lưu riêng trong workspace, tạo Job theo mốc hoặc quan hệ pipeline và giữ lineage để truy vết.
Ví dụ thực tế
Chạy Package Desktop trên hai máy đang rảnh
- Trên hai máy đích, kích hoạt cùng workspace license rồi mở RunMacro để Manager Agent tự kết nối; chỉ bật startup nếu cần và xác nhận cả hai Online · Idle trong trang Máy.
- Xuất workflow Desktop thành Package app-key không hỏi mật khẩu, phát hành lên Gist rồi làm mới catalog trong Manager.
- Từ Package, chọn Tạo công việc mới, đặt tên, điền input không nhạy cảm và chọn hai máy nếu limit workspace cho phép.
- Chọn Chạy ngay. Mở chi tiết Job, xác nhận mỗi máy chuyển Fetching → Running và theo dõi lệnh/phần trăm riêng.
- Sau khi hoàn tất, xem message, log tail, bảng/file nhỏ và storage warning; tải artifact cần thiết trước khi hết thời hạn lưu.
Lên lịch Trình duyệt và nối Job hậu xử lý
- Phát hành Package Trình duyệt và Package hậu xử lý app-key, rồi kiểm tra runtime, channel, revision và SHA-256 trong catalog.
- Tạo lịch Trình duyệt Hằng ngày theo múi giờ mong muốn; chọn máy và nhập URL Google Sheets hợp lệ riêng cho từng máy cùng giới hạn phiên nhỏ để kiểm thử.
- Tạo lịch thứ hai với Chạy sau và chọn nguồn: hoặc Job nguồn đang chạy, hoặc chọn chính Lịch nguồn để hậu xử lý lặp lại sau mỗi lần lịch chạy; bật Chỉ chạy khi nguồn thành công nếu chỉ muốn chạy khi nguồn OK.
- Mở tab Lịch chạy để xem next/source/pending Job; trong chi tiết Job kiểm tra Pipeline root, Parent Job và Depth.
- Sau mỗi nhánh, xem kết quả từng máy. Nếu nguồn bị canceled/skipped, xác nhận nhánh phụ thuộc bị skipped; nếu máy chờ quá lâu, điều tra terminal reason về tài nguyên.
Giới hạn và trường hợp lỗi
- Manager Agent chạy trong RunMacro, không phải Windows service. Máy phải bật, đăng nhập Windows và có RunMacro/Agent đang chạy; hãy kiểm tra startup thực sự hoạt động sau khi bật.
- Offline không giải phóng activation hoặc slot. Đội nhóm A–E đang 5/5 thì C tắt vẫn là 5/5; chỉ Gỡ key trên C mới còn 4/5, sau đó F mới kích hoạt để trở lại 5/5.
- Job Desktop cần desktop tương tác, không khóa, đúng độ phân giải/DPI và không bị người khác chiếm chuột/bàn phím. Manager không khắc phục giới hạn môi trường Desktop.
- Chạy ngay từ chối máy offline, busy, paused hoặc sai protocol. Lịch có thể chờ các trạng thái này, nhưng occurrence vẫn có thể kết thúc vì misfire, overlap hoặc resource timeout.
- Mỗi máy chỉ có một reservation runtime giữa lượt local, Lập lịch chạy cục bộ và Manager. Một lượt đang chạy khiến nguồn khác phải chờ hoặc bị từ chối theo loại tác vụ.
- Gói khóa mật khẩu cần nhập mật khẩu khi tạo Job: Create Job hiện ô Mật khẩu gói. Runner trên máy từ xa không hiện dialog. Sai hoặc thiếu mật khẩu thì Job fail
password_required. - Input loại password và input bị đánh dấu nhạy cảm không xuất hiện trong catalog Manager. Không đổi input text thành nơi truyền bí mật; giá trị Job đi qua Manager API tới máy đích.
- Job Trình duyệt hiện chỉ nhận nguồn profile dạng URL Google Sheets HTTPS trên
docs.google.com, riêng cho từng máy. File local trên máy mở browser Manager không được upload thay thế. - Execution snapshot tối đa 64 KiB, tối đa 100 input scalar và chuỗi input tối đa 8.192 ký tự trong Agent protocol. Cấu hình Trình duyệt theo nhiều máy có thể chạm trần trước khi tạo Job.
- Manager schedule có Một lần, Hằng ngày, Hằng tuần, Chạy sau Job và Chạy sau Lịch. Lập lịch chạy cục bộ còn có Mỗi N phút, Đếm ngược, startup và cấu hình local; hai hệ thống là riêng biệt và có thể tranh cùng Runner.
- Hủy lịch Manager chỉ xóa occurrence tương lai/đang chờ; Job đã bắt đầu vẫn chạy cho tới khi dùng Stop. Lịch Once hoặc After Job hoàn tất sau một occurrence.
- Pipeline hiện giới hạn độ sâu và số nhánh trực tiếp; coordinator đặt trần 20 cho mỗi loại. Nguồn Chạy sau phải là Job chưa terminal hoặc Lịch đang hoạt động; nhánh nguồn canceled/skipped không tự chạy, và khi bật Chỉ chạy khi nguồn thành công thì nhánh bị bỏ qua nếu nguồn thất bại/dừng/hủy.
- Capability và limit phụ thuộc policy workspace. UI có thể tắt tạo Job, lịch, điều khiển hoặc xem kết quả; đừng dựa vào con số của workspace khác hay gói cũ.
- Telemetry không truyền toàn bộ output: log tối đa 40 dòng/6 KiB; bảng tối đa 20 cột, 100 dòng và khoảng 20 KiB; tối đa 3 file, 16 KiB mỗi file và 24 KiB tổng, trong payload terminal 80 KiB.
- Kết quả được giữ ngắn hạn và theo limit workspace; bảng/file có thể bị truncated hoặc bỏ qua kèm storage warning. Manager không thay thế thư mục báo cáo đầy đủ trên máy đích.
- Log và result dùng redaction theo marker để giảm rủi ro, không cam kết xóa mọi PII hay bí mật. Không đưa credential vào input, log, tên profile, note hoặc output dự định xem từ xa.
- Catalog refresh ghim Package theo Gist revision và SHA-256. Cập nhật file sau khi Job đã tạo không đổi artifact của Job đó; hãy refresh rồi tạo Job/lịch mới khi cần bản mới.
- Web Manager dùng polling làm nền (xấp xỉ 20 giây cho state, 15 giây cho danh sách, 5 giây cho chi tiết) và dừng poll khi tab bị ẩn; kênh realtime WebSocket báo thay đổi để làm mới sớm hơn, nhưng dữ liệu vẫn có thể tạm stale nếu kênh này gián đoạn.
Mẹo & lỗi thường gặp
password_required nghĩa là gói đang khóa mà Job chưa có mật khẩu đúng. Nhập mật khẩu gói khi tạo Job, hoặc xuất lại bản không đặt mật khẩu rồi refresh catalog.Thông tin kiểm chứng
core/qmacro_manager_agent.pycore/qmacro_manager_qt.pyui/qmacro_runner_window.pyserver/qmacro_manager_coordinator.jswebsite/src/components/manager/CreateJobModal.tsxwebsite/src/pages/manager/ManagerJobDetailPage.tsxtests/test_qmacro_manager_runner_bridge.py
RunMacro