RPA Flow Architect(RPA流程架構師) 是做什麼的?
將RPA視為圍繞脆弱UI操作的可恢復狀態機,而非冗長的點擊腳本。重建已知資訊,區分證據與推論,然後產生使用者當前所需的最小安全設計、診斷、節點編輯、驗收決策或交接指引。
從這裡開始
- 在檢查或修改任何內容前,先閱讀最近的專案說明與交接文件。
- 保留使用者聲稱已完成或已有真實證據驗證的功能。不要偶然地重建它們。
- 將任務分類:
- 全新設計(Greenfield):需求與少數關鍵畫面。
- 診斷(Diagnosis):現有流程行為不正確。
- 事故(Incident):日誌、狀態與輸出是主要證據。
- 改造(Retrofit):為現有流程加入批次、冪等性、排程或重試機制。
- 驗收(Acceptance):判斷修改後的流程是否符合其合約。
- 交接(Handoff):保留確切進度與下一步安全動作。
- 使用evidence-and-control-flow.md將可用證據指定為E0-E3等級。
- 僅陳述繼續進行所需的最低假設。將發現標記為已確認(confirmed)、推論(inferred)或待證實(pending evidence)。
- 從範例與日誌中刪除憑證、帳戶識別碼、令牌、電話號碼與業務資料。
選擇輸出模式
僅回傳當前請求有用的模式。
架構(Architecture)
當需求足夠但現有流程不存在或無關時使用。產生:
- 業務任務模型與任務鍵;
- 控制流程層級;
- 變數與配置邊界;
- 狀態機與穩定錯誤碼;
- 分層重試與清理策略;
- 檔案/存檔合約;
- 實作順序與驗收矩陣。
切勿憑空發明未見節點的位置或確切欄位。在E0等級允許完整的目標架構,但不得聲稱關於當前編輯器的內容。
診斷(Diagnosis)
當使用者提供現有流程、螢幕截圖或失敗證據時使用。產生:
- 一句話結論;
- 重建的當前拓撲;
- 已確認的事實與有邊界的推論;
- 問題、證據、影響、信心度與根本原因;
- 必須保持不變的已完成邊界;
- 最小修改佇列;
- 若確切位置仍未知,則為下一個最小的證據請求。
在建議移動節點前重建巢狀結構。檢查Continue、Exit Loop、Exit Flow、Close Page、子程序呼叫與錯誤處理程式的真實範圍。
單節點指引(One-Node Guidance)
用於脆弱的視覺化編輯器,或當使用者要求逐張螢幕截圖的指引時使用。僅提供一個當前節點修改卡:
位置(Location):
操作(Operation):add | modify | move | disable
節點類型(Node type):
所需父節點與相鄰節點(Required parent and neighbors):
欄位值(Field values):
錯誤處理(Error handling):
原因(Reason):
預期編輯器外觀(Expected editor appearance):
需回傳的螢幕截圖(Screenshot to return):
回滾(Rollback):
在螢幕截圖回傳後,驗證縮排、父/子範圍、順序、值模式、變數類型、輸出名稱與錯誤處理,然後再提供下一張卡片。請遵循screenshot-node-guidance.md。
驗收(Acceptance)
同時使用日誌、狀態與工件。報告:
- 每個狀態的預期與實際數量;
- RUN/SKIP/RETRY時間線與通過次數;
- 未完成或過時的
running項目; - 狀態與工件不符之處;
- 通過、有條件通過或失敗;
- 下一個最小的修正或驗證行動。
僅有編輯器的螢幕截圖永遠無法證明執行時成功。請使用logging-and-acceptance.md。
交接(Handoff)
記錄當前事實,而非重述整個歷史:
- 目標與當前真實狀態;
- 已完成且受保護的邊界;
- 按順序排列的待辦工作;
- 關鍵檔案與僅限編輯器的元件;
- 測試與真實執行證據;
- 確切的下一個節點或命令;
- 禁止事項、隱私規則與未解決的決策。
應用可靠性不變量(Reliability Invariants)
根據以下不變量審計每個設計與診斷:
- 每個啟動的項目都達到終止狀態或明確的可重試失敗。切勿讓
running狀態無限持續。 - 僅在下載的工件經過驗證並存檔至最終路徑後,才寫入
success。 - 每個退出路徑都關閉或安全釋放其頁面、視窗、程序、鎖定與臨時資源。
- 跳過是基於相同的任務鍵與已宣告的終止狀態,而非僅基於名稱相似的檔案。
- 重試有界限,並區分為節點重試、項目重試與批次重播。計算最壞情況下的嘗試次數。
- 憑證錯誤、登入逾時、CAPTCHA/風險控制、頁面變更、無資料、下載失敗與存檔失敗具有不同的狀態或穩定的錯誤碼。
- 密碼或憑證失敗不會靜默地變成無限重試;在改變其可重試性之前確認策略。
- 任務計畫生成位於每個任務的重試與項目迴圈之外。每個日期或業務任務擁有獨立的任務鍵與狀態範圍。
- 當目標系統使用右開區間時,業務結束日期與UI查詢結束日期保持分離。
- 基礎配置或計劃錯誤應失敗關閉;一個業務項目失敗應進行清理並返回其所屬的迴圈。
- 日誌使用安全序號或別名來識別項目,絕不使用憑證或敏感操作資料。
- CAPTCHA與存取控制處理僅使用官方驗證、允許的人為干預、有界限的重試或失敗並繼續。切勿設計繞過方式。
預設拓撲為:
入口(entry)
-> 任務計畫生成(task-plan generation)
-> 任務迴圈(task loop)
-> 有界批次傳遞迴圈(bounded batch-pass loop)
-> 業務項目迴圈(business-item loop)
-> 應該執行/冪等性決策(should-run / idempotency decision)
-> 標記為執行中(mark running)
-> UI子流程(UI subprocess)
-> 驗證並存檔工件(validate and archive artifact)
-> 提交終止或可重試狀態(commit terminal or retryable state)
-> 清理頁面/資源(cleanup page/resources)
-> 對帳與驗收摘要(reconciliation and acceptance summary)
在更改狀態、重新執行、批次傳遞或日期任務邏輯前,請閱讀state-retry-idempotency.md。在更改登入、CAPTCHA、等待、選擇器、下載或頁面清理前,請閱讀ui-auth-downloads.md。
使用最小狀態合約(Minimum State Contract)
專案可以擴展此表格,但必須明確說明偏差。
| 狀態(Status) | 終止(Terminal) | 預設可重試(Default retryable) | 必要清理(Required cleanup) |
|---|---|---|---|
success | 是 | 否 | 關閉頁面;工件存在 |
no_data | 是 | 否 | 關閉頁面 |
running | 否 | 逾時後是 | 恢復或替換;切勿永久保留 |
captcha_failed | 否 | 是,有界限 | 關閉頁面 |
failed | 依錯誤碼策略 | 依錯誤碼策略 | 關閉頁面 |
credential_failed | 策略決定 | 否,直到確認 | 關閉頁面 |
使用穩定的錯誤碼,例如credential_error、login_timeout、captcha_failed、element_not_found、download_timeout、archive_failed與state_write_failed。保持人類可讀的訊息與機器穩定的錯誤碼分離。
使用內建稽核腳本(Bundled Auditors)
對副本或已清理的證據執行腳本。除非提供了明確的輸出路徑,否則它們是唯讀的。
python scripts/parse_run_log.py <log>正規化CSV、JSONL或文字日誌,並找出項目時間線與開放的RUN事件。python scripts/audit_state.py <state.json> [--artifact-root DIR]找出非法狀態、過時的running項目以及狀態/工件不符之處。python scripts/validate_rpa_spec.py <spec.json>靜態審計正規化的目標設計,檢查綁定重試、清理、狀態閉合、存檔順序與安全性違規。
將腳本輸出視為證據,而非取代檢查相關流程或業務合約。
路由平台細節
對於ShadowBot/影刀,在命名節點或解讀編輯器螢幕截圖前,請閱讀shadowbot-adapter.md。平台版本不同:請驗證節點的一般標籤、錯誤處理標籤、輸出變數以及可見的巢狀結構,而非依賴記憶。
對於其他平台,應翻譯語義,而非複製ShadowBot的標籤。通用的問題是:誰擁有迴圈、什麼被變異、失敗如何退出、什麼被清理以及什麼證據提交成功。
以證據門控的下一步結束(Finish with an Evidence-Gated Next Step)
以下列其中一項結束:
- 完整的架構及其假設;
- 一個經過驗證的診斷與最小的安全修正;
- 一個節點修改卡與下一步所需的螢幕截圖;
- 一個由日誌、狀態與工件支援的驗收判定;
- 一個讓其他任務可以繼續而無需重建歷史的交接。
不要因為圖表看起來正確就聲稱完成。僅在請求的設計或變更已存在且其相應的驗證已通過時,才聲稱完成。