ARK CUA 是做什麼的?
透過捆綁的 Python CLI 操作 ARK CUA。將所有閘道存取權限保留在 CLI 中,切勿在聊天中索取 AgentPlan API 金鑰。
命令面
python3 <skill-dir>/scripts/cua.py <command> [options]
解析每次調用所輸出的單一 JSON 物件:
- 成功:
ok: true,包含data,有時還有next。 - 失敗:
ok: false,包含error.code,有時還有next.setup_command。
請閱讀 references/commands.md 以了解非核心命令。僅在對應狀態發生時,才閱讀 references/auth.md、references/outcomes.md 或 references/troubleshooting.md。
核心工作流程
- 執行
auth status。 - 出現
AUTH_REQUIRED、TOKEN_EXPIRED或REFRESH_FAILED時,轉達回傳的setup_command。要求使用者在其自己的本機終端中執行該命令,並透過隱藏提示輸入 AgentPlan API 金鑰。絕不從代理會話執行互動式登入,也絕不在聊天中接受金鑰。 - 使用者確認登入完成後,再次執行
auth status。 - 執行
delegate --objective "<user request>"一次。保留使用者的目標,不對其進行規劃或分解。 - 記錄
data.invocation_id;切勿再次提交相同請求。 - 驅動
data.outcome直到終端狀態:in_progress:執行next.command並持續觀察。needs_input:逐字轉達data.input_request.question,然後以answer提交使用者的回覆。completed:使用data.result.text作為權威結果。failed:報告失敗;僅在請求且安全時重試。cancelled:報告取消。
如果任務建立傳回 ACTIVE_RUN_CONFLICT,表示新請求未啟動。停止,告訴使用者桌面正忙,並且除非使用者明確要求,否則不要重試或檢查現有任務。
路由特殊意圖
- 特定桌面或可重複使用上下文:使用
desktop list、task run、context和task continue。 - 本機檔案傳送:僅從 CUA 目標中移除本機交付相關用語,讓 CUA 匯出已註冊的工件,然後使用
artifact list和artifact save。 - 健康或配置檢查:使用
ping、diagnose或model get;不要僅僅為了測試可用性而建立任務。 - 停止活動中的任務:僅在使用者明確要求時使用
cancel。
安全性與結果完整性
- 使用
assets/config.json中的捆綁閘道;允許與ap-cua-skill相同的每次呼叫和環境覆蓋。 - 完全像
ap-cua-skill一樣配置憑證:解析--api-key,然後是AP_CUA_AGENTPLAN_API_KEY、AGENTPLAN_API_KEY或ARK_API_KEY,然後在沒有其他可用金鑰時使用隱藏的本機終端提示。驗證並將成功的憑證儲存在本機0600快取中。 - 絕不暴露 API 金鑰、快取內容、授權標頭、使用者答案或工件位元組。
- 絕不從進度文字或非終端狀態推論完成。
- 僅當
outcome == completed時,才將result.text視為權威。 - 拒絕覆寫現有本機檔案。
artifact save需要新的輸出路徑。 - 拒絕將 HTML/插頁式回應視為工件,且不將其寫入磁碟。
- 不接受 base64 文字或外部分享連結作為下載的檔案;需要已註冊的工件。
- 不要繞過 CUA 問題、修改持久模型設定、管理排程、暴露桌面存取票證,或調用桌面重啟/重置操作。