2026-04-03 · Steven Ding

为什么我们给CRM加了一套CLI——AI-First架构实践

传统 CRM 的效率瓶颈不在功能,而在交互范式。我们给自研 CRM 加了一套 CLI,让 Agent 能调用命令、编排流程、沉淀经验,把隐性的销售能力变成显性的组织能力。CLI 不是目的,Skills 才是——从界面系统到能力系统,这是 AI-First 架构的核心。

在我们做了多年制造业信息化之后,我们越来越清楚一件事:传统 CRM 的效率瓶颈,不在"功能够不够多",而在"交互范式是不是还停留在人点页面"。

过去,CRM 的核心用户默认是销售、客服、管理者——他们打开系统、点菜单、筛选数据、导出报表。这套模式在 PC 互联网时代成立,但在 AI 时代,它开始出现明显天花板:人是串行操作的,注意力是稀缺的,流程一长就会断点。

今年我们公司从"做系统"进一步转向"做 AI 赋能"。我们在制造业深耕 9 年(MES/WMS/CRM),服务过大量一线业务场景,最终落在一个判断上:未来 CRM 的用户不只是人,还包括 Agent。Agent 不会去点按钮,但它非常擅长执行清晰、可组合、可审计的命令。

所以我们做了一个看起来"复古"、但本质面向未来的动作:给自研 CRM 加了一套 CLI。


为什么要 CLI:GUI 是给人用的,CLI 是给 AI 用的

先说结论:GUI 不是过时,而是单独依赖 GUI 已经不够。

GUI(图形界面)的优势是直观,适合人做探索式操作;但它有三个天然限制:

  • 难以被 Agent 稳定调用(点选路径不稳定、依赖页面结构)
  • 难以编排复杂流程(跨模块操作需要大量人工衔接)
  • 难以成为"组织级自动化能力"(每个人都靠经验点界面)

CLI(命令行接口)恰好相反:

  • 输入是结构化的
  • 输出是可解析的
  • 动作是可复用、可编排、可审计的

这正是 Agent 需要的"操作语言"。

我们内部反复强调一句话:GUI 是给人用的,CLI 是给 AI 用的。

这并不意味着让客户去学命令行。相反,真正的目标是:不是让客户学命令行,而是 AI 替客户操作 CRM,客户只看结果。

比如销售负责人在飞书里只需要说一句"给我看今天高风险商机",背后由 Agent 调用 CLI 完成筛选、汇总、排序、提醒。人拿到的是结论,不是操作负担。

GUI vs CLI 对比


架构设计:CLI → API → 数据层,把命令变成可组合原子能力

这次改造由 Martin(CTO)团队主导,原则非常明确:

  • CLI 不直接碰数据库
  • CLI 只调用标准 API
  • 每个命令只做一件事(原子化)
  • 输出统一 JSON,便于机器解析

整体链路是:CLI → API 网关 → CRM 领域服务 → 数据层。

我们把常见业务动作拆成一组原子命令,例如:

  • crm opportunity search:按条件查询商机
  • crm followup search:查询跟进记录
  • crm customer get:获取客户详情
  • crm contract search:按条件查询合同

这些命令本身不是终点。真正关键的是把它们交给 Agent 进行编排。

也就是说,CLI 不是目的,Skills 才是——把原子命令组合成业务场景。

一个 Skill 可以由 3~8 个命令组成:先查、再算、再判断、再通知。我们把过去依赖"老销售经验"的隐性流程,逐步沉淀成可复用、可复制、可持续优化的显性能力。

从工程角度看,这让 CRM 从"可操作的软件",变成"可调用的业务能力平台"。

CLI → API → 数据层架构


从原子命令到Skills:把经验变成可复用能力

前面说到,单个 CLI 命令是原子能力,但真正的业务价值来自于把多个命令组合成 Skill。

什么是 Skill?

Skill 是一个由 3~8 个命令编排而成的业务场景自动化流程。它的典型结构是:

  1. 先查(Query):从 CRM 中拉取原始数据
  2. 再算(Compute):对数据进行聚合、筛选、计算
  3. 再判断(Judge):根据业务规则识别异常、风险、机会
  4. 再通知(Notify):把结果推送给相关人员或系统

这种编排把"老销售的经验"变成了"可执行的自动化能力"。

Skill 的核心价值

过去,一个优秀销售经理每天早上会:

  • 打开 CRM,筛选各阶段商机
  • 手工检查哪些商机超过 7 天没跟进
  • 逐个查看跟进记录,判断是否需要预警
  • 整理成清单,在晨会上点名提醒

这套流程是隐性的:依赖个人经验,无法复制,难以传承。

现在,我们把它沉淀成一个 Skill:

# 商机健康度巡检 Skill
crm opportunity search --stage "方案" --json
crm opportunity search --updated-before 2026-03-20 --json
crm followup search --related-id <opportunity-id> --related-type 0 --json
# 自动生成风险清单并推送飞书

这套流程变成了显性的:任何人都能调用,可以持续优化,可以跨团队复用。

从个人能力到组织能力

Skills 的本质是把人的经验转化为组织的能力:

  • 新人不需要 3 年经验也能获得老销售的判断力
  • 最佳实践不会因为人员流动而流失
  • 业务规则可以统一优化和迭代

这正是 AI-First 架构的核心:不是让 AI 替代人,而是让 AI 把优秀的人的能力放大、复制、传承。

Skills 编排流程


