Communitygithub.com

ARK CUA

通过捆绑的 Python CLI 操作 ARK CUA,将所有网关访问限制在 CLI 内,无需在聊天中请求 AgentPlan API 密钥。

ARK CUA 是什么?

此技能通过一个专门的 Python CLI 工具来操作 ARK CUA,所有与网关的交互都发生在脚本内部,避免了在聊天窗口直接暴露 API 密钥的风险。它提供了一个标准化的命令接口,用于管理认证、委托任务以及处理任务生命周期中的各种状态(如进行中、需要输入、完成、失败或取消)。其核心工作流程严格遵循安全最佳实践,包括通过本地终端安全地获取用户 API 密钥,并确保结果完整性,例如仅将 `completed` 状态下的 `result.text` 视为权威结果。该技能支持多种平台上的常见开发工具,并详细规定了如何路由特殊意图(如使用特定桌面、传送文件或检查健康状态),同时明确禁止覆盖本地文件或绕过 CUA 提问等不安全操作。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add 2B-AL/agentplan-skills

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

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。

核心工作流

  1. 运行 auth status。
  2. 当出现 AUTH_REQUIRED、TOKEN_EXPIRED 或 REFRESH_FAILED 时,传递返回的 setup_command。要求用户在其本地终端中运行该命令,并通过隐藏提示输入 AgentPlan API 密钥。切勿在 Agent 会话中运行交互式登录,也切勿在聊天中接受密钥。
  3. 用户确认登录完成后,再次运行 auth status。
  4. 运行一次 delegate --objective "<user request>"。保留用户的原始目标,不要进行规划或分解。
  5. 记录 data.invocation_id;切勿重复提交同一请求。
  6. 驱动 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 提问、修改持久模型设置、管理计划、暴露桌面访问票据,或调用桌面重启/重置操作。

相关技能