功能说明
远程技能代理(Remote Skills)提供一种声明式方式,将托管在 AgentKit Skills Sandbox 中的远端技能以独立工具的形式注册到智能体。开发者通过一份 JSON 清单描述每个远端技能的名称、描述和输入 Schema,VeADK 据此为每个技能生成对应的工具函数;智能体调用工具时,框架通过execute_skills 将请求转发到远端沙箱执行,本地不加载也不运行技能的真实代码。
远程技能代理适用于以下场景:
- 需要将远端技能暴露为独立工具,使智能体能够按技能名称和参数自主调用;
- 需要为每个技能单独控制超时时间;
- 希望以声明式配置管理技能列表,而非在代码中逐个编写工具函数。
远程技能代理复用
execute_skills 的沙箱基础设施与凭证配置。环境变量、Tool ID 等前提条件与代码沙箱页面中的说明一致,此处不再重复。使用方法
导入路径:- 编写一份 JSON 清单文件,描述需要暴露的远端技能;
- 调用
load_remote_skill_definitions加载清单,得到RemoteSkillDefinition列表; - 调用
build_remote_skill_tools将定义转换为工具函数列表; - 将工具函数注册到
Agent的tools参数。
remote_skills_agent.py
清单格式
清单为一个 JSON 对象,包含remote_skills 数组,每个元素描述一个远端技能:
remote-skills.json
技能字段
生成的工具函数
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 参数。