广告位招商中 欢迎洽谈

在 Dust 中配置自定义 Actions 与 OpenAPI 工具:将对话助手升级为自动化工作流执行器

365Finds Editorial
已收录 11,430 篇 Wiki 文章

让你的 AI 用上 365 Wiki

复制这段快捷提示词,粘贴到你正在使用的 AI 对话中,然后继续提问。AI 会搜索 365 Wiki,帮你查资料、比较方案并给出建议。

下载完整 Skill

偶尔使用,快捷提示词就够了。经常使用,安装 365Wiki Skill:无需每次复制,还能更完整地研究问题、比较选择并规划下一步。没有常用工具?Gemini、Microsoft Copilot 等网页版 AI 也能使用。

365Wiki Skill

在多数企业的生成式 AI 落地初期,AI 助手的定位普遍停留在“企业知识库问答”。数字化运营团队将 Notion、Google Drive 或内部 Wiki 接入系统,通过检索增强生成(RAG)技术回答员工的日常提问。然而,当业务流程涉及真正的业务系统流转时,纯被动的检索问答很快就会遇到瓶颈:一个只能“告知如何修改客户状态”或“解释如何提交 Jira 工单”的助手,依然将所有实际操作留给了人工。

Dust 通过原生的工具执行(Tools & Actions)机制与模型上下文协议(Model Context Protocol,MCP),打破了这一界限。运营与工程团队能够将基于 OpenAPI 规范定义的内部接口以及商业 SaaS 系统封装为可执行的工具,使对话助手直接具备跨系统读取与写入能力。本文将详细拆解如何在 Dust 中导入并配置自定义 Actions 与 OpenAPI 工具、权衡凭据认证机制、设定高风险操作防护网,并打通自然语言问答与业务系统的双向自动化闭环。


架构演进:从被动检索到主动执行

要让对话助手承担工作流执行者的角色,首先需要理解 Dust 在底层如何协调大语言模型(LLM)与外部系统的交互链路:

+-----------------------------------------------------------------------------------+
|                                 Dust Workspace                                    |
|                                                                                   |
|   +-----------------------+              +------------------------------------+   |
|   | 用户提问 / Webhook    |              | 助手编排核心                       |   |
|   | 事件触发              | ---------->  | (LLM + 系统指令 Instructions)       |   |
|   +-----------------------+              +-----------------+------------------+   |
|                                                            |                      |
|                                                            | 意图识别与工具决策   |
|                                                            v                      |
|                                          +------------------------------------+   |
|                                          | 工具调用与受保护参数注入           |   |
|                                          +-----------------+------------------+   |
+------------------------------------------------------------|----------------------+
                                                             |
                     +---------------------------------------+---------------------------------------+
                     |                                                                               |
                     v                                                                               v
    +---------------------------------+                                             +---------------------------------+
    | 原生集成工具 (Built-in Tools)   |                                             | 自定义 Remote MCP / OpenAPI 服务|
    | (HubSpot, Jira, GitHub, Slack)  |                                             | (内部微服务、自动化网关中间件)  |
    +----------------+----------------+                                             +----------------+----------------+
                     |                                                                               |
                     | OAuth (个人凭据或工作区共享凭据)                                              | Bearer Token / 静态 OAuth / mTLS
                     v                                                                               v
    +---------------------------------+                                             +---------------------------------+
    | 商业 SaaS 业务系统              |                                             | 企业内部核心业务系统            |
    | (CRM 商机、工单流转、协作通讯)  |                                             | (ERP、计费系统、私有数据库代理) |
    +---------------------------------+                                             +---------------------------------+

在传统 RAG 架构中,LLM 仅对索引文档进行语义相似度匹配并归纳输出。而在工具执行链路中:

  1. Schema 暴露:Dust 将已配置工具的输入输出结构(基于 OpenAPI 或 MCP 派生的 JSON Schema)作为元数据暴露给底层模型。
  2. 意图解析与参数提取:模型从对话上下文中识别用户操作意图,自动抽取结构化参数(如工单描述、商机 ID、优先级标签)。
  3. 参数注入与屏蔽:Dust 将预设的环境变量、服务基地址或租户标识(隐藏于 LLM 视线之外)与模型生成的参数拼装在一起,杜绝模型幻觉导致的参数篡改。
  4. 高风险人机协同审核(Human-in-the-Loop):关键写操作触发安全确认模态框,经人工核准后方可真正向外部系统发起写请求。
  5. 状态反馈与闭环:外部系统执行结果返回对话上下文,助手根据返回的状态码与数据生成执行报告。

