返回知识库知识库

12 MCP、Tool Calling 与工具治理

理解 MCP 和 Tool Calling 在企业 AI 系统中的作用,并学会设计工具权限、审计、失败处理和执行边界。

12 MCP、Tool Calling 与工具治理

章节目标

理解 MCP 和 Tool Calling 在企业 AI 系统中的作用,并学会设计工具权限、审计、失败处理和执行边界。

为什么重要

Agent 真正进入业务流程,必须调用外部工具:查订单、读库存、发消息、创建工单、发起审批。工具调用让 AI 具备行动能力,也带来权限、审计和执行风险。

开篇案例:一次“自动创建工单”的事故

某团队让客服 Agent 在判断问题复杂时自动创建工单。上线第一天,用户重复提交同一问题,Agent 也重复创建了多张工单;更糟的是,工具没有幂等键,客服系统把它们都当成新任务。最后人工花了半天合并和关闭重复工单。

这个问题不是模型输出错了,而是工具治理没做好:执行型工具缺少审批、幂等、去重、回滚和审计。Tool Calling 让 AI 有行动能力,也意味着 FDE 必须像设计生产 API 一样设计工具边界。

工具类型

类型示例风险控制
查询型查订单、查库存、查制度权限过滤、审计日志
建议型生成建议、风险解释引用依据、置信度、人审
执行型创建工单、发消息、改状态审批、二次确认、幂等、回滚

MCP 的价值

MCP 提供一种标准方式,把文件、数据库、业务系统和外部服务开放给 Agent。它减少碎片化工具适配,也让工具描述、参数和调用过程更容易治理。

工具描述要求

每个工具要写清:

  • 工具名称。
  • 用途。
  • 输入参数。
  • 输出结构。
  • 权限要求。
  • 失败处理。
  • 测试样例。
  • 是否允许执行写操作。

工具网关

生产环境建议通过 MCP Gateway 或 Tool Gateway 统一管理:

  • 工具注册。
  • 参数校验。
  • 权限判断。
  • 调用日志。
  • 速率限制。
  • 风险标记。
  • 版本管理。

工具 Schema 示例

{
  "name": "create_support_ticket",
  "description": "创建售后工单草稿,必须由坐席确认后提交",
  "input_schema": {
    "type": "object",
    "required": ["customer_id", "issue_type", "summary", "idempotency_key"],
    "properties": {
      "customer_id": { "type": "string" },
      "issue_type": { "type": "string", "enum": ["refund", "repair", "complaint", "other"] },
      "summary": { "type": "string" },
      "idempotency_key": { "type": "string" }
    }
  },
  "risk_level": "high",
  "requires_approval": true
}

注意这里写的是“创建草稿”,不是“直接提交”。工具名称、描述和参数本身就是风险控制的一部分。

工具上线前的五问

  1. 这个工具是查询、建议还是执行?
  2. 用户是否有权调用它,数据是否需要行级过滤?
  3. 重复调用会不会产生副作用?
  4. 调用失败后是否能回滚或补偿?
  5. 审计日志能否追踪 trace、用户、参数摘要和结果?

这五个问题没有答案,就不要把工具交给 Agent。

实操任务

为你的 PoC 设计 3-5 个工具:

  • 至少 1 个查询型工具。
  • 至少 1 个建议型工具。
  • 如有执行型工具,必须设计审批和回滚。

交付物

  • 工具清单。
  • 工具参数 Schema。
  • 工具权限矩阵。
  • 工具失败处理表。

常见误区

  • 让模型自由拼 SQL。
  • 工具描述含糊,参数不结构化。
  • 执行型工具没有幂等和回滚。
  • 没有记录 tool_calls。

检查清单

  • 是否区分查询、建议和执行?
  • 是否所有工具都有权限校验?
  • 是否记录工具调用日志?
  • 是否能禁用高风险工具?