做 Agent 项目时,大家很容易先看模型能力:它能不能听懂用户意图,能不能拆任务,能不能给出一段看起来合理的回答。

这些当然重要,但在真实业务里,我们更早遇到的卡点其实在下一步:

Agent 听懂以后,怎么安全、稳定地调用业务能力?

如果只是回答问题,聊天框就够了。可一旦希望它进入流程,完成查询、互动、分析、操作确认,它就需要知道有哪些能力可以用、怎么传参数、什么时候让人确认、出了问题怎么排查。

花椒 CLI 就是在这个问题下做起来的。

表面看,它是一个命令行工具。往深一层看,它是我们给 Agent 准备的一层业务能力入口:前面用 Skill 描述能力,中间用 CLI 执行命令,后面用 Gateway 处理登录校验、限频、路由、日志留痕和必要确认。

这篇文章想复盘的不是“我们发布了一个 CLI”,而是一个更具体的工程判断:

企业 Agent 要从聊天走向执行,第一步不是继续做更大的对话框,而是先把业务能力整理成可描述、可调用、可治理的入口。

CLI 官网首屏,包含安装入口和支持的 AI 助手

01

项目背景

过去做内部工具,入口大多是页面。人打开后台,找到菜单,填写参数,点击按钮,再根据页面反馈判断下一步。这个流程不一定高效,但边界清楚。

Agent 进入之后,入口开始变化。用户可能不再打开某个页面,而是在 Claude Code、Cursor、Codex、企业 IM 或办公助手里直接描述任务。Agent 先理解意图,再寻找能力、组织参数、执行动作、返回结果。

很多能力原本是给人和系统用的,不是给 Agent 用的。它们可能分散在页面、服务、脚本或接口背后。熟悉业务的人可以靠经验串起来,但 Agent 不能靠猜。

所以,花椒 CLI 要解决的第一层问题,不是让用户少敲几行命令,而是回答一个更底层的问题:

如何把已有业务能力整理成 Agent 能理解、能调用、系统也敢放行的形态?

从这个目标出发,项目经历了三次演进:第一版验证 Agent CLI 是否可行,第二版把对外 CLI 做成可安装、可使用、可被 AI 助手发现的入口,第三版把同一套思路推进到内部能力治理,形成 Skill + CLI 执行器 + Gateway 的分层结构。

02

第一版探索与 Agent CLI 可行性评估

早期做 Agent 能力接入,最直接的方式是 MCP 或临时工具封装。这条路适合验证:先接一个查询能力,再接一个执行能力,最后把结果回传给用户,跑通一次闭环。但一旦能力数量增加,它的局限也会变明显。

1. 从“接一个工具”开始,先验证 Agent 能不能调通业务能力

第一版目标很明确:先证明 Agent 可以通过一个稳定执行入口调用花椒公开能力。

我们没有一开始做大平台。第一版更像一个工程探针,用来验证链路是否成立。比如找直播,用户在 AI 助手里描述自己想看什么,Agent 通过 CLI 查询公开直播内容,再把结果组织成自然语言反馈。再比如互动,用户表达想发一条内容,Agent 整理目标和文本,在用户确认后通过 CLI 发起调用。

这些场景本身不复杂,但覆盖了几个关键问题:Agent 是否能读懂能力说明,命令是否足够清晰,参数是否容易组织,返回结果是否方便二次加工,执行前后是否能给用户明确反馈。

第一版的价值,不在于命令多复杂,而是验证了一条路径:

业务能力不必直接暴露给 Agent,可以先通过 CLI 这种更清晰的执行入口交给 Agent 使用。

发弹幕使用场景

2. 为什么第一版不继续堆 MCP

MCP 很适合让 Agent 快速接入工具,这一点不需要否认。但从 Demo 走向长期维护后,会遇到几个现实问题:新能力接入会变重,边界容易分散,不同 Agent 入口难复用,调用链路也容易碎片化。