第一步:将 OpenAPI 规范封装为自定义 MCP 服务

Dust 深度拥抱开放的模型上下文协议(MCP)。对于企业现有的 OpenAPI 3.0 REST 接口(如内部 CRM 适配层、工单系统中间件或账号开通服务),最高效的接入方式是构建轻量级 MCP Server 包装层,对外暴露结构化工具。

使用 TypeScript SDK 定义标准工具

通过官方 TypeScript MCP SDK,运营开发人员可以利用 Zod 库对入参进行强类型校验:

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";

const server = new McpServer({
  name: "ops-workflow-engine",
  version: "1.0.0",
});

// 暴露一个更新 CRM 商机阶段的 OpenAPI PATCH 接口
server.tool(
  "update_crm_deal_stage",
  "更新企业 CRM 销售管线中的商机所处阶段与赢单概率",
  {
    dealId: z.string().describe("商机的唯一数字或字符串标识符"),
    newStage: z.enum(["Qualified", "Proposal", "Contract_Sent", "Closed_Won", "Closed_Lost"]).describe("目标阶段"),
    closeNotes: z.string().optional().describe("阶段变更的原因说明与备注"),
  },
  async ({ dealId, newStage, closeNotes }) => {
    const response = await fetch(`https://api.internal.company.com/v1/deals/${dealId}/stage`, {
      method: "PATCH",
      headers: {
        "Content-Type": "application/json",
        "Authorization": `Bearer ${process.env.INTERNAL_OPS_API_KEY}`,
      },
      body: JSON.stringify({ stage: newStage, notes: closeNotes }),
    });

    if (!response.ok) {
      return {
        content: [{ type: "text", text: `更新商机失败:${response.statusText}` }],
        isError: true,
      };
    }

    const data = await response.json();
    return {
      content: [{ type: "text", text: `商机 ${dealId} 已成功推进至 ${newStage}。记录更新标识:${data.id}` }],
    };
  }
);

使用 Dust 输入架构预配置静态参数

在很多企业场景中,诸如服务域名、环境切换(Staging/Production)或项目键名(Project Key)不应交由模型自由猜测,否则可能引发幻觉或环境污染。

Dust 提供了 @dust-tt/client 库,支持在 MCP 定义中引入预配置参数。这些字段将在 Dust 助手编辑面板中由管理员静态填写,对模型完全不可见:

import { ConfigurableToolInputSchemas, INTERNAL_MIME_TYPES } from "@dust-tt/client";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";

const server = new McpServer({
  name: "jira-dispatch-helper",
  version: "1.0.0",
});

server.tool(
  "create_ops_incident_ticket",
  "在指定的工程队列中创建高优先级故障排查工单",
  {
    // 模型根据自然语言对话动态提取
    summary: z.string().describe("故障简要标题"),
    description: z.string().describe("故障详细描述与重现步骤"),
    priority: z.enum(["P1", "P2", "P3"]).describe("故障严重度评级"),

    // 在 Dust 助手配置面板中静态绑定,模型不会感知此字段的存在
    projectKey: ConfigurableToolInputSchemas[INTERNAL_MIME_TYPES.TOOL_INPUT.STRING],
    environment: ConfigurableToolInputSchemas[INTERNAL_MIME_TYPES.TOOL_INPUT.STRING],
  },
  async ({ summary, description, priority, projectKey, environment }) => {
    return callJiraBackend({ summary, description, priority, projectKey, environment });
  }
);

第二步:在 Dust 工作区配置工具与凭据体系

在 MCP 服务部署并提供公网 HTTPS 地址后,工作区管理员需要将其添加至 Dust。

注册工具路径

  1. 登录 Dust,进入目标工作区,点击 Spaces > Tools。
  2. 点击右上角 Add Tool。
  3. 若接入 Jira、HubSpot、Salesforce 等常见系统,可直接选用 Dust 内置集成;若接入自定义 OpenAPI 服务,点击 Add MCP Server。
  4. 填写自定义 MCP 服务的公网 URL。

