Agent Runtime MCP 使用指南

如何将 MCP Server 和 Skill 注册到 Agent Runtime 注册中心,并让自己的 Agent 发现、获取和使用这些资产。操作分为三步:发布可消费的版本、从注册中心查找并解析资产、在 Agent 中连接 MCP Server 或加载 Skill。

相关产品
Agent Runtime 产品页,含版本规格、价格与购买入口。

注册中心提供资产目录、版本和内容。Agent 需要接入注册中心的查询能力,并具备对应的 MCP 客户端或 Skill 加载能力,才能完成实际使用。

一、前提条件

·已创建注册中心,并记录所在地域和 RegistryId。创建方法请参见 创建与管理注册中心及资产。

·注册操作使用具备资产管理权限的身份;消费端使用具备相应查询、下载权限的身份。

·MCP Server 已部署,且 Agent 所在环境能够访问其服务地址;所需服务凭据在客户端配置。

·使用 Skill 时,Agent 已支持加载 SKILL.md;如果 Skill 包含脚本或依赖文件,Agent 运行环境还需具备相应执行能力。

这篇 JSON 示例为云 API 的业务请求体,需要配合 Action、地域和签名使用,不是可直接发送的完整 HTTP 请求。API 入口为 https://ags.tencentcloudapi.com/,版本为 2025-09-20,签名方式为 TC3-HMAC-SHA256,签名参数 service 使用 ags。请将示例资源 ID 和 example.com 地址替换为实际值,地域与注册中心保持一致。响应中的业务错误位于 Response.Error,排查时可记录 Response.RequestId。

二、步骤一:注册资产并准备稳定版本

可以在控制台登记资产,也可以使用 CreateRegistryRecord。以下给出两类资产的最小 API 示例;控制台步骤请参见 登记资产。

三、注册 MCP Server

对于可被注册中心访问的公网 MCP 服务,可以使用 URL 导入。Action:CreateRegistryRecord。

{ "RegistryId": "reg-0123abcd", "Name": "example.com/weather", "Description": "查询天气信息", "DescriptorType": "MCP", "MCPSource": { "Type": "URL_IMPORT", "EndpointURL": "https://example.com/mcp" }}

URL 导入会探测远端服务并生成协议描述。地址不能包含凭据,且须符合公网访问要求。也可以使用 MCPSource.Type=MANUAL,将符合要求的 server.json 序列化为 JSON 字符串后填入 MCPSource.Descriptors;两种来源方式不能混用。

创建成功后保存 Response.RecordId 和 Response.Version.VersionId。注册成功只说明资产已登记,仍需在 Agent 所在环境验证网络、认证和工具调用。

四、注册 Skill

仅包含说明文本的 Skill,可直接提交 SKILL.md。Action 同样为 CreateRegistryRecord。

{ "RegistryId": "reg-0123abcd", "Name": "summarize-doc", "Description": "按固定结构整理文档摘要", "DescriptorType": "AGENT_SKILLS", "SkillSource": { "Type": "MANUAL", "SkillMd": "—\\nname: summarize-doc\\ndescription: 按要点、结论和待办整理用户提供的文档\\n—\\n# 文档摘要\\n阅读用户提供的文档,输出要点、结论和待办;未明确的信息标记为待确认。\\n" }}

如果还包含脚本、参考资料等文件,使用压缩包形式:

{ "RegistryId": "reg-0123abcd", "Name": "summarize-doc-package", "DescriptorType": "AGENT_SKILLS", "SkillSource": { "Type": "TAR_PACKAGE" }}

准备根目录包含合法 SKILL.md 的 .tar.gz 包,将包内容原样 PUT 到创建响应返回的 UploadURL。此上传请求不附加云 API 的 Authorization 或 X-TC-* 请求头。随后使用返回的 Version.VersionId 查询版本,等待 ContentStatus=READY;当版本的 ContentStatus 为 FAILED 或 EXPIRED 时,可调用 GetSkillPackageUploadURL 获取新的上传链接;尚未过期的 UPLOADING 状态也支持重新获取上传链接。上述操作均保持 VersionId 和 Revision 不变。

五、确认稳定版本

消费端通常从 stable 获取版本。首个内容校验成功且通过审批的版本会自动获得 stable 和 latest 标签;人工审批模式下需先完成审批。后续版本通过审批不会自动移动 stable;latest 始终指向修订号最大的已审批版本。要用于默认消费,需显式移动 stable。具体操作请参见 管理资产版本。

六、步骤二:让 Agent 发现并解析资产

自建 Agent 可以将下面的查询步骤封装成工具供模型调用,也可以由应用在任务开始时查询候选资产,再将候选列表提供给模型。接入层负责云 API 签名、分页和错误处理;模型根据资产名称、描述和任务需求选择资产。仅将资产注册到 Registry,并不会自动让所有 Agent 感知到它。

七、查询候选资产

调用 DescribeRegistryRecordList,按类型和关键词查询。例如查找天气相关 MCP Server:

{ "RegistryId": "reg-0123abcd", "Offset": 0, "Limit": 20, "Filters": [ { "Name": "descriptor_type", "Values": [ "MCP" ] }, { "Name": "search", "Values": [ "weather" ] } ]}

响应中的 RecordSet 是候选记录,TotalCount 用于判断是否需要继续分页。查找 Skill 时,将类型改为 AGENT_SKILLS,关键词换为实际资产名称或描述中的词语。这里的 search 是名称、描述关键词过滤;是否匹配用户任务由接入层或 Agent 判断。

