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 密钥。切勿在 Agent 会话中运行交互式登录,也切勿在聊天中接受密钥。 - 用户确认登录完成后,再次运行
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 提问、修改持久模型设置、管理计划、暴露桌面访问票据,或调用桌面重启/重置操作。