Skip to main content

功能说明

invoke_skill 和 poll_skill 提供非阻塞的技能任务执行能力。invoke_skill 通过 A2A 协议向 AgentKit 技能沙箱发送非阻塞请求,创建一个技能任务并立即返回初始任务对象;poll_skill 根据任务 ID 获取任务的当前状态快照。两者配合使用,开发者可以在不阻塞智能体推理的情况下启动长时间运行的技能工作流,并按需轮询任务状态。 与 execute_skills 的区别: 适用场景:
  • 技能工作流执行时间较长,不希望在单次工具调用中阻塞等待;
  • 需要在启动技能任务后执行其他操作,再在合适时机查询结果;
  • 需要对任务状态进行自定义的轮询控制。
invoke_skill 和 poll_skill 复用 execute_skills 的沙箱基础设施与凭证配置。环境变量、Tool ID、入站身份凭证等前提条件与代码沙箱页面中的说明一致,此处不再重复。

使用方法

导入路径:
将两个工具直接注册到 Agent 的 tools 列表,智能体即可在推理过程中按需调用:先通过 invoke_skill 启动技能任务,再通过 poll_skill 查询任务状态。
skill_tasks_agent.py

任务对象

invoke_skill 和 poll_skill 均返回 A2A 任务对象(dict),包含以下关键字段: 任务状态包括: working 为非终态,其余状态为终态。任务达到终态后,再次调用 poll_skill 返回的快照不再变化。

invoke_skill

创建一个 A2A 技能任务并返回初始任务对象。调用时发送非阻塞的 message/send 请求,不等待任务完成。
tool_context 在签名中标记为可选,但实际调用时必须提供,否则会报错。VeADK 在智能体运行时自动注入该参数,无需手动传入。

poll_skill

获取一个 A2A 技能任务的当前状态快照。调用时发送 tasks/get 请求,返回任务对象。
tool_context 在签名中标记为可选,但实际调用时必须提供,否则会报错。VeADK 在智能体运行时自动注入该参数,无需手动传入。

安全边界

invoke_skill 和 poll_skill 在远端技能沙箱中执行工作流,沙箱中的代码可以访问沙箱网络可达的服务并读写文件。运行前应确认技能来源可信,并限制沙箱可访问的数据、网络和权限。入站身份凭证(凭证键 inbound_auth)会以 inbound_auth 请求头转发给技能沙箱,使沙箱中的工作流能够以原始用户身份执行;当前请求未携带入站凭证时不附加该请求头,沙箱以匿名方式执行。入站身份凭证的来源与配置方式参见入站认证。
最后修改于 2026年9月19日