CLI-Anything:让任意软件变成AI Agent可操控的原生工具

香港大学HKUDS团队开源的CLI-Anything项目提出了一个精妙的解决方案:用命令行接口(CLI)作为AI Agent与任意软件之间的通用协议层。当前AI Agent擅长推理但极度缺乏操控真实专业软件的能力——GUI自动化脆弱、API覆盖率低、重新造轮子会缺失很多功能。CLI-Anything通过全自动流水线,把任意有源码的软件转化为Agent可使用的原生工具。

项目已在GIMP、OBS Studio、Blender、Audacity、Inkscape等8大复杂开源软件中成功应用,跑通1298个测试用例。每个生成的CLI都支持--json标志输出结构化数据(供Agent消费)和人类可读的表格格式,并通过标准的--help和which命令实现能力发现。

这个项目的意义在于它可能改变Agent与软件交互的范式——不再需要为每个软件写MCP server或API wrapper,而是用一条命令就能把任何开源软件变成Agent原生工具。

CLI-Anything:让任意软件变成AI Agent可操控的原生工具

背景:AI Agent的软件控制困境

2026年,AI Agent已经能在很多领域媲美甚至超越人类的推理水平,但有一个令人尴尬的现实:这些聪明的Agent却连一张照片都不会用Photoshop处理,连一段音频都不会用Audacity剪辑。推理能力和实际操作能力之间,存在一道巨大的鸿沟。

这个问题并非没有人尝试解决。过去几年,业界提出了三种主要思路,但它们各自有难以绕过的硬伤:

GUI自动化(屏幕截图+点击模拟)是最直觉的方案——让AI像人一样看着屏幕操作。但这种方式极度脆弱:软件版本一升级、主题一换,整个自动化流程就可能崩溃。更糟糕的是,GUI操作难以并行、无法批处理,对AI Agent而言效率极低。

API封装更加稳定,但覆盖率是硬伤。大量专业软件——从GIMP到Blender到Audacity——根本没有完整的官方API。即便有,开发一套针对每个软件的封装也是海量工程。

重新实现软件功能听起来像在开玩笑,但确实有团队尝试过。结果可想而知:不仅工作量巨大,还会丢失多年积累的专业功能和优化细节。

核心洞察:CLI才是那个被忽视的答案

CLI-Anything项目提出了一个看起来简单但极有说服力的论断:**几乎所有值得被AI操控的专业软件,都已经有了命令行接口(CLI)**。

想一想:ffmpeg处理视频,ImageMagick处理图片,Pandoc转换文档,Git管理代码,Docker运行容器——这些工具早就以CLI形式存在,而且被数百万开发者每天使用。更重要的是,CLI天然就是**结构化文本**,而结构化文本恰恰是大语言模型最擅长生成和理解的格式。

CLI-Anything的发现是:与其费力在GUI和API方向上打补丁,不如把CLI变成Agent与软件世界之间的标准协议层。

CLI作为协议层的四大优势

结构化且可组合:命令行命令格式规范,参数明确,输出可预测。更重要的是,CLI命令可以通过管道(pipe)自由串联,形成复杂工作流——这与LLM生成的操作序列天然契合。

轻量且无依赖:CLI工具通常不需要运行环境,跨平台兼容,不存在"安装了工具但跑不起来"的问题。

自我描述:`--help` 标志提供了完整的自动文档。Agent可以在不需要外部知识库的情况下,通过 `--help` 自主发现和学习工具的使用方法。

确定性与可靠性:相同的命令产生相同的输出。这对于需要可预测行为的AI Agent至关重要——不像GUI操作会因为界面状态而产生不确定的结果。

全自动转化流水线

CLI-Anything最引人注目的技术成果是其**全自动转化流水线**:给定一个有源码的软件,系统能自动生成一套完整的、Agent可用的CLI工具集。

流水线分为五个阶段:

源码分析 → 功能提取 → CLI生成 → 测试验证 → pip可安装包

源码分析阶段,系统解析软件的代码结构,识别核心功能模块、数据类型和操作接口。

功能提取阶段,从代码中提炼出有意义的、可独立调用的功能单元,过滤掉内部实现细节。

CLI生成阶段,为每个功能单元自动生成标准化的命令行接口,包括参数定义、帮助文本和错误处理。

测试验证阶段,自动生成测试用例并运行,确保生成的CLI正确实现了软件的预期功能。

打包发布阶段,将生成的CLI工具打包成pip可安装格式,避免与现有工具的命名冲突。

每个生成的CLI都内置了 `--json` 标志,可以输出结构化JSON数据,方便Agent进行程序化处理;同时保留人类可读的表格格式,适合交互式使用。

八大复杂软件的实战验证

目前,CLI-Anything已在8个复杂的开源专业软件上完成验证,共通过1298个测试用例:

| 软件 | 领域 | 典型用例 |

|------|------|----------|

| **GIMP** | 图像编辑 | 图层操作、滤镜应用、格式转换、批处理 |

| **OBS Studio** | 直播/录制 | 场景管理、音视频源控制、录制启停 |

| **Blender** | 3D建模/渲染 | 模型导入导出、材质操作、动画控制 |

| **Audacity** | 音频编辑 | 多轨处理、效果应用、格式转换 |

| **Inkscape** | 矢量图形 | SVG编辑、路径运算、批量导出 |

| **Krita** | 数字绘画 | 画笔设置、图层管理、滤镜效果 |

| **Darktable** | 照片后期 | RAW文件处理、色彩校正、批处理导出 |

| **LMMS** | 音乐制作 | 合成器配置、轨道管理、工程导出 |

这些软件横跨多媒体创作、音视频处理等多个专业领域,复杂度各不相同,但CLI-Anything的流水线都能有效处理。

与MCP方案的深度对比

MCP(Model Context Protocol)是Anthropic推出的主流Agent工具集成协议,已被Claude Code、Cursor等广泛采用。但MCP存在一个根本性瓶颈:**每个软件都需要人工开发一个MCP server**。

这意味着:

  • 需要人力资源投入(开发者时间)
  • 覆盖率受开发社区活跃度限制
  • 功能覆盖往往不完整,只封装了部分常用功能

CLI-Anything的差异化价值在于:

  • **全自动**:不需要人工开发,流水线自动生成
  • **完整覆盖**:CLI可以暴露软件的全部功能,而非选择性封装
  • **可组合性**:CLI命令天然支持管道操作和shell脚本组合
  • **平台兼容**:已支持OpenClaw、nanobot、Cursor、Claude Code等主流平台

值得一提的是,两种方案并不互斥。MCP可以在高频场景中提供更精细的控制,CLI-Anything则在覆盖长尾软件方面更有优势。

战略愿景与行业意义

CLI-Anything的发布提出了一个激进但合理的愿景:**覆盖GitHub上所有有意义的开源项目**,从开发工具到科学计算软件,从企业应用到创意工具,让每一个软件都能被AI Agent直接操控。

这并非纸上谈兵。项目的核心技术——自动化CLI生成流水线——已经在8个高复杂度软件上证明了可行性。随着流水线的持续优化,覆盖数千个开源项目在技术上完全可行。

从更宏观的视角看,CLI-Anything解决的是AI Agent生态的一个根本性制约:**如何让数以万计的现有软件快速变成Agent可用的工具?** 答案不是重写这些软件,不是等待每个软件团队开发API,而是把CLI这个已经存在几十年的接口标准,重新发现为AI时代的第一等公民。

人类花了几十年时间,在CLI之上建立了丰富的软件生态。CLI-Anything的意义在于,让AI Agent可以直接继承这个生态,而不是从头再来。