循环引用报错需通过四步解决:一、用dag分析器可视化定位闭环节点;二、手动修改skill.yaml或tasks.py,切断环路依赖边;三、启用“dag环路静态检测”预检;四、将高耦合技能拆分为带明确i/o契约的独立子技能。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在导入WorkBuddy技能时遇到循环引用报错,说明该技能包内定义的DAG(有向无环图)任务节点存在相互依赖关系,违反了执行拓扑排序的基本前提。以下是解决此问题的步骤:
一、使用DAG结构可视化工具定位闭环节点
该方法通过图形化方式暴露技能内部任务流的依赖路径,可直观识别形成环路的具体节点组合,避免人工逐行分析YAML/Python定义文件的低效排查。
1、打开WorkBuddy主界面,点击右上角头像图标,进入「Claw 设置」。
2、在左侧菜单中选择「技能调试」,切换至「DAG分析器」标签页。
3、点击「加载本地.skill包」按钮,选择报错技能文件并确认导入。
4、系统自动解析依赖关系后,若检测到环路,将高亮显示所有参与闭环的节点名称,并用红色虚线箭头标出循环路径。
5、点击任一高亮节点,在右侧详情面板查看其input_from与output_to字段完整引用链。
二、手动重构依赖声明并移除冗余边
该方法针对已定位的闭环节点,通过修改技能包内的任务定义文件(如skill.yaml或tasks.py),切断至少一条构成环路的依赖边,确保全局DAG性质恢复。
1、解压报错的.skill文件,使用文本编辑器打开根目录下的skill.yaml(或tasks.py)。
2、查找闭环中任意一个节点(如node_C)的depends_on字段,识别其中指向环内前驱节点(如node_A)的条目。
3、删除该条目,或将该依赖改为由上游稳定节点(如node_ROOT)触发,确保依赖方向始终单向流动。
4、保存文件后,重新打包为.zip格式并重命名为原.skill扩展名。
5、返回WorkBuddy技能管理页,拖入修正后的文件完成覆盖导入。
WorkBuddy 桌宠工厂 —— 给一张角色图、一个 codex.pet 链接、一条 codex-pets.net 下载 URL、或一份现成的精灵表,就能自动创建一只可联动 WorkBuddy 状态的桌面宠物。当用户说"创建桌宠"、"做一只桌宠"、"用这张图做桌宠"、"从 codex.pet 安装桌宠"、"导入 codex 桌宠 XX"、"装一下 codex-pets.net 上的 XX&quo
三、启用自动依赖拓扑校验模式
该方法在导入阶段强制启用DAG合法性预检,提前拦截含环技能包,避免错误进入运行时环境造成后续调用失败。
1、进入「设置」→「高级」→「技能导入策略」。
2、勾选「启用DAG环路静态检测」选项。
3、点击「应用配置」使设置生效。
4、再次尝试导入该技能包,系统将在校验阶段立即弹出提示:检测到任务环路:node_A → node_B → node_C → node_A,请检查depends_on声明。
5、根据提示信息直接跳转至对应节点定义位置进行修正。
四、拆分高耦合技能为独立子技能
该方法适用于长期存在多层嵌套依赖、难以厘清单点环路的复杂技能包,通过物理隔离降低逻辑耦合度,从根本上规避DAG建模风险。
1、识别技能中功能边界清晰的模块(如“数据清洗”、“特征生成”、“模型推理”),将其分别提取为独立.skill包。
2、为每个子技能定义明确的输入接口(如input_schema.yaml)与输出契约(如output_contract.json)。
3、在原技能包中移除所有内部节点依赖,改用invoke_skill指令按序调用子技能。
4、依次导入各子技能,确认均通过DAG校验后再导入主调度技能。
5、执行主技能时,系统将按子技能间显式调用顺序构建跨包DAG,不再解析内部循环。










