SuperAPI AI 工具集

cli-anything-macrocli

智能体与模型

查看项目

更新于 10-15 14:36

技能介绍

用途

MacroCLI 用于把有价值的 GUI 工作流转换为参数化、可由 CLI 调用的宏。智能体不直接接触 GUI,而是通过这个稳定的命令行接口调用宏,运行时再把执行路由到当前环境中最合适的后端。

主要能力

  • 宏管理:列出所有可用宏、查看宏的参数与步骤结构(schema)、对宏做结构校验、脚手架式生成新的宏 YAML 文件。
  • 宏执行:运行宏并传入参数,或先做 dry-run 模拟以检查参数而不产生副作用。
  • 会话管理:查看会话状态与运行历史、持久化会话到磁盘、列出已保存的会话。
  • 后端查询:查看当前环境中可用的执行后端。
  • 机器可读输出:所有命令在设置 --json 时以 JSON 输出到 stdout,包含 success、macro_name、output、error 与 telemetry(耗时、步骤总数、已运行步骤、使用的后端、是否 dry-run)等字段;失败时 success 为 false,退出码为 1。

使用方式

安装:

cd macrocli/agent-harness
pip install -e .

依赖:Python 3.10+、PyYAML、click、prompt-toolkit。

快速开始(面向智能体):

# 1. 查看可用宏
cli-anything-macrocli macro list --json

# 2. 查看某个宏的参数
cli-anything-macrocli macro info export_file --json

# 3. 无副作用地 dry-run 检查参数
cli-anything-macrocli --dry-run macro run export_file \
    --param output=/tmp/test.txt --json

# 4. 执行宏
cli-anything-macrocli macro run export_file \
    --param output=/tmp/result.txt --json

# 5. 查看可用后端
cli-anything-macrocli backends --json

全局标志:--json(stdout 输出机器可读 JSON)、--dry-run(模拟所有步骤、跳过副作用)、--session-id <id>(恢复或创建命名会话)。

macro 命令组:macro list(列出所有可用宏)、macro info <name>(显示宏 schema,含参数、步骤、条件)、macro run <name> --param k=v(执行宏)、macro dry-run <name> --param k=v(无副作用模拟)、macro validate [name](结构校验)、macro define <name>(脚手架生成新宏 YAML)。

session 命令组:session status(会话统计)、session history(最近运行历史)、session save(持久化会话到磁盘)、session list(列出所有已保存会话)。

backends 命令:cli-anything-macrocli backends --json,显示 native_api、file_transform、semantic_ui、gui_macro、recovery 以及各后端在当前环境中是否可用。

宏参数通过 --param key=value 传入,可重复多次:

cli-anything-macrocli macro run transform_json \
    --param file=/path/to/data.json \
    --param key=settings.theme \
    --param value=dark \
    --json

执行后端

后端根据宏步骤定义自动选择:

  • native_api:由 backend: native_api 触发,用于子进程 / shell 命令。
  • file_transform:由 backend: file_transform 触发,用于 XML、JSON、文本文件编辑。
  • semantic_ui:由 backend: semantic_ui 触发,用于无障碍 / 键盘快捷键。
  • gui_macro:由 backend: gui_macro 触发,用于预编译的坐标回放。
  • recovery:由 backend: recovery 触发,用于重试 / 回退编排。

编写宏

宏是位于 cli_anything/macrocli/macro_definitions/ 下的 YAML 文件。可用以下命令脚手架生成:

cli-anything-macrocli macro define my_macro --output \
    cli_anything/macrocli/macro_definitions/examples/my_macro.yaml

最小 schema 示例:

name: my_macro
version: "1.0"
description: What this macro does.

parameters:
  output:
    type: string
    required: true
    description: Where to write results.
    example: /tmp/result.txt

preconditions:
  - file_exists: /path/to/input

steps:
  - id: step1
    backend: native_api
    action: run_command
    params:
      command: [my-app, --export, "${output}"]
    timeout_ms: 30000
    on_failure: fail  # or: skip, continue

postconditions:
  - file_exists: ${output}
  - file_size_gt: [${output}, 100]

outputs:
  - name: result_file
    path: ${output}

agent_hints:
  danger_level: safe  # safe | moderate | dangerous
  side_effects: [creates_file]
  reversible: true

智能体使用规则

  • 程序化输出时始终使用 --json。
  • 在执行有副作用的宏之前,先用 --dry-run 校验参数。
  • 检查 success 字段,不要仅凭退出码判断成功。
  • 当 success 为 false 时读取 error 字段,它说明了失败原因。
  • 在调用 macro run 之前,用 macro info <name> 发现参数。
  • 所有文件参数使用绝对路径。

示例工作流

# 第 1 步:有哪些可用?
cli-anything-macrocli macro list --json

# 第 2 步:transform_json 需要哪些参数?
cli-anything-macrocli macro info transform_json --json

# 第 3 步:安全测试
cli-anything-macrocli --dry-run macro run transform_json \
    --param file=/tmp/config.json \
    --param key=theme \
    --param value=dark --json

# 第 4 步:正式执行
cli-anything-macrocli macro run transform_json \
    --param file=/tmp/config.json \
    --param key=theme \
    --param value=dark --json

适用场景

适合需要让智能体以稳定、可参数化的方式复用 GUI 工作流的场景,例如文件导出、JSON/XML 配置修改、通过无障碍接口或键盘快捷键操作界面,以及需要重试与回退编排的任务。

限制

资料未提供关于收费、价格、平台支持范围、性能指标或具体宏库内容的更多信息。