CLI 在 AI 时代复兴:从图形界面回到命令行的理由

2026-07-17 构建 Agent

起因

前阵子在折腾博客的 AI Agent 功能。最初的想法很简单——让 AI 能帮我发布文章、管理内容。但实现方式选什么,琢磨了好一阵。

一开始的方案其实挺直接的:给 AI 一个 API Key,让它自己调接口。但跑下来发现不对劲——

简单说就是:让 AI 直接调 API,就像让一个人用 telnet 写网页——能实现,但体验极其糟糕。

转机

后来研究了一下飞书 CLI 和 Obsidian CLI 的做法,发现它们都采用了一个共同模式:CLI + Skill 文件

CLI 负责把复杂的操作封装成简单命令,Skill 文件教 AI 什么时候用什么命令。这和传统 CLI 的理念一脉相传——让计算机替人做繁琐的事,只不过这次的使用者从人类换成了 AI。

加上我之前写 Obsidian 插件时对这套模式有好感,决定自己也做一个。

lantech-cli

于是有了 lantech-cli——一个很普通的 Node.js 命令行工具,做的事情本质上就是包装 HTTP 请求:

# 以前 AI 要做的
curl -X POST -H "Authorization: Bearer xxx" -H "Content-Type: application/json" https://lantech.top/api/admin/article/save

# 现在
lantech-cli article create --title "..." --content "..." --category 1

从接口数量上看,它只覆盖了博客管理最常用那几个功能:文章 CRUD、分类标签、图片上传。但配合 Skill 文件之后,AI 确实能独立完成从写草稿到发布的全流程了。

一些观察

做完之后有几个体会:

第一,CLI 是当前 AI 最好的交互接口。GUI 对 AI 不友好(它看不懂按钮),自然语言又不精确("那个什么文章"到底是哪篇),CLI 的参数和结构化输出正好在中间——对人类可读,对 AI 可解析。

第二,Skill 文件比想象中重要。一开始我把 Skill 写得特别详细,恨不得每个参数都解释一遍。后来发现 AI 比你想象中聪明——它不需要你教它"参数是什么意思",它需要知道的是"什么场景用什么命令"。所以后来的 Skill 精简成了一页纸,核心就两样:命令列表 + 协作流程。

第三,这个东西最实用的场景是图片上传。之前让 AI 写文章,最头疼的就是图片。AI 没法上传本地文件,curl 也做不到表单上传到 OSS。但 CLI 可以——读取本地文件、获取签名、直传到 OSS、注册到数据库,一个命令全搞定。

现状

目前 lantech-cli 已经在博客上用起来了。这篇文章就是用它创建和发布的——算是一次 dogfooding。

代码放在 git.lantech.top 上,安装很简单:

curl -s https://cli.lantech.top/lantech-cli-1.0.0.tgz | tar xz
cd package && npm install -g . && cd ..
lantech-cli config set --key "你的API密钥"

如果你也在折腾 AI Agent 接入自己的系统,不妨试试这个模式。工具本身不值钱,值钱的是找到一套人和 AI 都能理解的交互方式。

本文由一方天地发布 · 查看完整体验