列表查到记录后,还需查询可消费的版本,不能把列表命中直接视为可用。

八、解析稳定版本

调用 DescribeRegistryRecord,使用选中资产的 RecordId:

{ "RegistryId": "reg-0123abcd", "RecordId": "rec-0123abcd"}

省略 VersionId 和 Label 时,接口默认解析 stable,不会自动回退到 latest。检查以下结果:

·Response.Version 不为 null,并记录其 VersionId。

·Response.Version.Descriptors 为 JSON 字符串,使用前需反序列化。

·如果没有稳定版本,默认查询可能成功但返回 Version=null;此时应完成审批和发布,再继续消费。

如需复现同一次任务,可以在后续支持版本选择的请求中使用已解析的 VersionId;不要同时传入 VersionId 和 Label。对 MCP 来说,该 ID 固定的是注册中心中的描述快照,远端服务的实际部署仍由服务提供者维护。

九、连接 MCP Server 并调用工具

1. 解析选定版本的 Descriptors。对于远程 MCP Server,从 remotes 中选择客户端支持的传输方式和对应 url。

2. 将该地址、传输方式和所需认证配置交给 Agent 的 MCP 客户端。具体配置文件和启用方式由所用 Agent 决定。

3. 建立 MCP 会话后,通过 tools/list 获取实际工具及参数定义,再把这些工具提供给 Agent。

4. Agent 根据用户任务选择工具,由 MCP 客户端发起 tools/call,将工具结果交回 Agent 继续处理。

以下是远程连接描述的结构示意,不是完整 API 响应或任意 Agent 通用配置文件;请使用实际版本返回的值:

{ "remotes": [ { "type": "streamable-http", "url": "https://example.com/mcp" } ]}

如果描述中提供的是本地运行包 packages,需按包信息在 Agent 所在环境安装并启动相应服务,再交给支持该传输方式的 MCP 客户端连接。

可发送“请使用天气工具查询指定城市的天气”作为验证任务。检查实际工具调用记录、参数和返回结果;仅看到资产名称,或 Agent 声称调用成功,都不足以证明工具可用。工具发现和调用的协议说明请参见 MCP Tools。

十、获取并加载 Skill

先根据版本的 SourceType 获取内容:

来源 获取方式
MANUAL 解析 Version.Descriptors,读取 agentSkills.skillMd.inlineContent,保存为 SKILL.md。
TAR_PACKAGE 调用 GetSkillPackageDownloadURL,下载并校验完整压缩包,保留目录结构和依赖文件。

GetSkillPackageDownloadURL 只支持压缩包形式的 Skill。对压缩包,可使用前一步已解析出的版本 ID 请求下载:

{ "RegistryId": "reg-0123abcd", "RecordId": "rec-0123abcd", "VersionId": "rv-0123abcd"}

检查返回的 ResolvedVersionId 与所选版本一致,在 ExpireTime 前使用 DownloadURL 下载,并将文件的 SHA-256 与响应中的 SHA256 比较。压缩包内容需处于 READY 状态。

获得内容后,在 Agent 中完成加载:

1. 将 SKILL.md 及随包文件放到该 Agent 支持的 Skill 目录或内容存储中,保持相对路径可解析。

2. 让 Agent 的 Skill 加载器发现技能名称和描述,并在任务匹配时读取完整 SKILL.md。

3. 按 Skill 指令按需读取参考文件、调用工具或运行脚本;相应工具、依赖和权限由 Agent 运行环境提供。

4. 刷新技能列表或按客户端要求重新加载后,发送与技能匹配的任务,检查技能读取记录和实际产出。

自建 Agent 的加载机制请参见 Agent Skills 集成指南。Registry 不规定所有客户端统一的安装目录,也不会替 Agent 执行 Skill。下载成功只完成内容获取。

对于前面的 summarize-doc,可以发送:“请使用 summarize-doc 整理以下文档,输出要点、结论和待办。”确认 Agent 已读取该 Skill,并按要求生成结果;如果 Skill 包含脚本,还需检查脚本执行结果。

十一、结果验证与常见问题

检查点或现象 预期结果或处理方法
资产是否注册成功 保存实际返回的 RecordId 和 Version.VersionId,能查询到对应记录。
列表查不到资产 核对地域、RegistryId、权限、类型过滤和关键词,并检查分页。
查到资产但没有可用版本 检查审批状态和 stable 标签;不能用列表命中替代版本解析。
MCP 能发现但无法调用 在 Agent 所在环境检查服务地址、传输支持和服务认证,再检查工具参数及返回错误。
Skill 下载失败 确认是 TAR_PACKAGE 且内容为 READY;地址过期后重新获取下载地址。
Skill 已获取但未生效 检查客户端是否支持 Skills、是否加载正确目录,以及指令引用的文件、工具和依赖是否可用。
新版本通过审批但仍读到旧内容 检查 stable 是否已移动,以及 Agent 是否仍使用缓存或固定版本。

十二、进阶阅读

需要进一步体验 Agent 之间的协作,可参见 Agent Registry 多 Agent Cookbook。该示例使用 DSH 发现资产,通过 A2A 客户端调用多个 Agent;它是一种参考集成,适合在掌握本篇基础流程后继续实践。

赞 (0)
上一篇 4天前
下一篇 4天前