SuperAPI AI 工具集

configuring-block-policy

智能体与模型

查看项目

更新于 10-16 00:21

技能介绍

用途:创建或更新 .satk/block-policy.json,该文件控制智能体可使用的模块(库模块或内置模块)、被排除的模块,以及智能体不应修改的模块参数。

适用时机:用户要求设置、创建或配置模块策略;要求限制或排除模块;希望阻止智能体修改某些模块参数;building-simulink-models 通过策略门控路由到此。不适用:正在构建模型、改进模块描述或分类、声明存在哪些库。

前提:.satk/reuse-libraries.json 必须已存在。

工作流:检查 .satk/block-policy.json 是否存在,存在则加载并汇总,否则新建;询问策略模式(优先库并回退内置,或仅自定义库不回退);可选收集需排除的模块(referenceBlock + reason);可选收集受限参数(referenceBlock + protectedParams[]);用 library.BlockPolicy.save() 校验并写入。

API 示例:policyData.policyMode = 'approved_blocks_only'; policyData.fallbackToBuiltins = false; policyData.blockedBlocks = struct('referenceBlock', 'LegacyLib/OldCtrl', 'reason', 'Superseded'); policyData.blockRules = struct('referenceBlock', 'Lib/SpeedCtrl', 'protectedParams', {{'Kp', 'Ki', 'Kd'}}); library.BlockPolicy.save(projectRoot, policyData); 默认无限制可用 library.BlockPolicy.defaults()。

Schema 字段:schemaVersion、policyMode(approved_blocks_only | prefer_customer_libraries)、fallbackToBuiltins、blockedBlocks、blockRules。

校验规则:policyMode 必须为 prefer_customer_libraries 或 approved_blocks_only;approved_blocks_only 与 fallbackToBuiltins: true 冲突会被拒绝;protectedParams 必须为非空字符串数组;格式错误的策略报错而非静默忽略。

更新已有策略:用 library.BlockPolicy.loadRaw(projectRoot, libConfig) 加载,汇总当前状态而不重跑完整向导,询问更改后应用到现有结构并保存。常见更新包括排除模块、标记参数受限、更改模式、删除条目。

护栏:未经用户确认不得写入 block-policy.json;保存前始终用 library.BlockPolicy.validate(policyData) 校验;若用户只给模块名而无完整库路径,需在知识图谱中查找以解析 referenceBlock。