百积木文档
开发集成

MCP 与外部工具

通过 MCP 或工具连接外部能力,让智能体在授权范围内执行任务。

MCP 和外部工具可以把第三方系统能力接入智能体,例如查询内部系统、读取文件、调用业务接口或执行自动化动作。

接入设置

  • 工具权限应按工作区和业务场景收敛。
  • 敏感操作需要有明确确认或权限控制。
  • 工具返回应结构化,方便智能体判断下一步。

测试工具

绑定智能体后,用真实任务测试工具调用,确认入参、返回、错误提示和日志记录都符合预期。

外部 Agent 调用平台 Runtime

外部 Agent 可以通过平台的 MCP 服务发现当前 Runtime 中获准访问的 Module,并调用其方法。使用目标环境登记的 API 地址,MCP 路径为 /agent/v1/agent-api-service/api/mcp,传输方式为 Streamable HTTP。连接使用当前工作区签发的 Agent 执行凭据;工作区、执行用户及权限由凭据确定。

工具用途资源选择参数
search_resources按名称、描述或 Locator 搜索可见资源,每页最多 20 项applicationRuntimeId、query,后续页使用返回的 nextOffset
describe_resource读取资源的方法和参数定义applicationRuntimeId、完整 resourceLocator,可选 method
execute_resource_method调用已授权的方法applicationRuntimeId、完整 resourceLocator、method、params

先搜索资源,再使用返回的完整 Locator 查询方法定义并调用。例如,source/orders/MODULE/order-service 表示来源环境 source、Bundle orders 中的 order-service Module。Locator 不包含版本;实际调用使用 Runtime Owner 当前选择的版本和执行入口。

查询成功不代表获得方法执行权限。每次调用都会检查当前授权;撤销授权后,后续调用会失败。业务参数中的 userId 等字段不改变执行主体。写入调用超时后结果可能未知,应先查询业务结果,再决定是否重试。

HTTP 调用

同一执行凭据也可调用 /agent/v1/agent-api-service/api/runtime-resources/query 和 /agent/v1/agent-api-service/api/runtime-resources/execute。请求需要完整 Runtime 身份,workspaceId 必须与凭据所属工作区一致。

查询一个 Module 的方法:

{
  "contractVersion": "1.0.0",
  "workspaceId": 42,
  "applicationRuntimeId": "owner-returned-runtime-id",
  "scope": {
    "kind": "RESOURCE",
    "resourceLocator": "source/orders/MODULE/order-service"
  },
  "method": "readOrder"
}

调用方法:

{
  "contractVersion": "1.0.0",
  "workspaceId": 42,
  "applicationRuntimeId": "owner-returned-runtime-id",
  "resourceLocator": "source/orders/MODULE/order-service",
  "method": "readOrder",
  "params": { "orderId": "example-order" }
}

查询结果中的资源使用 resourceLocator 标识,返回当前方法定义;调用保留方法自身的 CModel 结果和业务错误。迁移期间,原有 search_services、describe_service、execute_method 及其 HTTP 入口继续保持原合同。新接入使用上面的 Locator 入口。

本页内容