Skip to main content

功能说明

远程技能代理(Remote Skills)提供一种声明式方式,将托管在 AgentKit Skills Sandbox 中的远端技能以独立工具的形式注册到智能体。开发者通过一份 JSON 清单描述每个远端技能的名称、描述和输入 Schema,VeADK 据此为每个技能生成对应的工具函数;智能体调用工具时,框架通过 execute_skills 将请求转发到远端沙箱执行,本地不加载也不运行技能的真实代码。 远程技能代理适用于以下场景:
  • 需要将远端技能暴露为独立工具,使智能体能够按技能名称和参数自主调用;
  • 需要为每个技能单独控制超时时间;
  • 希望以声明式配置管理技能列表,而非在代码中逐个编写工具函数。
远程技能代理复用 execute_skills 的沙箱基础设施与凭证配置。环境变量、Tool ID 等前提条件与代码沙箱页面中的说明一致,此处不再重复。

使用方法

导入路径:
使用步骤如下:
  1. 编写一份 JSON 清单文件,描述需要暴露的远端技能;
  2. 调用 load_remote_skill_definitions 加载清单,得到 RemoteSkillDefinition 列表;
  3. 调用 build_remote_skill_tools 将定义转换为工具函数列表;
  4. 将工具函数注册到 Agent 的 tools 参数。
remote_skills_agent.py
也可以直接传入 JSON 字符串而非文件路径:

清单格式

清单为一个 JSON 对象,包含 remote_skills 数组,每个元素描述一个远端技能:
remote-skills.json

技能字段

name 和 description 必须为非空字符串,input_schema 必须为 JSON 对象,否则加载时会报错。timeout(或 timeout_seconds)必须在 1–1800 之间。清单中不允许出现重复的 name。

生成的工具函数

build_remote_skill_tools 为每个 RemoteSkillDefinition 生成一个工具函数。函数名取自技能的 name,函数 Docstring 包含技能描述和输入 Schema。生成的工具函数签名如下:
工具执行时,框架将 skill_name、query、arguments 和自动生成的 request_id 组装为查询输入,通过 execute_skills 发送到远端沙箱,并使用技能定义中配置的 timeout 控制超时。
tool_context 在签名中标记为可选,但实际调用时必须提供,否则会报错。VeADK 在智能体运行时自动注入该参数,无需手动传入。

API

RemoteSkillDefinition

RemoteSkillDefinition 是技能的运行时定义,包含技能名称、描述、输入 Schema 和超时配置。

load_remote_skill_definitions

返回 RemoteSkillDefinition 列表。传入的值以 { 开头时按 JSON 字符串解析,否则按文件路径读取。

build_remote_skill_tools

返回工具函数列表,可直接传入 Agent 的 tools 参数。
最后修改于 2026年9月19日