Hacker News 中文摘要

RSS订阅

你需要为AI代理重写命令行界面 -- You need to rewrite your CLI for AI agents

文章摘要

文章建议为适应AI代理的需求,应重写命令行界面(CLI),包括采用JSON格式数据、支持模式自省、控制上下文窗口大小、防止幻觉输入,并开发面向AI代理的功能模块。

文章总结

为AI智能体重构命令行界面(CLI)的设计哲学

核心观点

  • 人类优先的CLI:注重可发现性和容错性。
  • 智能体优先的CLI:强调可预测性和深度防御。
  • 两者差异显著,简单改造现有CLI难以满足智能体需求。

关键设计原则

  1. 原生JSON支持

    • 智能体偏好结构化数据:通过--json直接传递完整API负载,避免扁平化参数的语义损失。
    • 示例对比:传统CLI需10个独立参数,而智能体CLI只需一个JSON字段,与API协议完全对齐。
  2. 运行时模式自省

    • 提供schema命令动态输出API结构(如gws schema drive.files.list),替代静态文档,解决模型上下文窗口限制和版本滞后问题。
  3. 上下文窗口优化

    • 强制字段掩码(fields参数)过滤冗余响应数据,结合NDJSON分页流式处理,避免大响应耗尽智能体token预算。
  4. 输入加固防御幻觉

    • 严格验证路径遍历(如拒绝../../.ssh)、控制字符、资源ID格式(拦截嵌入的?fields=)和双重编码问题。
    • 设计理念:“智能体会幻觉,需按不可信输入设计”
  5. 技能文件(Skill Files)

    • 为智能体定制SKILL.md,明确操作规范(如“始终添加--dry-run”),弥补其缺乏人类直觉的缺陷。
  6. 多接口适配

    • 同一二进制支持终端、MCP协议(JSON-RPC标准输入输出)、扩展插件和环境变量鉴权,适应不同智能体框架调用场景。
  7. 安全兜底机制

    • --dry-run预校验避免实际数据变更,--sanitize过滤API响应中的潜在提示注入攻击(如恶意邮件中的指令篡改)。

迁移路径建议

  1. 优先增加JSON输出和输入验证
  2. 实现模式自省命令
  3. 逐步引入字段掩码、沙箱环境等特性
  4. 最终通过MCP暴露类型化接口

案例参考

Google Workspace CLI 开源项目完整实践了上述模式,其设计原则可泛化至其他工具链。

注:本文观点代表作者个人,与谷歌官方无关。

评论总结

以下是评论内容的总结,平衡呈现不同观点并保留关键引用:

支持为AI优化CLI的观点

  1. CLI与AI需求存在差异

    • Human DX优化可发现性和容错性,Agent DX优化可预测性和深度防御(justinwp)
    • "retrofitting a human-first CLI for agents is a losing bet"
  2. 文本界面复兴与无障碍优势

    • AI使CLI/TUI重新流行,对盲人等群体更友好(lynx97)
    • "The speed of interaction I get from a TUI is simply unmatched"
  3. 技术先驱背书

    • John Carmack和Andrej Karpathy认为CLI是AI代理的理想接口(mellosouls)
    • "CLIs are super exciting precisely because they are a 'legacy' technology"

反对为AI改造CLI的观点

  1. AI应适应人类标准

    • 若AI无法解析CLI标志,说明其不成熟(devmor)
    • "If AI agents are so underdeveloped... then the answer is not to rewrite the CLI"
  2. 直接使用API更合理

    • CLI本质是API包装,AI应直接调用API(bingemaker)
    • "Why not use simply the API and document it well?"(resiros)
  3. 设计缺乏验证

    • 方案纯属推测,未证明有效性(sheept)
    • "This feels completely speculative... no measure of whether this approach is actually effective"

中间立场

  1. 人机需求存在重叠

    • CLI的JSON输出同时满足人类和AI需求(ZeroGravitas)
    • "The human needs and llm needs seem to overlap"
  2. 文档优化方案

    • 通过改进文档命令帮助AI理解CLI(jsunderland323)
    • "added embeddings so I could do semantic search"

讽刺性评论

  • "Why are you calling it 'AI' if it can't even parse a goddamn man page?"(antisol)
  • "Agents will write code 10x faster... Also them: You will have to dumb down your CLI"(impure)

关键争议点:是否应该为AI专门改造CLI,还是要求AI适应现有人类标准。支持者强调效率和无障碍,反对者认为这反映AI能力不足,中间派建议寻找兼顾方案。