Skip to content

扩展服务:把底层命令变成业务命令

Lovrabet CLI 可以通过一份服务配置,把原本偏底层的数据查询、SQL 和 Backend Function 调用,封装成带业务含义的快捷命令。

配置完成后,Agent 不再只看到“查数据”这种通用能力,而是能看到 lovrabet crm customer list 这种一眼能明白的业务入口。下面用“查询 CRM 客户列表”这个功能,对比以前怎么用、现在可以变成什么样。

以前:直接拼底层命令

过去要查询客户列表,Agent 可能需要知道应用、数据集、字段名、过滤条件、分页和排序,再拼出类似这样的命令:

text
lovrabet data filter \
  --code 客户数据集编码 \
  --params '{
    "where": {
      "status": { "$eq": "active" },
      "owner_id": { "$eq": 81 },
      "customer_name": { "$contain": "科技" }
    },
    "orderBy": [{ "updated_at": "desc" }],
    "currentPage": 1,
    "pageSize": 20
  }'

这种偏底层查询的能力虽然通用,但有几个业务流程效率的情况

  1. 这里要同时拼数据集编码、字段名、过滤符、JSON、分页和排序。AI 可以帮忙拼,但业务越复杂,越容易错。
  2. 还有一个常见问题是歧义。一个企业里可能同时有 CRM 客户、订单客户、售后客户、会员资料。如果只说“查客户”,Agent 需要猜应该访问哪个应用、哪个数据集。

现在:变成业务命令

同样是查询客户列表,可以变成:

text
lovrabet crm customer list

这条命令背后可以固定映射到:

  • CRM 应用
  • 客户数据集
  • 默认分页和排序
  • 客户状态、负责人、关键词等查询条件
  • 底层字段名和过滤符号

管理员维护一份服务配置后,Agent 就能看到这些入口:

text
CRM
  lovrabet crm customer list    查询客户列表
  lovrabet crm customer mine    查询我负责的客户
  lovrabet crm customer detail  查询某个客户详情
  lovrabet crm contact list     查询客户联系人
  lovrabet crm followup list    查询客户跟进记录

前后对比

<grid> <column width-ratio="0.500000">

DANGER

以前:底层命令

Agent 要自己判断应用、数据集、字段和过滤条件。 用户或 Agent 要拼复杂 JSON。 lovrabet data filter 只能看出是在查数据。 多个系统都有“客户”时容易查错。

</column> <column width-ratio="0.500000">

TIP

现在:业务命令

配置里固定好应用、数据集、字段映射和默认条件。 用户只说业务问题,Agent 选择业务入口。 lovrabet crm customer list 一眼能看出是在查 CRM 客户。 crm customer 明确限定在 CRM 服务下的客户。

</column> </grid>

可以封装哪些能力

以CRM系统为例

业务入口背后可以映射到什么
客户列表数据集过滤查询
客户详情数据集单条记录查询
我的客户当前登录用户加过滤条件
客户统计SQL 查询
新建客户Backend Function
更新客户状态Backend Function 或数据写入能力

涉及多表、复杂校验、事务或权限判断的写操作,建议先封装成 Backend Function,再通过扩展服务暴露成业务命令。

怎么配置

第一次配置时,可以先让 Agent 整理业务入口:

text
我想为【CRM】配置一组 Lovrabet 扩展服务。

先帮我整理应该开放哪些业务入口。
至少包括:
- 查询客户列表
- 查询我负责的客户
- 查询客户详情
- 查询客户联系人
- 查询客户跟进记录

请先用业务语言说明每个入口的用途,不要直接写配置。

确认入口后,再让 Agent 生成配置草案:

text
请根据上面的业务入口生成扩展服务配置草案。

每个入口都要说明:
- 背后使用数据集、SQL 还是 Backend Function
- 需要哪些参数
- 参数对应到底层哪个字段
- 默认分页、排序和固定过滤条件
- 风险等级是查询还是写入

配置确认后,再导入本机扩展服务。

怎么检查

配置导入后,让 Agent 做三件事:

text
检查本机已经导入了哪些扩展服务。
text
检查扩展服务是否已经出现在 Lovrabet 的帮助和 schema 里。
text
预览 lovrabet crm customer list 会访问哪个数据集、会带哪些查询条件,不要真正写入数据。

能看到服务名称、命令数量、配置来源和 schema 里的业务入口,就说明配置已经生效。

谁维护,谁使用

通常由管理员、交付同事或研发同事维护配置。普通使用者不需要理解配置文件,只要在 Agent 里说业务问题,例如“查我的客户”“列出高优先级客户”“看一下最近没有跟进的客户”。

配置细节

想了解配置文件一般放哪里、如何导入导出、如何在 help / schema / doctor 里验证生效,见子文档 扩展服务配置、导入导出与验证

想继续查看字段含义、JSON 结构、mapTo 写法、datasetCodedatatable 的选择,见子文档 service.json 配置详解

子文档

<sub-page-list space-id="7535363963853209604" wiki-token="Q7b8wF6DGilMs0kAUiPce9jkndh"><sub-page doc-id="FUPWdMLCGoHsTkxlWwPcfJPdnwg" file-type="docx" title="扩展服务配置、导入导出与验证"/><sub-page doc-id="EK4qdiqcQokjh3xl1gWcDTlznQh" file-type="docx" title="service.json 配置详解"/></sub-page-list>

基于飞书知识库同步生成,内容以飞书源文档为准