当前,如何面向Agent设计软件成了一个新热点,比如“MCP已死,CLI当立”的标题你应该看到过。不过,如果你还见过Agent卡在某个交互式提示符前,等着按方向键或者输入"y",然后就挂住了的情形,就知道现在大多数CLI设计对Agent来说完全是死胡同。

Eric Zakariasson认为核心问题是:人类靠直觉和上下文猜东西,Agent靠pattern matching和明确的flag。他给出了几条设计建议,有助于真正对Agent有用。
非交互是底线。 如果你的CLI在执行过程中突然弹出一个提示符,Agent就死了。它没法按方向键,也没法制你在哪个时刻该输入"y"。所有输入都应该可以通过flag传递。交互模式应该作为flag缺失时的备用方案,而不是默认路径。
# 这会让Agent卡住
$ mycli deploy
? Which environment? (use arrow keys)
# 这才正常
$ mycli deploy --env staging别一开始就把所有文档塞给它。 Agent的执行逻辑是:跑一下命令,看到子命令列表,挑一个,跑--help,拿到需要的参数,然后走人。它不需要一开始就读完所有文档。让它逐步发现。
--help里的示例比描述重要一百倍。 Agent读mycli deploy --env staging --tag v1.2.3这种具体例子,比读一大段文字描述快得多。它做的是pattern matching,不是语义理解。
$ mycli deploy --help
Options:
--env Target environment (staging, production)
--tag Image tag (default: latest)
--force Skip confirmation
Examples:
mycli deploy --env staging
mycli deploy --env production --tag v1.2.3
mycli deploy --env staging --force接受stdin和flag,Agent在 pipeline 里思考。 Agent的脑子里全是数据流:cat config.json | mycli config import --stdin,mycli deploy --env staging --tag $(mycli build --output tag-only)。别让奇怪位置的positional args或者缺省值时的交互提示打断这个流程。
报错就好好报,别让人猜。 缺了必要flag就立刻报错,并且给出正确的调用方式。Agent擅长自我纠正,前提是你给它一个能改的东西。
Error: No image tag specified.
mycli deploy --env staging --tag <image-tag>
Available tags: mycli build list --output tags幂等性是很多人偷懒的地方。 Agent会不断重试。网络超时,context丢了一半,再跑一次同样的deploy应该返回"already deployed, no-op",而不是再造一个重复的。评论区有人说得直接:idempotency缺失是最贵的问题,Agent的重试循环里跑三十几轮,一个非幂等的命令能直接让整个pipeline崩掉。
加上--dry-run。 破坏性操作之前让Agent先preview一下,确认计划没问题再真干。
$ mycli deploy --env production --tag v1.2.3 --dry-run
Would deploy v1.2.3 to production
- Stop 3 running instances
- Pull image registry.io/app:v1.2.3
- Start 3 new instances
No changes made.
$ mycli deploy --env production --tag v1.2.3
✓ Deployed v1.2.3 to production成功时也返回点有用的数据。 deploy_id、url、duration这些机器能读的东西,比一个emoji有意义得多。
deployed v1.2.3 to staging
url: https://staging.myapp.com
deploy_id: dep_abc123
duration: 34s有人补了一刀:结构化JSON输出应该设为默认,人类可读的表格是可选的。Agent解析pretty table里的数据能折腾出一堆regex bug。有个评论说得更狠:"CLI就是一个带字体的API,为Agent先设计。"
这波趋势很清楚:以前我们为人类造工具,以后得为人类+机器一起造。只照顾人味的界面,接下来几年会被自动化流程绕过去。