Tài liệu

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.

RunMacro robot
Tài liệu Tính năng RunMacro Manager
🖥 Tính năng

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ế độ DesktopJob 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ế độ BrowserJob 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 RunnerManager 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. Đặ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.
  9. 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.
  10. 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

Activation, trạng thái Online và khởi động Windows

Activation bind Machine ID và giữ slot cho đến khi máy đó Gỡ key. Agent tự kết nối khi RunMacro mở; tắt ứng dụng chỉ chuyển Offline và không nhả slot. Khởi động cùng Windows là tùy chọn mở RunMacro, không phải nút Connect.

Đăng nhập và Ghi nhớ thiết bị

License key chọn workspace và chỉ được gửi để xác thực. Phiên thường có hiệu lực 24 giờ; Ghi nhớ thiết bị dùng phiên bảo mật có thể thu hồi trong 30 ngày thay vì lưu license key trong browser. Đăng xuất hoặc Đổi license đổi phạm vi workspace đang xem.

Gist ID, token, Test, Save và conflict

Manager trỏ tới cùng một GitHub Gist mà Studio phát hành và Runner đọc, nên chỉ cần dùng chung Gist ID để mọi nơi thấy cùng danh mục Package. Cấu hình đầu cần cả Gist ID lẫn token; khi đã cấu hình, để trống giữ giá trị cũ. Save dùng phiên bản cấu hình để phát hiện cạnh tranh; conflict buộc chọn cấu hình RunMacro hoặc Manager làm nguồn sự thật. Token được lưu mã hóa phía server và không lộ ra trình duyệt.

Máy và Package

Trang Máy lọc Online/Offline/Idle/Running/Paused, cho đổi tên và ghi chú khi policy cho phép, đồng thời hiển thị version Agent/protocol. Trang Package tìm kiếm, sắp xếp, ghi chú, làm mới catalog và hiển thị revision cùng SHA-256.

Job Desktop

Gửi input scalar và runtime Desktop tới từng máy được chọn. Chạy ngay chỉ nhận máy online, idle và tương thích. Tệp/thư mục trong input là đường dẫn trên máy đích, không phải máy đang mở trình duyệt Manager.

Job Trình duyệt

Yêu cầu URL Google Sheets HTTPS riêng cho từng máy, kích thước tối thiểu 320×240 và 1–99 phiên đồng thời trong protocol hiện tại. Policy workspace và tài nguyên thật có thể đặt trần thấp hơn.

Chạy ngay và máy không sẵn sàng

Job chạy ngay từ chối máy offline, busy, paused, revoked hoặc sai protocol. Dialog có thể loại các máy không sẵn sàng rồi gửi lại; Package được pin tại thời điểm tạo Job.

Lịch theo thời gian

Manager hỗ trợ Một lần, Hằng ngày hoặc Hằng tuần (kèm thứ cụ thể trong tuần) theo múi giờ IANA. Máy offline/busy/paused có thể được chọn và Job chờ khi tới lượt, nhưng vẫn có thể misfire, overlap hoặc hết thời gian chờ tài nguyên.

Chạy sau (Job hoặc Lịch) và pipeline

Chế độ Chạy sau nhận hai loại nguồn: một Job chưa kết thúc (nhãn Job) hoặc một Lịch đang hoạt động (nhãn Schedule). Với nguồn Job, nhánh con kích hoạt một lần khi Job đó đạt trạng thái terminal do thực thi. Với nguồn Lịch, nhánh con kích hoạt lại mỗi lần Job do lịch nguồn sinh ra kết thúc, nên hữu ích cho pipeline định kỳ. Bật Chỉ chạy khi nguồn thành công để chỉ chạy khi nguồn ở trạng thái SUCCESS; nếu tắt (mặc định) thì chạy bất kể kết quả. Lineage ghi Job cha, gốc và độ sâu; chu trình bị từ chối khi liên kết và không thể xóa Lịch nguồn khi còn nhánh phụ thuộc.

Giám sát và điều khiển

Danh sách Job làm mới khoảng 15 giây; chi tiết Job khoảng 5 giây; trạng thái workspace/máy khoảng 20 giây. Có thể Pause các lượt running, Resume lượt paused và Stop lượt active riêng lẻ hoặc theo batch khi workspace có capability.

Log, bảng và file kết quả

Manager hiển thị log tail, message/error, thời lượng, metadata, bảng có cờ truncated và tối đa ba file nhỏ thuộc JSON/TXT/PNG/JPEG. Storage warning nghĩa là một phần kết quả đã bị lược do giới hạn. Kết quả terminal mặc định giữ 7 ngày trừ khi policy workspace quy định khác.

Capability và limit của workspace

Quyền xem/đổi tên máy, quản lý Gist, tạo/lên lịch/điều khiển Job và xem kết quả được trả theo session. Các limit máy, active Job, Runner đồng thời, target, lịch và ngày lưu kết quả cũng đến từ policy; giá trị hiển thị hiện tại là nguồn chính xác.

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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ý

  1. 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.
  2. 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ử.
  3. 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.
  4. 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.
  5. 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

Máy không Online: mở RunMacro trên máy đó và kiểm tra Trạng thái Manager, license còn hiệu lực, mạng HTTPS hoạt động cùng App/Agent/Protocol version. Không cần và không có bước Connect thủ công.
Job báo 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.
Khi có Gist conflict, so masked Gist ID và hỏi người quản trị trước khi chọn. Dùng cấu hình RunMacro sẽ đẩy bản máy đã báo cáo; dùng cấu hình Manager sẽ tải bản đã mã hóa về Agent mà không đưa token cho browser.
Với Trình duyệt, bắt đầu bằng một máy, 1–2 phiên và một Google Sheet dữ liệu thử. Chỉ tăng target/phiên sau khi revision, profile source, viewport và kết quả nhỏ đều đúng.
Manager là kênh điều phối, không phải kho bí mật hay kho báo cáo đầy đủ. Giữ credential trong kho chuyên dụng và thu thập output đầy đủ trên máy đích; chỉ gửi summary/result tối thiểu cần theo dõi.

Thông tin kiểm chứng

  • core/qmacro_manager_agent.py
  • core/qmacro_manager_qt.py
  • ui/qmacro_runner_window.py
  • server/qmacro_manager_coordinator.js
  • website/src/components/manager/CreateJobModal.tsx
  • website/src/pages/manager/ManagerJobDetailPage.tsx
  • tests/test_qmacro_manager_runner_bridge.py
Robot biểu tượng của RunMacro

Công việc của robot. Thời gian của bạn.

Tạo robot trong vài phút, không cần lập trình. Chạy ổn định, quản lý từ xa, chi phí rõ ràng — và bạn luôn giữ quyền kiểm soát.