ZGI Skill Loop 负责承接模型规划与工具执行之间的连续调用。一次复杂任务可以经历多轮"选择工具、传入参数、读取结果、决定下一步",同时受到执行步数、失败重试、工具超时和结束条件的限制,避免调用链无限延伸。

概念示意图:Skill Loop 在治理检查和限时执行后,根据结果继续调用或停止。
工具为什么会被连续调用
用户让智能体整理客户资料并生成报告时,系统可能先读取文件,再查询数据库,随后写入结果。前一个工具的输出会成为下一轮判断依据,因此多轮调用本身很正常。
风险出现在任务目标缺少完成标准,或工具返回的信息无法推动判断。模型可能再次提交相同参数,也可能在几个工具之间来回尝试。调用次数上升后,等待时间、模型消耗和外部接口压力都会增加。
Skill 说明负责教会方法
技能(Skill)可以描述适用场景、操作步骤、工具选择和结果要求。清楚的 Skill 能减少模型试错,例如规定先检查必填字段,再调用创建接口,最后核对返回编号。
这些说明仍然依赖模型执行。工具异常、参数错误、权限不足或外部服务超时,都可能让原计划无法继续。生产环境还需要运行层约束,决定一次任务最多走多远、失败后还能尝试几次,以及什么时候把未完成情况交代给用户。
四类边界共同限制循环
ZGI 在 Skill Loop 中跟踪执行步数、工具调用、失败轮次和重复失败。调用链超过安全范围时,运行过程会停止继续扩张,并留下对应原因。
| 边界 | 处理的问题 | 需要保留的信息 |
|---|---|---|
| 执行步数 | 调用链持续变长 | 已完成步骤与上限原因 |
| 失败重试 | 工具连续报错 | 错误类别与尝试次数 |
| 重复调用 | 相同参数反复失败 | 工具名、参数与最近错误 |
| 执行超时 | 单个工具迟迟不返回 | 状态、耗时与超时结果 |
步数限制负责控制整条链路,失败限制负责处理持续报错,重复调用检查拦截没有变化的再次尝试,超时则约束单个工具占用时间。四类边界关注的位置不同,需要一起参与运行。
停止后要说明任务做到了哪里
直接抛出"调用失败"会让用户无法判断哪些步骤已经完成。运行层应保留成功工具的结果、最近一次失败、终止原因和未完成部分,再生成一份诚实的说明。
例如,资料已经读取,写入业务系统时权限不足。系统可以明确告诉用户读取阶段已完成,写入动作尚未发生,需要补充授权或交由人工处理。这样既不会重复执行已完成步骤,也不会把部分成功包装成完整交付。
设计 Skill 时写清完成条件
运行限制可以兜底,前面的任务设计仍然影响调用质量。团队可以为每个 Skill 明确输入字段、成功信号、允许重试的错误和终止后的处理方式。
"查询完成"可以对应返回有效记录或明确的空结果;"创建完成"可以对应业务系统返回编号;高风险写入还可以要求审批通过。完成条件越具体,模型越容易判断是否进入下一步,运行记录也更方便复查。
在 ZGI 中,Skill 提供可复用的方法,Skill Loop 承接多轮规划与执行,权限和治理检查控制工具是否允许运行,Skill Trace 保存调用状态与错误。团队由此可以观察一次任务为何继续、为何停止,以及哪里需要修改 Skill 或工具契约。