实际场景演示:我们如何在真实业务里使用 CRM CLI

下面是三个已经稳定运行的典型场景。

场景一:商机健康度巡检

每天自动检查各阶段商机,识别停滞风险。

执行步骤:

# 步骤1: 获取各阶段进行中商机
crm opportunity search --stage "方案" --json
crm opportunity search --stage "报价" --json
crm opportunity search --stage "谈判" --json

# 步骤2: 找出停滞超过14天的商机
crm opportunity search --updated-before 2026-03-20 --json

# 步骤3: 针对每个风险商机,检查最近跟进
crm followup search --related-id <opportunity-id> --related-type 0 --size 3 --json

输出示例(商机阶段定义):

[
  {"code": "Survey", "name": "线索", "order": 1, "probability": 10},
  {"code": "Proposal", "name": "方案", "order": 2, "probability": 20},
  {"code": "Quote", "name": "报价", "order": 3, "probability": 30},
  {"code": "Negotiate", "name": "谈判", "order": 4, "probability": 50},
  {"code": "Contract", "name": "合同", "order": 5, "probability": 90},
  {"code": "Win", "name": "赢单", "order": 6, "probability": 0},
  {"code": "Lose", "name": "输单", "order": 6, "probability": 0}
]

业务价值:过去这个动作要销售管理层人工导出 + 手工筛选。现在每天自动完成,第二天晨会直接讨论"怎么救火",而不是"数据在哪"。

场景二:客户360°画像

在飞书群里,销售输入:

帮我看一下苏州某智能科技的全貌。

Agent 实际执行:

crm customer get 3a1973c6-0a85-b26f-1bbd-d236ff3e0250 --json
crm opportunity search --customer-id 3a1973c6-0a85-b26f-1bbd-d236ff3e0250 --json
crm contact search --customer-id 3a1973c6-0a85-b26f-1bbd-d236ff3e0250 --json
crm followup search --related-id 3a1973c6-0a85-b26f-1bbd-d236ff3e0250 --related-type 1 --size 10 --json
crm contract search --customer-id 3a1973c6-0a85-b26f-1bbd-d236ff3e0250 --json

输出示例(客户基本信息):

{
  "totalCount": 1,
  "items": [
    {
      "id": "3a1973c6-0a85-b26f-1bbd-d236ff3e0250",
      "name": "苏州某智能科技有限公司",
      "code": "C20250423001",
      "owner": "曹海亚",
      "province": "江苏省",
      "city": "苏州市",
      "customLevelName": "B",
      "industry": "信息传输、软件和信息技术服务业",
      "creationTime": "2025-04-23T10:15:32"
    }
  ]
}

Agent 汇总后回复:

客户等级:B
负责人:曹海亚
行业:信息传输、软件和信息技术服务业
当前商机:2 个(其中 1 个在报价阶段)
最近跟进:3 天前电话沟通技术方案
历史合同:无

业务价值:这个场景的价值不在"查得快",而在"把跨模块信息一次性拉齐"。对一线销售来说,最贵的是上下文切换,不是查询本身。

场景三:销售周报自动生成

每周五自动汇总本周业绩数据。

执行步骤:

# 本周新增商机
crm opportunity search --created-after 2026-03-31 --json

# 本周签订合同
crm contract search --created-after 2026-03-31 --json

# 本周跟进记录
crm followup search --date-after 2026-03-31 --json

# 本周回款
crm receive search --created-after 2026-03-31 --json

输出示例(节选):

本周新增商机:15 个
本周签订合同:3 个,合计金额 ¥2,800,000
本周跟进次数:127 次
本周回款:2 笔,合计 ¥1,200,000

业务价值:以前周报最难的是"凑数据"。现在周报变成"做决策"。


安全与权限:可调用,不等于无边界调用

让 Agent 能操作 CRM,安全必须先行。我们在 CLI 层做了三层控制:

  1. Token 认证:每个 Agent / 场景使用独立 Token,最小权限发放,定期轮换。
  2. 权限分级:命令按只读 / 读写分级,默认只读;涉及写入、变更、删除需显式授权。
  3. 操作审计:所有命令调用留痕(谁在什么时间对什么对象做了什么),支持追溯与告警。

我们不追求"让 AI 什么都能做",而是追求"让 AI 在边界内稳定做对事"。


未来方向:软件将被 AI 调用,而不只是被人操作

我们相信一个趋势:未来所有软件的核心用户是 AI Agent,不是人。

人不会消失,但人的角色会变化——从"亲自操作每一步",转向"定义目标、确认结果、处理例外"。

CRM CLI 只是我们 AI-First 架构的第一步。接下来,我们会继续把 MES、WMS 等系统能力也逐步原子化、可调用化,让更多业务流程通过 Skills 自动编排。

当软件从"界面系统"进化为"能力系统",企业数字化才真正进入下一阶段。

最后回到那句我们内部共识: CLI 不是目的,Skills 才是。

不是让客户学命令行,而是让 AI 替客户操作系统,客户只看结果。

如果说过去十年我们在建设"人能用的软件",那未来十年我们要建设的是"AI 和人都能协作的软件"。这是我们给 CRM 加上一套 CLI 的真正原因。


需要帮助?

如果您需要相关帮助:

👉 预约 15 分钟演示,我们帮您设计适合的解决方案。

想把这套方法落到你的业务里?

我们可以按你的销售流程做一场15分钟演示,直接看落地路径。

预约演示