二、1. 填写工具基本信息
单击腾讯云智能体开发平台左侧菜单的连接器与工具 > 自定义工具 > 新建工具,选择基于 API 或基于代码创建工具。
·基于 API:手动填写 API 的基础信息、输入和输出参数。
·基于代码:使用 Python 自定义函数代码以实现 API 功能。
以基于 API 创建为例:
三、1.1 填写工具基本信息
填写工具基本信息,包括名称、描述、上传工具图标等。
四、1.2 指定工具授权方式
根据工具 API 的实际鉴权要求,选择 授权方式。
APIKey 授权
APIKey 是通过密钥或令牌对请求方身份进行校验的认证方式。
在授权方式处选择 APIkey 后,在 Header(请求头)或 Query(查询参数)中配置密钥对应参数名称和密钥值:
OAuth 2.0 授权
创建自定义连接器时,若 MCP 服务要求用户授权后再访问,请将授权方式选为 OAuth 2.0。平台按你填写的 MCP Server URL 自动发现授权地址和令牌地址,创建页只保留客户端标识。
说明:两种入口的页面不一样。
| 项目 | 自定义连接器,以及自定义工具中的「基于 MCP」 | 自定义工具中的「基于 API」 |
| 入口 | 连接器与工具 > 自定义连接器 > 新建连接器;或 连接器与工具 > 自定义工具 > 新建工具 > 基于 MCP | 连接器与工具 > 自定义工具 > 新建工具 > 基于 API |
| 选择 OAuth 2.0 后页面上的字段 | ClientId、ClientSecret | ClientId、ClientSecret、AuthorizationUrl、Scope、TokenUrl |
| ClientId、ClientSecret | 选填 | 必填 |
| AuthorizationUrl、TokenUrl | 页面不展示。平台按 MCP 授权规范自动发现,无需填写 | 必填。从第三方 OAuth 应用的说明中获取后手动填写 |
| Scope | 页面不展示。授权范围随自动发现结果确定 | 选填,可按第三方规范填写多个 |
| 重定向 URL | 仅当你已在第三方预先创建 OAuth 应用,并在本页填写了 ClientId 时,才需要把该 URL 配到该应用的回调地址 | 必须配到第三方 OAuth 应用的回调地址 |
基于 MCP 的自定义工具与自定义连接器使用同一创建页,字段一致。需要手工填写 AuthorizationUrl、TokenUrl 时,请使用基于 API。配置说明和 GitCode 示例见 新建工具。
自定义连接器选择 OAuth 2.0 后,只需按需填写 ClientId、ClientSecret。「自定义工具 → 新建工具 → 基于 MCP」为同一页面,标题是「新建工具-基于 MCP」。
基于 API 创建自定义工具时,AuthorizationUrl 和 TokenUrl 需手动填写。
选择 OAuth 2.0 后,按实际注册情况填写:
| 字段 | 是否必填 | 说明 |
| ClientId | 选填 | 第三方 OAuth 应用的客户端 ID。已在第三方预先创建应用时填写;留空则由平台在授权时向授权服务器自动注册客户端 |
| ClientSecret | 选填 | 第三方 OAuth 应用的客户端密钥。该应用使用客户端密钥时,与 ClientId 一起填写。公开客户端可留空 |
填写 ClientSecret 时,请同时填写 ClientId。ClientId 可以单独填写。
平台用 MCP Server URL 读取该服务发布的受保护资源元数据和授权服务器元数据,从中取得授权端点与令牌端点。这两项对应基于 API 创建时要手填的 AuthorizationUrl 和 TokenUrl。创建页和高级设置都不提供这两个输入框。高级设置中只有 Header、请求超时时长和 SSE 服务超时时长。
已在第三方创建 OAuth 应用时,请把下面的重定向 URL 填入该应用的回调地址,再把应用生成的 ClientId、ClientSecret 填入本页。回调地址未配置会导致授权失败。
https://adp.cloud.tencent.com/api/plugin/oauth/callback
ClientId、ClientSecret 都留空时,平台在首次授权时向授权服务器注册客户端,并代为提交上述回调地址。对方授权服务器需支持动态客户端注册,或支持通过客户端元数据文档识别客户端。这种情况下,无需事先创建 OAuth 应用,也无需填写授权地址和令牌地址。
注意:MCP 服务需按 MCP 授权规范发布受保护资源元数据和授权服务器元数据,且元数据中包含授权端点与令牌端点,平台才能完成自动发现。对方不提供这些元数据时,请改用自定义工具中的「基于 API」创建,并手动填写 AuthorizationUrl 和 TokenUrl。
单击保存即可完成连接器创建。保存只表示连接器已创建。请进入连接器详情页,单击去配置拉取工具,再按页面提示完成授权。创建页没有「去授权」按钮。
五、2. 配置工具
你可以通过手动添加工具或添加 YAML/json 格式代码文件导入 API 工具。以手动添加工具为例,在“添加工具(API)”步骤中填写工具名称、调用地址等信息,配置接口对应的入参和出参后完成配置。
你可以通过不同类型的代码格式导入工具。以下是不同规范的 API 接入说明和示例:
六、OpenAPI
OpenAPI 是一种开放的规范,用于描述和定义 RESTful API 的接口。它允许开发者以标准化的方式描述 API 的请求、响应、参数、认证等信息。
文件格式:支持 YAML 格式和 JSON 格式。
关键字段说明:
| 字段 | 说明 | 是否必需 |
| openapi | 规范版本号,如3.0.0 | 是 |
| servers | 定义 API 的基础 URL 列表 | 否,但建议填写以生成有效 URL |
| info | API 元数据,包括标题、版本、描述等 | 是 |
| paths | 定义所有端点(例如 /users)及其 HTTP 方法(GET/POST) | 是 |
| components | 存储可复用的模型、参数、响应等,例如:schemas 定义的数据结构 | 否 |
示例:
YAMLJSONopenapi: "3.0.0"info: title: "测试API" version: "1.0.0" description: "请在此填入工具描述"servers: – url: "https://example.com/api" description: "请在此填入工具描述"paths: "/weatherInfo": get: summary: "API名称" description: "请在此填入工具下面的API描述" operationId: "getWeatherInfo" parameters: – name: "city" in: "query" description: "参数说明" required: true schema: type: "string" responses: "200": description: "成功的响应" content: application/json: schema: type: "object" properties: status: type: "integer" description: "返回状态" enum: [0, 1] "400": description: "错误的请求" "401": description: "未授权" "500": description: "服务器内部错误"{ "openapi": "3.0.0", "info": { "title": "测试API", "version": "1.0.0", "description": "请在此填入工具描述" }, "servers": [ { "url": "https://example.com/api", "description": "请在此填入工具描述" } ], "paths": { "/weatherInfo": { "get": { "summary": "API名称", "description": "请在此填入工具下面的API描述", "operationId": "getWeatherInfo", "parameters": [ { "name": "city", "in": "query", "description": "参数说明", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "成功的响应", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "integer", "description": "返回状态", "enum": [ 0, 1 ] } } } } } }, "400": { "description": "错误的请求" }, "401": { "description": "未授权" }, "500": { "description": "服务器内部错误" } } } } }}
七、Swagger
Swagger 是 OpenAPI 规范的前身和实现工具(Swagger 2.0 是旧版规范),用于描述、文档化和测试 RESTful API,使用与 OpenAPI 相同的文件格式。
文件格式:支持 YAML 格式和 JSON 格式。
关键字段说明:
| 字段 | 说明 | 是否必需 |
| swagger | 规范版本号,如2.0 | 是 |
| host | 域名 | 否,但建议填写以生成有效 URL |
| basePath | 基础路径 | 否,但建议填写以生成有效 URL |
| schemes | 支持的协议,如 HTTP 或 HTTPS | 否,但建议填写以生成有效 URL |
| info | API 元数据,包括标题、版本、描述等 | 是 |
| paths | 定义所有端点(如 /users)及其 HTTP 方法(GET/POST) | 是 |
| definitions | 数据模型,相当于 OpenAPI 的 components/schemas | 否 |
示例:
YAMLJSONswagger: "2.0"info: title: User API version: 1.0.0 description: 示例 Swagger 2.0 文档host: "example.com"basePath: "/api"schemes: – "https"paths: /users: # GET 请求 get: summary: 获取所有用户 responses: '200': description: 成功返回用户列表 schema: type: object properties: users: type: array items: $ref: '#/definitions/User' # POST 请求 post: summary: 创建新用户 parameters: – in: body name: user required: true schema: $ref: '#/definitions/User' responses: '201': description: 用户创建成功definitions: User: type: object required: – name properties: id: type: integer readOnly: true example: 1 name: type: string example: "张三" email: type: string format: email example: "user@example.com"{ "swagger": "2.0", "info": { "title": "User API", "version": "1.0.0", "description": "示例 Swagger 2.0 文档" }, "host": "example.com", "basePath": "/api", "schemes": ["https"], "paths": { "/users": { "get": { "summary": "获取所有用户", "responses": { "200": { "description": "成功返回用户列表", "schema": { "type": "object", "properties": { "users": { "type": "array", "items": { "$ref": "#/definitions/User" } } } } } } }, "post": { "summary": "创建新用户", "parameters": [ { "in": "body", "name": "user", "required": true, "schema": { "$ref": "#/definitions/User" } } ], "responses": { "201": { "description": "用户创建成功" } } } } }, "definitions": { "User": { "type": "object", "required": ["name"], "properties": { "id": { "type": "integer", "readOnly": true, "example": 1 }, "name": { "type": "string", "example": "张三" }, "email": { "type": "string", "format": "email", "example": "user@example.com" } } } }}
八、Postman
Postman 是一个 API 开发和测试工具,其 Collection 格式用于保存请求、测试脚本和环境变量,适合手动测试和团队协作。
文件格式:支持 JSON 格式。
关键字段说明:
| 字段 | 说明 | 是否必需 |
| info | 集合元数据,包括集合名称和集合版本 | 是 |
| item | 请求列表,每个请求需指定方法和 URL | 是 |
| request | 请求详情,包括 header, body, auth 等 | 是 |
| auth | 认证配置,如 API Key | 否 |
| event | 预请求脚本或测试脚本 | 否 |
示例:
{ "info": { "name": "User API Collection", "version": "1.0.0", "description": "示例 Postman 集合,包含 GET 和 POST 请求" }, "item": [ { "name": "GetAllUsers", "request": { "method": "GET", "description": "GetAllUsers", "header": [ { "key": "Content-Type", "value": "application/json" } ], "url": { "raw": "https://api.example.com/users", "protocol": "https", "host": [ "api.example.com" ], "path": [ "users" ] } }, "response": [] }, { "name": "CreateUser", "request": { "method": "POST", "description": "CreateUser", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\\"name\\": \\"John Doe\\", \\"email\\": \\"john@example.com\\"}" }, "url": { "raw": "https://api.example.com/users", "protocol": "https", "host": [ "api.example.com" ], "path": [ "users" ] } }, "response": [] } ]}
九、3. 校验工具
工具配置完后,进入校验环节。在校验窗口中,填写输入参数后试运行,查看调用结果,测试工具是否能够正常调用。支持将当前测试结果保存为示例。
如你创建的工具为 OAuth 授权,你可以在校验阶段进行授权测试,该授权状态为一次性校验,不会保存。
试运行通过之后,保存当前编辑的工具。
注意:工具需通过校验后才可保存。
保存后的工具支持在工具广场进行查看、编辑、导出等操作。
十一、接入自定义 MCP
1. 点击腾讯云智能体开发平台左侧菜单的连接器与工具 > 自定义工具 > 新建工具,选择基于 MCP 创建工具。
2. 在接入页面填写 MCP Server 的基本信息,包括名称、描述等字段,选择接入类型,配置 MCP Server 的在线 URL 地址。
MCP 服务端要求:接入的 MCP Server 需要符合 MCP 协议,并能够完成初始化、工具列表查询和工具调用流程。平台会通过配置的 URL 与 MCP Server 建立连接,并按 MCP 协议发起调用。
·初始化:Server 需要支持 initialize 方法,并返回 protocolVersion、capabilities、serverInfo。
·工具能力声明:如果该服务端需要作为工具在工作流或 Multi-Agent 中使用,capabilities 中需要声明 tools 能力,不为空。
·工具列表:Server 需要支持 tools/list 方法,并返回可调用工具列表。若 tools/list 返回空数组,平台可以完成服务接入,但不会生成可用工具。
·工具调用:Server 需要支持 tools/call 方法,并按 MCP 协议返回调用结果。
接入类型:支持接入 sse 和 streamableHttp 协议类型的 MCP。
·sse:一种基于 HTTP 协议的单向实时通信机制。客户端通过建立一次持久的 HTTP 连接,服务器即可持续不断地向客户端推送事件数据,常用于实时消息、状态更新等场景。
·streamableHttp:一种在 HTTP 协议之上实现的流式传输机制,常用于 AI 模型输出逐步生成内容(如大语言模型的流式响应)。它不是全新的协议,而是对 HTTP 长连接与分块传输能力的灵活利用,以便在推理过程中逐步向客户端返回数据。
除了指定服务器类型外,你还可以在高级设置中自定义 MCP 的 Header、请求超时时长以及 SSE 服务超时时长。
·Header:发送给 MCP Server 的 HTTP 请求头,可以在这里补充认证信息或自定义字段。
·请求超时时长 (秒):普通 HTTP 请求的超时时间,超过这个时长没有响应就会中断。
·SSE 服务超时时长 (秒):针对 SSE 长连接的超时时间。
你也可以通过 JSON 代码一键添加 MCP Server。
3. 保存后即可完成MCP接入,你可以在 智能工作台、 Multi-Agent 模式 和 工作流 内添加连接器与工具,扩充智能体的服务边界。后续可以对已创建的MCP进行查看、编辑、导出等动作。
基于 MCP 创建时,授权方式选择 OAuth 2.0 后只展示 ClientId、ClientSecret。AuthorizationUrl 和 TokenUrl 由平台按 MCP 协议自动发现,页面不提供输入框。字段说明见 新建连接器。
十二、基于已发布的应用创建
基于已发布应用创建的工具支持平台内跨应用使用,便于用户复用已发布应用。
注意:使用支持多轮,而创建为工具后,仅支持单轮调用。
注意:1. 包含工作流的应用,不建议在工作流中设置与用户交互的节点(例如选项卡节点、参数提取节点、文件提取节点),否则将会出现严重的效果问题。
注意:2. 在 Multi-Agent 模式应用中,若采用 Plan-and-Execute 协同方式,不建议将其发布为工具。即使发布,也无法正常使用。
注意:3. 为了确保调试效果与工具发布后的表现一致,建议在调试阶段将应用配置中的输入输出上下文轮数设置为0。
十三、1. 新建工具
进入工具广场,单击新建工具,选择基于已发布的应用。
十四、2. 选择应用
在已发布的应用列表中选择应用,单击确定。
十五、3. 填写基本信息
填写基本信息,可编辑工具名称、工具描述和工具图标,默认展示应用名称、应用描述和应用头像,支持用户修改。
填写成功后,单击下一步。
十六、4. 添加工具
填写工具名称和描述。输入参数中,仅支持编辑参数描述,参数名称和类型不可编辑,对于单工作流模式应用,输入参数为工作流开始节点的输入参数,输出参数为工作流结束节点的输出参数。
十七、使用自定义工具
如需了解如何在应用内使用工具,详情请参见 使用工具。
十八、删除自定义工具
当删除自定义工具时,如果工具已经被引用,会进行删除提示说明。
20、Q:工具如何设置输入参数?是否可以引用变量?
在 Claw 模式或 Multi-agent 模式应用中,单击工具设置,可以配置工具输入、输出参数及相关信息,支持引用变量。详见使用工具。
在工具设置 > 工具参数中,可以查看工具的输入和输出参数,并支持设置参数对大模型是否可见。
·输入参数设置:支持配置默认值并选择模型是否可见。将部分参数设置为模型不可见后,工具将按照默认值进行调用,从而提升调用的稳定性。例如,对于密钥类参数,建议预先填写参数并关闭模型可见开关,这样在对话过程中无需收集密钥相关字段。默认值的设置方式包括以下两种:
·手动输入:直接填写参数值。
·引用变量:引用 API 参数变量。创建 API 参数变量后,可在调用腾讯云智能体开发平台 API 时,通过 custom_variables 字段(该参数的使用详情请参见 对话端接口文档(HTTP SSE)、对话端接口文档(WebSocket))传入变量。预置 API 参数 API.VisitorBizId,对应接口文档中的 UserID,传入访客 ID,标识当前接入会话的用户。在开启了平台端用户权限的情况下,这个 ID 将与权限关联。