身份认证模式权衡:个人凭据 vs 共享凭据

凭据选型直接决定了执行记录的审计合规性与权限范围:

认证类型认证机制适用业务场景安全合规与审计影响
个人凭据 (Personal Credentials)(强烈推荐)每位操作者首次调用工具时绑定自己的 OAuth 账户;管理员仅负责首次连通性校验与元数据抓取。交互式日常运营、需要严格隔离数据可见范围的场景(如销售更新个人商机、研发认领工单)。所有业务系统的变更操作均与实际调用员工绑定,保留完整审计日志,杜绝越权行为。
工作区共享凭据 (Shared Credentials)管理员在后台绑定统一的系统服务账号(Service Account),供全员或所有助手共用。自动化工单流转、客户咨询分类机器人、团队统一消息广播管道。便于集中管理与免登录体验,但无法区分具体操作人员;要求对服务账号配置严格最小权限。
Bearer Token / 自定义请求头管理员直接提供静态 API 密钥,Dust 每次发起 HTTP 请求时附加在 Authorization 标头中。企业私有基础设施托管的内部微服务、API 网关代理。依靠网络层保护,可在防火墙处绑定 Dust 静态出口 IP 白名单。
静态 OAuth (Static OAuth)在目标企业平台预先注册 Dust 回调地址,并在 Dust 中填入 Client ID 与 Client Secret。具备严格企业安全策略的第三方平台(如私有部署 GitHub Enterprise、定制版 CRM)。支持严格的 Token 刷新机制、租户隔离与指定 Scope 限制。

网络与防火墙配置

若自定义 MCP 服务架设于企业内网或设有访问控制的云环境中:


第三步:构建安全防线与人机协同机制(Human-in-the-Loop)

赋予对话助手直接对生产业务系统进行增删改(Create/Update/Delete)的权限,必然带来误操作或 Prompt 注入的安全隐患。Dust 在系统级提供了多维防线。

1. 高风险工具标识(High Stake)

在连接任何能够修改外部系统数据的工具时(例如 HubSpot 更新交易、Jira 修改工单状态),管理员可以将其设置为 HIGH STAKE。

2. 将工具限制至技能(Restrict to Skills)

在 Spaces > Tools 页面中,勾选 Restrict this tool to skills。

3. 基于空间(Spaces)的权限物理隔离

将具有写权限的敏感工具放置在特定的受限空间(Restricted Space)内。仅有被授权加入该空间的核心运营成员,才能与具备相应工具能力的助手对话。


第四步:在 Agent Builder 中设计高可靠的执行提示词

完成工具挂载后,助手能否稳定识别意图、准确解析参数并正确处理异常,核心取决于系统指令(Instructions)的设计。

生产级指令结构四要素

  1. 身份定位与明确边界:说明助手的业务职责,声明不可越权的范围。
  2. 前置核验协议:强制要求在执行写操作前,必须先调用读工具进行状态校验。
  3. 入参提取规则:严格限定各个参数的提取逻辑与必填检查。
  4. 异常恢复与用户提示:遇到接口报错或字段不完整时,给出清晰、可排查的反馈。

运维排障与 CRM 联动助手配置示例

# 角色与职责
你是企业的技术运营工单协同助手。你的任务是协助排障人员将客服与监控中反馈的技术故障,与 CRM 中的客户合同信息进行关联,并在 Jira 中创建符合工程规范的技术工单。

# 工具调用规范

## 1. 客户身份与等级核验 (HubSpot)
- 在创建任何技术工单前,必须先调用 `Get Object By Email` 或 `Search Crm Objects` 查询客户信息。
- 获取客户当前的签约版本(Tier)与活跃交易状态。
- 若客户属于“Enterprise”等级,将故障评级自动提升为 P1。

## 2. 工程工单创建 (Jira)
- 工具:`create_issue`
- 标题(summary)必须简洁明了,限制在 50 字以内,采用格式:`[模块名] 故障核心现象`。
- 描述(description)必须包含以下三个结构化章节:
  1. 影响客户(公司名称、对接人、服务等级)
  2. 故障现象与报错信息
  3. 初始重现步骤与监控日志链接
