Skip to content

如何构建 AI Agent 友好且安全的 AI-Native CLI 工具

解决 AI Agent 调用传统 CLI 时常见的解析失败、交互卡死和安全漏洞问题,通过一套标准化的 JSON 输出、错误处理和自我描述机制,让 CLI 工具成为 AI 可信赖的 API。

为什么需要这个技能

传统的 CLI 工具是为人类设计的:输出包含大量颜色、表格和装饰性文字,在缺失参数时会弹出交互式询问,且错误信息往往是模糊的纯文本。这些特性对 AI Agent 而言是灾难,会导致解析崩溃或陷入无限等待。

AI-Native CLI 的核心哲学是:Agent 优先。它要求默认输出为结构化 JSON,将交互交给 AI,并建立严格的输入契约与安全护栏,确保 Agent 在调用工具时能够获得确定的结果且不会执行危险操作。

适用场景

  • 从零开发一个需要被 AI Agent 频繁调用的命令行工具。
  • 将现有的内部 CLI 工具重构为 AI 友好型接口。
  • 为自动化流水线设计支持 AI 闭环反馈的接口。
  • 审计 CLI 工具是否符合 Agent 调用的安全标准(如防止路径穿越、密钥泄露)。

核心工作流

该规范将认证分为三个等级,建议循序渐进实现:

1. Agent-Friendly(基础级:核心契约)

重点在于让 AI 能稳定地调用并解析。

  • 默认 JSON:无需 --json 参数,直接输出标准 JSON。
  • 结构化错误:错误信息通过 stderr 输出,格式为 {"error":true, "code":"...", "message":"...", "suggestion":"..."}
  • 预测性退出码:成功返回 0,参数错误返回 2,通用失败返回非 0。
  • 安全护栏:禁止交互式提示;破坏性操作必须强制要求 --yes;过滤 shell 特殊字符。

2. Agent-Ready(进阶级:自我描述)

重点在于让 AI 能够通过工具自身发现功能。

  • 结构化帮助--help 输出包含命令列表、参数类型及描述的 JSON。
  • 模式切换:提供 --human 标志用于切换回人类可读的彩色/表格格式。
  • 标准化标志:统一使用 --long-name 格式,预留 --dry-run(预览)和 --quiet 等通用标志。

3. Agent-Native(原生级:生态闭环)

重点在于建立工具的身份契约与反馈循环。

  • agent/ 目录约定:在项目根目录建立 agent/ 文件夹,存放 brief.md(身份简介)、rules/(行为约束)和 skills/(扩展能力)。
  • 内联上下文:每次命令响应中都附带当前适用的 rules[] 和可用的 skills[]
  • 内置反馈系统:实现 issue 子命令,允许 Agent 直接汇报坏输出或 Bug。

示例对比

错误示范(传统 CLI)

bash
$ mycli list
Error: Missing API Key!
Please enter your key: _ (此处 AI 将卡死)

正确示范(AI-Native CLI)

bash
$ mycli list
# 输出到 stderr
{"error": true, "code": "AUTH_MISSING", "message": "API Key is required", "suggestion": "Run 'mycli auth login'"}
# 退出码: 2

下载和安装

下载 ai-native-cli 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