这些问题的本质不是“能不能调通”,而是能力多起来之后,能不能持续接入、统一约束、复用入口、追溯问题。

所以第一版探索之后,我们没有继续简单堆 MCP 能力,而是开始评估 Agent CLI 这种形态。

3. Agent CLI 方案的可行性评估

CLI 的优势很朴素:它天然适合被 Agent 调用。Claude Code、Cursor、Codex 这类工具,本来就能理解命令、执行命令、读取输出。对 Agent 来说,一条稳定命令就是一个明确动作。

更重要的是,CLI 不要求 Agent 理解业务系统背后的复杂细节。Agent 只需要读 Skill,知道当前任务应该调用哪条命令,然后拿到结果继续处理。

从工程角度看,CLI 还有几个实际优势:容易本地验证,方便跨 AI 助手复用,可以通过安装脚本分发,也能把复杂能力收敛成少量清晰命令。

这就是我们继续做花椒 CLI 的原因。

03

第二版实现与对外 CLI 能力成型

第二版的目标,是把“能调通”推进到“能使用”。能调通,说明工程师能跑起来;能使用,意味着外部开发者或 AI 助手可以找到入口、完成安装、知道怎么调用,并在失败时有基本反馈。

1. 从“调接口”到“调命令”

第二版首先做的是命令层收敛。我们把对外可公开的能力整理成命令,比如登录、查看版本、查询直播列表、发送互动内容、获取公开数据等。

这里的关键不是命令数量,而是命令语义要稳定。对 Agent 来说,命令不是内部实现细节,而是它理解世界的一组动作。命令层要尽量做到动作清晰、参数克制、输出稳定。

2. Skill:让 Agent 知道什么时候用、怎么用

只有 CLI 还不够。人看到命令,可以读文档慢慢试。但 Agent 需要更直接的能力说明:什么场景下应该用这条命令,参数怎么组织,调用前要不要确认,结果回来之后怎么解释给用户。

这就是 Skill 的作用。它不是普通教程,而是一份给 Agent 看的使用协议,把人的操作经验写成 Agent 可理解的步骤。

从这个角度看,花椒 CLI 的核心不是 CLI 单独成立,而是 CLI 和 Skill 组合成立。

Skill 负责描述能力,CLI 负责稳定执行。两者放在一起,Agent 才能从“会聊天”往“能办事”推进。

3. 一键安装:让 CLI 进入 AI 助手

第二版另一个重点,是降低安装和接入成本。如果 CLI 只能由熟悉项目的人手动配置,它就很难成为通用入口。

所以官网提供了一键安装、手动安装和安装指南,并明确支持 Claude Code、Cursor、Codex 等 AI 助手场景。这看起来像产品体验,实际也是工程问题:Agent 能否使用一个工具,也取决于它能不能被发现、被安装、被验证、被正确描述。

Agent 安装提示词

04

第三版设计与工程实践

对外 CLI 跑通以后,我们开始看另一个问题:同一套思路能不能反过来支撑内部 Agent?

内部场景更复杂。能力更多,边界更细,调用后果也更需要可追溯。如果还停留在“哪里需要就接一个工具”,后面会很难维护。

1. 从对外 CLI 到内部业务能力入口

对外 CLI 解决的是公开能力如何被 AI 助手使用。内部 Agent 要解决的是更多业务能力如何被安全地交给 AI。两件事表面不同,本质一样:都需要把能力从散落状态整理成可描述、可执行、可治理的入口。

第三版设计里,Skill 负责说明能力,CLI 执行器负责把 Agent 的意图变成标准命令,Gateway 负责登录校验、限频、路由、日志留痕和必要确认。下游业务服务保持自己的边界,不直接暴露给模型。

花椒 CLI 脱敏架构图

2. 为什么要加 Gateway

如果只是对外公开能力,CLI 可以直接完成很多工作。但内部能力不能这么处理。

Agent 会自动组织步骤,也可能连续触发多个动作。系统不能只相信它“看起来理解了”,必须在执行层有确定约束。