- 工单类型固定为 "Bug",组件模块填写为 "Production-Ops"。

## 3. 安全确认与错误处理
- 涉及修改现有商机状态或关闭工单的动作,在调用工具前必须在回答中完整列出参数,请求人工核实。
- 若工具调用返回 401 或认证错误,明确告知用户:“请前往个人头像菜单中的 Tools & Triggers 重新连接你的 Jira/HubSpot 个人凭据”。

第五步:利用 Webhooks 实现无需人工打字的全自动闭环

对话助手不仅可以由人工在聊天框中触发,还能由外部系统的事件主动激活。将自定义 Actions 与 Dust 的 Webhook Triggers 结合,即可构建完全无人值守的自动化流程。

+--------------------------+          HTTP POST 事件            +-----------------------------+
| 外部业务系统             | ---------------------------------> | Dust Webhook Source         |
| (Jira、GitHub、Zendesk、 |                                    | (Spaces > Triggers)         |
| 企业内部报警网关)        |                                    +--------------+--------------+
+--------------------------+                                                   |
                                                                               | 载荷解析与签名校验通过
                                                                               v
+--------------------------+          执行工具 Actions          +-----------------------------+
| 目标落地系统             | <--------------------------------- | Dust 助手自主运行           |
| (HubSpot 状态自动更新 /  |                                    | (执行提示词指令、提取参数、 |
| Slack 实时发布简报)      |                                    | 触发外部工具完成闭环)       |
+--------------------------+                                    +-----------------------------+

配置 Webhook 触发链路

  1. 创建 Webhook 源(管理员操作):
    • 进入 Spaces > Triggers,点击 Add source。
    • 可选系统预置源(Jira、GitHub、Linear、Zendesk 等)或 Custom webhook。
    • 自定义源支持高级安全防护:开启 Signature header 与 sha256 签名算法,Dust 将自动生成签名密钥并拦截未经验证的仿冒请求。
  2. 在助手面板挂载触发器:
    • 在 Agent Builder 中进入 Triggers > Add triggers,关联创建好的 Webhook 源。
    • 设定自然语言过滤规则(如:“仅在工单优先级为 High 且状态变更为 Escalated 时运行”)。
    • 勾选 Include webhook payload,将原始事件 JSON 完整送入助手上下文。
    • 设置运行提示词(例如:“从 Payload 中提取报错日志,检索知识库中的解决方案,调用 Jira 工具向对应工单添加处理建议评论”)。
    • 设置 24 小时最大调用额度(Rate Limiting),防止事件风暴导致额度耗尽。

落地架构方案对比与选型指南

在设计自动化工作流助手时,运营团队通常在以下三种集成形态之间进行权衡:

评估维度原生 Dust 集成工具 (如 Jira, HubSpot)自定义 Remote MCP 服务 (包装 OpenAPI)外部 Webhook 触发 + Dust API 协同
核心适用场景主流标准化 SaaS 平台的日常增删改查。企业内部私有系统、定制微服务、复杂多步骤原子接口。业务系统状态变更引发的异步、全自动无人值守闭环。
开发与维护成本零代码,纯界面 OAuth 授权即可启用。中等,需编写 MCP 包装层代码并维护服务托管。中等,需配置外部事件发射器与签名验证。
凭据管理机制原生支持 Personal(个人账号)与 Shared(服务账号)。支持 Bearer 密钥、静态 OAuth、自定义请求头与静态 IP。工作区 API Key 或 Webhook HMAC 密钥。
触发形态用户主动在对话框中沟通或由其他 Agent 委派。用户主动在对话框中沟通或由其他 Agent 委派。外部系统 HTTP POST 推送事件或定时调度。
安全与风控机制High Stake 弹窗审核、空间权限隔离。代码级逻辑校验、参数屏蔽隐藏、High Stake 拦截。频次流控(Rate Limit)、事件过滤表达式。

生产部署前检查清单

在将工作流执行助手正式开放给一线业务团队使用前,建议逐一核对以下检查项:

通过将 OpenAPI 接口通过 MCP 标准接入 Dust,并辅以完善的凭据模型与人机协同审核,数字化运营团队能够真正打破传统知识库“动口不动手”的局限,让 AI 对话助手成为驱动业务高效流转的核心执行器。


参考资料