CLI-Anything 入门:让 Agent 调用真正的软件
CLI-Anything 源码解析:HARNESS 与 preview_bundle.py
核对自动生成命令声称遵循的约束。
CLI-Anything 源码解析:HARNESS 与 preview_bundle.py知识学习CN编辑简报更新 2026-09-26
你将学会
- 方法规范有明确要求
- 预览 bundle 有自己的身份
- 读错误路径
开始前需要
- Python 打包基础
- 具备实际后端的合法 GUI 软件
发布社区命令之前,先完成窄范围概念验证。
先看结论
- 规范是目标,不是合规证明。
- 缓存键必须覆盖影响输出的输入。
- 注册表包要单独审查。
方法规范有明确要求
HARNESS.md 定义分析、设计、实现、测试规划、执行、文档和发布阶段。它要求真实后端端到端测试,以及对已安装命令的子进程测试。
命令文件要求先读 HARNESS.md。自动执行若跳过该文件,生成的 CLI 即使外观合理,也可能缺少必要测试或打包信息。
预览 bundle 有自己的身份
preview_bundle.py 定义协议版本,对源数据求哈希,寻找缓存清单并建立 bundle 编号。它记录文件与摘要,方便查看器找到结果。
缓存命中只有在键包含所有影响预览的输入和生成设置时才可靠。跨版本复用之前,应审查这些字段。
读错误路径
需要检查路径越界、并发写入、缺少原生程序,以及失败却返回成功的情况。指南谈到会话加锁,并要求真实后端测试不能悄悄跳过。
我们审阅的是辅助脚本和规范,并没有逐个审计注册表中所有已生成的 harness。
如何选择
| 比较维度 | 方案 A | 方案 B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
实施步骤
- 1
阅读 HARNESS.md 的阶段要求。
- 2
沿着 prepare_bundle 追踪到 finalize_bundle。
- 3
为后端缺失和并发保存写测试。
可复制示例
python
prepare_bundle(...)
# generate a real artifact with the native backend
finalize_bundle(...)常见问题
有生成的测试文件就证明 GUI 跑过吗?
没有,应检查子进程调用和原生文件。
预览缓存可能掩盖修改吗?
若缓存键漏掉影响输出的输入,就可能。
资料来源
- CLI-Anything / cli-anything-plugin/HARNESS.md来源核查 2026-09-26
- CLI-Anything / cli-anything-plugin/commands/cli-anything.md来源核查 2026-09-26
- CLI-Anything / cli-anything-plugin/preview_bundle.py来源核查 2026-09-26