Gateway 的价值,就是把这些约束从零散代码里收回来:登录校验避免不同命令各自处理身份问题;限频避免异常调用影响服务;路由让 CLI 不需要感知太多后端结构;日志留痕方便排查;必要确认避免关键动作被 Agent 静默执行。

这样一来,Agent 面对的是清晰命令;CLI 面对的是统一入口;业务服务面对的是受控调用。

从 MCP 到 Skill + CLI + Gateway 的演进图

3. 为什么不做万能 CLI

做到这里,很容易产生另一个诱惑:把所有能力都塞进 CLI。我们没有这么做。

CLI 适合承载边界清楚、动作明确、结果可解释的能力。它不适合把复杂后台完整搬到命令行里,也不适合替代原有业务系统。

所以花椒 CLI 的边界很明确:它不是万能入口,而是 Agent 调用业务能力时的一层标准化入口。能抽象成稳定动作的能力,适合进入 CLI;高度依赖人工判断、页面上下文很重、规则仍在频繁变化的能力,不急着放进去。

05

架构全景

花椒 CLI 当前可以理解成五层:入口层负责官网、安装脚本、AI 助手安装引导和本地终端;Skill 负责把能力说明给 Agent;CLI 工具负责把任务转成标准命令;Gateway 负责登录校验、限频、路由、日志留痕和必要确认;下游业务服务继续保持原有边界。

这套结构的核心,是把 Agent 和业务系统之间加上一层可控缓冲。Agent 不直接理解内部复杂性,业务系统也不直接面对模型的不确定性。中间通过 Skill、CLI 和 Gateway 把能力、执行和边界拆开。

这也是这件事最值得复用的地方。

06

实践中的取舍

回头看,花椒 CLI 不是一个单点工具,而是一组取舍。

我们没有把 MCP 和 CLI 对立起来。MCP 适合探索和快速接入,CLI 适合把稳定能力沉淀成可复用入口,两者处在不同阶段。

我们也没有让 Agent 直接面对内部复杂性。Agent 擅长理解意图和组织步骤,但不应该直接承担业务边界判断。真正需要长期稳定的能力,应该进入受控执行链路。

同时,我们优先选择动作明确、结果可解释、边界可控制的能力。这样接入速度可能没有“什么都接”来得快,但后续更容易扩展和维护。

对外,花椒 CLI 让外部开发者能在 AI 助手里调用公开直播能力。对内,同一套 Skill + 执行器 + Gateway 思路,也能支撑内部办公助手从临时接入走向长期治理。表面是两条线,底层其实是同一个问题:业务能力要先被整理成 Agent 可理解、可调用、可治理的形态。

07

总结与展望

花椒 CLI 做到今天,我们最大的感受是:企业 Agent 化不是一上来做一个大平台,也不是不断给聊天框加能力。更现实的路径,是先把一个个业务能力整理成稳定入口。

这个入口要能被 Agent 理解,也要能被系统控制。Skill 解决“怎么描述能力”,CLI 解决“怎么稳定执行”,Gateway 解决“怎么控制边界”。三层放在一起,Agent 才有机会从“能回答”走向“能干活”。

后续,花椒 CLI 还会继续补齐更多公开能力,也会在内部场景里验证更多的组合方式。我们不会把它包装成一个万能答案,它更像一次工程化铺路:先把路修出来,让 Agent 真正能进入业务流程。

**花椒技术交流群
**

还在孤军研究 AI 工程化、AI 编程、Agent 落地,没人同行交流、没人拆解实战?

这里汇聚一线技术从业者,专注代码评审、企业内部 AI 助手真实实战落地。

想紧跟 AI 前沿动态、交流工程落地经验、少走踩坑弯路,欢迎直接加入**「花椒技术交流群」**。

群内专属福利拉满:每日精选 AI 行业日报、文章独家延伸资料、文中未展开的技术细节,全部同步共享。

图片

如果二维码过期,可在私信回复**「技术群」** 获取最新入群入口。