Appearance
如何构建 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。
你可能还需要
暂无推荐