功能说明
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 在智能体运行时自动注入该参数,无需手动传入。