跳转至

CLI 绑定

CLI 绑定适合本地自动化、脚本与无浏览器工作流。本页规定 AXI 语义如何映射到已有命令,不定义全行业统一的可执行文件名。

发现与调用

提供方应提供离线可用的帮助及窄目录读取,区分目录、精确合同和实际联网调用。以下是接口形态,product 不是本仓库提供的命令:

product capabilities --query review --format json
product schema documents.decide --format json
product call documents.decide --input-file review-input.json --format json
product operation get --key review_contract_001 --format json

能力已知时可跳过前两步。--help 或无参数调用不应意外访问生产资源或产生写入。

I/O 合同

人类TTY可以交互输入项目名、存放目录或已有项目;Agent也可以按需使用宿主原生选择或对话补问,参数齐备和默认政策适用时不重复提问,不先要求选择运行拓扑。显式机器模式与非TTY不能等待不可见向导;有适用且获准的默认目录政策时回显实际位置,否则返回具体缺项。人类交互与无人值守分别测试,见项目目录实践。

机器模式的 stdout 只输出一个完整 JSON 文档,诊断到 stderr;进度不得混入 JSON。大输入用 stdin 或文件,敏感参数避免出现在进程参数和 Shell 历史。文件与命令边界需正确引用,不能把 JSON 转义当 Shell 转义。

命令行设计约定

AXI 借鉴 POSIX 的 Utility Syntax Guidelines 和社区 Command Line Interface Guidelines。POSIX 是命令语法标准的一部分,后者是设计指南;它们都不定义 Agent 的业务授权与原操作恢复。

约定 Agent 接入建议
一致命名与帮助 提供离线 --help / --version,子命令按资源和动作组织,不让帮助触发业务写入
参数与操作数 使用成熟解析器;正确处理引号、空格、以连字符开头的文件和 -- 分隔符;现代长选项与 POSIX 短选项的范围分别说明
人类与机器输出 TTY 可提供简洁可读输出;显式机器模式关闭 ANSI、分页器和动画,保证稳定 JSON
非交互执行 非 TTY 或显式无输入模式不得等待不可见提示;缺项返回具体错误,不自选生产账号
预览 可提供只读计划或 dry-run,明确它没有提交,也不保证稍后写入时前置仍有效
自动确认 --yes 等选项只表达工具约定的确认,不能绕过业务权限、费用限制或用户意图
配置 发布参数、环境变量、配置文件的实际优先级及当前来源;切换配置不隐式改变已有未知操作
重试 有界处理确定未接收的可恢复错误;未知写入沿原键核对,不因通用网络重试再次提交
分发 使用原生包管理或可核对制品,说明平台、依赖、升级与卸载,不随意散落常驻组件

这些建议按真实任务采用,不要求参考例子实现一套完整包管理器或所有通用 flags。原生 CLI 已有惯例时保留兼容性,并明确映射。

参考例退出码 含义 是否可自动重发写入
0 本动作 succeeded 否
1 本地或执行错误 需先判断是否已接收
2 blocked 或命令参数错误 修正原因后重新判断
3 unknown 仅沿原操作恢复

这是本仓库示例的映射,不要求其他 CLI 放弃已有退出码。采用方必须公布自己的映射,特别是部分失败、等待结束与未知结果的区别。退出码 0 也不能代替回执中的业务状态。

取消与等待

Ctrl-C 或进程结束默认只停止本地等待;业务取消必须调用明确动作并回读终态。发生断开后保留安全的原任务引用,不在重启时自动重提写入。

可运行实现

本地审批例子使用 --db 选择示例数据库,get、decide、recover 为子命令,完整命令见快速上手。它没有联网传输或真实认证;不要把示例命令格式视为通用生产 API。