no-mistakes axi命令详解:AI代理的非交互TOON接口完全指南
【免费下载链接】no-mistakesgit push no-mistakes项目地址: https://gitcode.com/GitHub_Trending/no/no-mistakes
no-mistakes 是一款本地 Git 代码质量门禁工具,其axi 命令(Agent eXperience Interface)专为 AI 代理设计:它是一套非交互命令行接口,只接受 flag 参数、将机器可读的 TOON 格式输出到 stdout,让 Claude Code、Codex 等 AI 代理能像人一样走完代码审查、测试、推送、PR、CI 全流程审批,全程无需人工接管终端。
为什么 AI 代理需要非交互接口 🤖
人类使用 no-mistakes 时,直接运行命令打开 TUI(终端交互界面)即可。但 AI 代理无法点击、无法按键,它需要一套严格契约的命令行:
- stdout 只输出 TOON:一种键值对 + 表格的紧凑文本格式,token 开销远低于 JSON,代理解析零歧义
- stderr 输出进度:
run: running、review: fixing等状态行,供观察存活但不污染数据 - 错误也是结构化的:失败时 stdout 输出
error: ...+help[N]建议命令列表,代理读后直接行动,而非解析栈追踪
这套契约在 internal/cli/axi.go 中定义,官方 CLI 参考见 docs/src/content/docs/reference/cli.md。
axi 子命令速查表
| 命令 | 作用 | 一句话说明 |
|---|---|---|
no-mistakes axi | 主页视图 | 显示仓库、当前分支、守护进程状态、活动 run 与下一步建议 |
no-mistakes axi run | 启动验证 | 触发当前分支的流水线,阻塞到第一个审批门或最终结果 |
no-mistakes axi respond | 应答审批门 | 发送approve/fix/skip,继续驱动 run |
no-mistakes axi status | 查看详情 | 按当前分支范围解析 run,含步骤状态与branch_sync对象 |
no-mistakes axi logs | 读步骤日志 | --step <name>指定步骤,默认尾部 40 行,--full看全量 |
no-mistakes axi sync | 分支同步 | 应用结构化的守卫式同步/恢复方案,绝不私自 reset 或 rebase |
no-mistakes axi abort | 取消 run | 取消当前分支活动 run;--run <id>可在任意位置按 ID 收割孤儿 run |
核心实现分布在 internal/cli/axi_drive.go(run / respond / abort 驱动逻辑)与 internal/cli/axi_query.go(status / logs 查询逻辑)。
典型验证工作流:四步拿到绿色 PR 🚀
第 1 步:axi run启动验证
no-mistakes axi run --intent "给用户添加 --json 输出标志"--intent传的是用户的目标而不是 diff 描述——代理最了解上下文,直接告诉它比从会话记录推断更快更准。命令会阻塞到第一个审批门,期间长耗时是正常的(review、test、CI 每步可能数分钟),不是卡死。
第 2 步:axi respond处理审批门
返回内容中出现gate:对象时,说明流水线在等待决策。每条 finding 都带action分类:
auto-fix—— 机械低风险,代理可自行授权修复no-op—— 仅信息性,无需处理ask-user—— 挑战用户明确意图,必须升级给用户,代理不能代答
no-mistakes axi respond --action approve no-mistakes axi respond --action fix --findings r1 --instructions "补充错误处理" no-mistakes axi respond --action skip⚠️ 关键纪律:run 进行中不要自己改代码。流水线同时拥有 finding 和修复权,自行
abort或rerun会丢弃在途工作、触发全量重验。--yes则代表用户已授意无人值守,自动解析所有门。
第 3 步:axi status/axi logs观察进度
no-mistakes axi status no-mistakes axi logs --step review --fullstatus严格限定在当前分支:本分支没有 run 就如实报告runs_on_current_branch: 0,绝不把其他分支的 run 张冠李戴;--run <id>显式查看时,对象会改挂在other_branch_run:键下防止误读。
第 4 步:分支归属与收尾
输出里的branch_sync对象是分支归属的权威说明,next_action.code决定下一步:
sync→ 运行no-mistakes axi sync守卫式同步recover_custody→ 运行no-mistakes axi sync --recover取回被终态 run 留下的未发布提交user_owned→ 分支完全归你,无需任何操作
CI 检查全绿后axi run返回outcome: checks-passed:代理的职责到此结束,应提示用户评审并合并 PR,后台监视器会继续盯着 PR 直到合并、关闭或超时。
退出码与错误处理速查
| 退出码 | 含义 |
|---|---|
0 | 成功、幂等 no-op,或正常的审批门决策点 |
1 | 操作失败、failed/cancelled终态结果 |
2 | 用法错误(参数缺失或不合法) |
错误输出永远形如error: <原因>加help[N]建议列表——例如在默认分支启动 run 会被拒绝,并直接告诉你先git switch -c <branch>。这种"拒绝并给出下一条命令"的模式,正是代理可自驱的基础。
新手常见问题 💡
Q:和 TUI 是什么关系?同一套审批流程的两个入口:人用 TUI,代理用 axi。no-mistakes init会为 Claude Code 等代理安装/no-mistakesskill,skill 底层驱动的就是 axi 命令族,完整驱动规则见 skills/no-mistakes/SKILL.md。
Q:代理能替代流水线里干活的 agent 吗?不能。调用 axi 的代理是"审批驱动者",验证工作仍由配置的流水线 agent 执行;缺少可用 runner 时 run 会在第一步前失败,no-mistakes doctor可诊断。
Q:TOON 长什么样?就是key: value、findings[N]{id,severity,file,action,description}:表格、help[N]:建议列表三种元素,例如一个 review 门会输出gate: review行、findings 表格和 6 条 help 命令——完整示例见 skills/no-mistakes/SKILL.md。
延伸阅读
- 入门指引:docs/src/content/docs/start-here/quick-start.md
- 代理驱动指南:docs/src/content/docs/guides/agents.md
- 项目总览:README.md
<输出文章>
【免费下载链接】no-mistakesgit push no-mistakes项目地址: https://gitcode.com/GitHub_Trending/no/no-mistakes
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考