ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Reasonix 下的 CLI-Anything:让编码 Agent 构建 Agent-Native CLI Harness 的完整技能适配指南

Reasonix 下的 CLI-Anything:让编码 Agent 构建 Agent-Native CLI Harness 的完整技能适配指南 Reasonix 下的 CLI-Anything让编码 Agent 构建 Agent-Native CLI Harness 的完整技能适配指南【免费下载链接】CLI-AnythingCLI-Anything: Making ALL Software Agent-Native -- CLI-Hub: https://clianything.cc/项目地址: https://gitcode.com/GitHub_Trending/cl/CLI-Anything导读本文围绕 reasonix-skill/SKILL.md 展开讲解如何将 CLI-Anything 的 Harness 构建方法论完整适配到 Reasonix 编码 Agent 上使 Reasonix 能够像 CLI-Anything Builder 一样针对任意 GUI 应用或源码仓库完成**构建Build、精化Refine、测试Test、校验Validate**四类任务。读完本文你将掌握该 Skill 的安装与调用方式、Reasonix 内置工具与 Harness 工作流的绑定关系、完整的 7 阶段构建流程、四模式的操作规范、后端与打包的硬性规则以及 Step Budget 配置对构建成败的关键影响。该 Skill 位于 reasonix-skill/是 CLI-Anything 仓库中继 Codex、Hermes 等适配器之后的又一个 Agent 适配层其核心设计原则是在不改变生成的 Python Harness 格式的前提下把 CLI-Anything 的方法论“移植”到 Reasonix 的工具集上。Skill 的定位与元数据reasonix-skill/SKILL.md的 YAML Frontmatter 直接定义了该 Skill 的触发条件与执行模型--- name: cli-anything description: Use when the user wants Reasonix to build, refine, test, or validate a CLI-Anything harness for a GUI application or source repository. Adapts the CLI-Anything methodology to Reasonix without changing the generated Python harness format. runAs: subagent ---关键信息有三点namecli-anything是 Reasonix 中该 Skill 的全局注册名description明确了 Skill 的适用场景——当用户希望 Reasonix 针对 GUI 应用或源码仓库构建/精化/测试/校验 Harness 时触发runAs: subagent表示该 Skill 以子代理subagent身份运行这与 README 中提到的run_skill隔离执行路径一致详见下文两种调用方式。与之配套的 agents/reasonix.yaml 提供了 Agent 接口元数据包括展示名CLI-Anything、短描述以及默认提示词Use CLI-Anything to build, refine, test, or validate a harness for the users target software or source repository.这是 Reasonix 侧识别与加载该 Skill 的入口。安装与两种调用方式安装脚本与安装目标仓库提供了跨平台的安装脚本macOS / Linux执行 scripts/install.shWindows (PowerShell)执行 scripts/install.ps1。从脚本源码可以确认其行为install.sh将 Skill 目录整体复制到${HOME}/.reasonix/skills/cli-anythinginstall.ps1对应%USERPROFILE%\.reasonix\skills\cli-anything若目标目录已存在脚本拒绝覆盖并提示手动删除后重装install.sh中if [[ -e ${DEST_DIR} ]]; then ... exit 1install.ps1中if (Test-Path $destDir) { Write-Error ... }安装完成后需要重启 Reasonix才能加载新 Skill。两种调用方式安装后有两种使用方式见 reasonix-skill/README.md方式一斜杠命令Slash Invocation——将 Skill 内联进父级 Reasonix 循环/cli-anything https://github.com/GNOME/gimp方式二run_skill 子代理执行——需要隔离执行时使用run_skill({ name: cli-anything, arguments: /path/to/software })输入参数有两种形式本地源码路径如./gimp、/path/to/software或 GitHub 仓库 URL若使用 URL克隆后以本地目录名推导软件名。方法论的来源优先级先读 HARNESS.mdSkill 明确要求动手实现之前必须先获取 CLI-Anything 方法论的全量事实来源source of truth按以下优先级进行若当前工作区就是 CLI-Anything 仓库读取cli-anything-plugin/HARNESS.md若 Reasonix 正从本适配目录运行检查../cli-anything-plugin/HARNESS.md若上述本地文件均不可用克隆或下载cli-anything-plugin仓库后使用其中的HARNESS.md及其周边资源仅当本地与网络获取全部失败时才回退到 SKILL.md 中内嵌的精简规则。这一设计保证了 Reasonix 生成的 Harness 与 CLI-Anything 官方 SOP 完全一致。cli-anything-plugin/HARNESS.md中定义了完整的 7 阶段 SOP见下文是任何 Harness 构建的宪法。Reasonix 工具绑定一张表看懂 Harness 工作流SKILL.md 的核心内容之一是Reasonix Tool Bindings表它将 Reasonix 内置工具与 Harness 工作流中的角色一一对应Reasonix 工具在 Harness 工作流中的角色bash运行 Shell 命令、安装依赖包、执行 CLI 工具、运行测试、克隆仓库write_file生成 Python 文件Click CLI、后端模块、测试、setup.pyedit_file对生成的代码做定点编辑单次替换multi_edit一次通过中批量对单个文件施加多个原子编辑read_file读取目标软件源码、已有 Harness 代码、测试结果grep跨目标软件代码库搜索模式API、CLI 工具、数据模型glob在源码树中按模式查找文件.py、.xml、*.json 等ls列出目录内容理解项目结构mcp__codegraph__search/mcp__codegraph__context可选的代码图谱分析CodeGraph 启用时可用Reasonix 会剥离codegraph_原始前缀因此模型可见名称不带此前缀web_fetch从网络抓取文档、API 参考或远端文件各阶段工具编排建议SKILL.md 给出了按阶段使用工具的推荐编排Phase 1分析用lsglob扫描源码树用grep定位 API 表面与 CLI 入口点用read_file检查关键文件若 CodeGraph 已启用且工具可用用mcp__codegraph__search/mcp__codegraph__context做更深入的符号与架构分析。Phase 2-3设计与实现用write_file创建新的 Harness 文件用edit_file/multi_edit精化生成的代码用bash执行pip install -e .完成本地安装。Phase 4-6测试用bash运行pytest并捕获结果用read_file检查测试输出用write_file更新TEST.md。Phase 7打包用write_file编写setup.py用bash执行pip install -e .并用which cli-anything-software验证安装产物。相比 Codex 适配器的文件操作走execute_code模式Reasonix 提供了更细粒度的write_file/edit_file/multi_edit文件操作集并且支持可选的 CodeGraph 符号图谱分析这是它在工具绑定上的显著差异对比表见 reasonix-skill/README.md 的 How It Compares to Other Agent Adapters 一节。Step Budget决定构建能否跑完的关键配置一个完整的 Harness 构建通常需要25–40 轮工具调用架构检查、10 个文件写入、安装、多次测试运行。通过run_skill调用时子代理会继承由父代理reasonix.toml中agent.max_steps设置推导出的步数预算max_steps 0默认值表示无限时子代理也无步数上限——这是 CLI-Anything 工作流推荐的配置若max_steps设置为有限值子代理只能获得一半预算下限 5这可能在复杂构建完成之前就将其截断。因此凡是配置了有限max_steps的用户在运行 CLI-Anything 构建前应确保其值为0或足够大例如 ≥ 64以保证子代理有足够的轮次完成全部 7 个阶段。四模式操作规范SKILL.md 定义了四个工作模式分别对应 Harness 生命周期中的不同任务。Build从零构建新 Harness当用户需要一个新的Harness 时使用。产出结构如下repo-root/ ├── skills/ │ └── cli-anything-software/ │ └── SKILL.md └── software/ └── agent-harness/ ├── SOFTWARE.md ├── setup.py └── cli_anything/ └── software/ ├── README.md ├── __init__.py ├── __main__.py ├── software_cli.py ├── core/ ├── utils/ ├── tests/ └── skills/ └── SKILL.md需要实现一个有状态的 Click CLI必须具备一次性子命令one-shot subcommandsREPL 模式作为无子命令时的默认行为--json机器可读输出在目标软件支持的情况下提供带 undo/redo 的会话状态。Refine精化已有 Harness当 Harness 已存在时使用。流程是先盘点当前命令与测试再针对目标软件做差距分析gap analysis。优先级建议高影响力的缺失功能对已有后端 API 或 CLI 的轻量封装能与现有命令良好组合的增量。除非用户明确要求破坏性变更否则不得移除现有命令。Test测试规划与执行在写测试代码之前先规划。保持两类测试并存test_core.py单元覆盖test_full_e2e.py工作流与后端验证。在可能的情况下通过子进程测试已安装的命令cli-anything-software而不仅限于模块导入。ValidateHarness 合规性检查校验 Harness 是否满足以下约束使用cli_anything.software命名空间包布局具备可安装的setup.py入口点支持 JSON 输出有 REPL 默认路径规范版canonical与包内package-local两份SKILL.md文件内容一致有使用文档与测试文档。后端规则优先真实软件禁止重实现Backend Rules是 CLI-Anything 方法论的第一铁律优先使用真实软件后端而不是用 Python 重实现软件功能。具体做法是把真实可执行程序或脚本接口封装在utils/software_backend.py中只有当项目明确要求或不存在可用的原生后端时才使用合成synthetic重实现。cli-anything-plugin/HARNESS.md对此有更详尽的展开列举了各软件的后端调用模式软件后端 CLI原生格式CLI 如何使用它LibreOfficelibreoffice --headless.odt/.ods/.odp (ODF ZIP)生成 ODF → 转换为 PDF/DOCX/XLSX/PPTXBlenderblender --background --python.blend-cli.json生成 bpy 脚本 → Blender 渲染为 PNG/MP4GIMPgimp -i -b (script-fu ...).xcfScript-Fu 命令 → GIMP 处理并导出Inkscapeinkscape --actions....svg (XML)操作 SVG → Inkscape 导出为 PNG/PDFShotcut/Kdenlivemelt或ffmpeg.mlt (XML)构建 MLT XML → melt/ffmpeg 渲染视频Audacitysox.aup3生成 sox 命令 → sox 处理音频OBS Studioobs-websocketscene.jsonWebSocket API → OBS 捕获/录制底层实现模式恒定不变构建数据 → 调用真实软件 → 验证输出。后端模块如 LibreOffice 示例中的utils/lo_backend.py通常负责用shutil.which()定位可执行程序、用subprocess.run()以正确参数调用、在未找到时抛出带安装指引的清晰错误。打包规则PEP 420 命名空间包Packaging Rules规定了 Harness 必须遵循的打包约束使用find_namespace_packages(include[cli_anything.*])cli_anything/作为命名空间包顶层不放置__init__.py这是 PEP 420 的关键多个独立安装的 PyPI 包可以各自向cli_anything/贡献子包而不冲突例如cli-anything-gimp贡献cli_anything/gimp/cli-anything-blender贡献cli_anything/blender/通过console_scripts暴露cli-anything-software命令将cli_anything.software/skills/SKILL.md纳入 package datapackage_data{cli_anything.software: [skills/*.md]}确保 pip 安装后仍随包附带本地 Skill 文件。七步工作流与七阶段方法论SKILL.md 的 Workflow 节给出了构建 Harness 的 7 个步骤在本地获取源码树克隆或使用已有路径分析架构、数据模型、已有 CLI 与 GUI 到 API 的映射设计命令组与状态模型实现 Harness先写TEST.md再写测试并运行更新 README 使用文档并同时生成skills/cli-anything-software/SKILL.md与cli_anything/software/skills/SKILL.md两份 Skill用pip install -e .验证本地安装。这与 reasonix-skill/README.md 中总结的CLI-Anything 7 阶段方法论一一对应Codebase Analysis— 扫描目标软件的架构、数据模型与 API 表面CLI Architecture Design— 设计命令组、状态模型与输出格式Implementation— 生成基于 Click 的 Python CLI带 REPL、JSON 输出与会话状态Test Planning— 创建包含完整测试计划的TEST.mdTest Implementation— 编写单元测试与真实后端调用的 E2E 测试Test Documentation— 运行全部测试并记录结果追加回TEST.mdPyPI Packaging— 创建setup.py并验证pip install -e .。七阶段中的关键实现要点HARNESS.md 补充Phase 3 的 REPL 默认行为在主 Click 组上使用invoke_without_commandTrue无子命令时调用repl命令——这保证了无参数运行cli-anything-software即进入 REPL。Phase 4 的 TEST.md 规划在写任何测试代码前创建TEST.md必须包含测试清单计划、单元测试计划模块/函数/边界情况/预期数量、E2E 测试计划真实工作流、真实文件、输出属性验证、格式校验以及多步骤真实工作流场景。Phase 5 的四层测试策略单元测试合成数据、无外部依赖原生 E2E验证中间文件结构正确真实后端 E2E调用真实软件验证输出存在、大小 0、magic bytes 正确如%PDF-并打印产物路径供人工检查CLI 子进程测试通过_resolve_cli辅助函数以真实用户/Agent 的方式调用已安装的cli-anything-software命令。不做优雅降级——软件未安装时测试应失败而非跳过。Phase 6.5 的 SKILL.md 生成规范版 Skill 位于skills/cli-anything-software/SKILL.md兼容副本写入cli_anything/software/skills/SKILL.md可用skill_generator.py自动提取 CLI 元数据生成或用templates/SKILL.md.template的 Jinja2 模板定制。Phase 7 的命名空间包规则cli_anything/无__init__.py子包gimp/、blender/等各有自己的__init__.py。已有 Harness 参考与 RegistrySKILL.md 提示需要最新的 Harness 支持列表及其后端模式时可定位 CLI-Anything 仓库根目录的registry.json。当前仓库的 registry.json 收录了数十个 Harness 条目每个条目包含名称、显示名、版本、描述、依赖requires、安装命令pip install git...#subdirectorysoftware/agent-harness、入口点cli-anything-software、Skill 路径skills/cli-anything-software/SKILL.md与贡献者等信息对应的skills/目录下见 skills/已经就位了 70 余份cli-anything-software/SKILL.md覆盖 GIMP、Blender、LibreOffice、Shotcut、QGIS、Zotero 等广泛领域可作为新 Harness 的结构与深度参考。输出期望进度与结果的汇报规范无论汇报进度还是最终结果都必须包含目标软件与源码路径新增或变更的文件已运行的验证命令开放风险或后端限制。这套汇报规范保证了 Reasonix 父代理能持续跟踪子代理的构建进度并在发现后端限制时及时介入。小结reasonix-skill/SKILL.md是一个结构完整、可直接投入实战的 Agent 适配技能它以 CLI-Anything 官方 HARNESS.md 为方法论事实来源将 Reasonix 的内置工具逐一映射到 Harness 构建工作流明确定义了 Build/Refine/Test/Validate 四模式、后端真实调用原则、PEP 420 打包约束与 Step Budget 配置要求。任何 Reasonix 用户在完成安装install.sh/install.ps1→~/.reasonix/skills/cli-anything并将agent.max_steps设为0或 ≥ 64 后即可通过/cli-anything或run_skill让 Reasonix 为任意 GUI 软件生成符合官方标准的 Agent-Native CLI Harness。【免费下载链接】CLI-AnythingCLI-Anything: Making ALL Software Agent-Native -- CLI-Hub: https://clianything.cc/项目地址: https://gitcode.com/GitHub_Trending/cl/CLI-Anything创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表