关于 configuring-block-policy
用于创建或更新 `.satk/block-policy.json` 的技能,以控制 Agent 可使用哪些 Simulink 模块以及可修改哪些参数。支持排除模块、保护参数、设置策略模式,并在保存前验证。
主要功能
- 01设置模块策略模式
- 02排除指定模块
- 03保护选定参数
- 04保存前验证策略
适用场景
- 01限制 Agent 仅使用获准模块
- 02阻止修改指定模块参数
- 03更新现有模块策略
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ matlab/ simulink-agentic-toolkit --skill configuring-block-policy安装后在 Claude Code 中输入/configuring-block-policy确认已加载。
附带文件manifest.yaml
详细介绍
配置块策略
创建或更新 .satk/block-policy.json——用于控制 Agent 可以使用哪些块(库块或内置块)、排除哪些块,以及 Agent 不应修改哪些块参数的文件。
适用情形
- 用户要求设置、创建或配置块策略
- 用户要求限制或排除块
- 用户希望阻止 Agent 修改某些块参数
building-simulink-models通过策略门控将请求路由至此处
不适用情形
- 正在构建模型 →
building-simulink-models - 改进块描述或类别 →
simulink-curating-library-kg - 声明有哪些库 →
building-simulink-models中的库设置门控
前提条件
- 必须存在
.satk/reuse-libraries.json。
工作流
- 检查状态 —
.satk/block-policy.json是否存在?如果存在,则加载并概述;如果不存在,则从头开始。 - 策略模式 —(未指定库时跳过)询问:倾向于优先使用库,并在必要时回退到内置块,还是仅使用自定义库块(不回退)?
- 排除的块(可选)— 是否有任何不应放置在模型中的块(库块或内置块)?收集
referenceBlock+reason。 - 禁止修改的参数(可选)— 是否有不希望 Agent 修改的块参数?收集
referenceBlock+protectedParams[]。 - 保存 — 使用
library.BlockPolicy.save()验证并写入。
API
policyData = struct();
policyData.policyMode = 'approved_blocks_only';
policyData.fallbackToBuiltins = false;
% Excluded — agent will never place these blocks
policyData.blockedBlocks = struct('referenceBlock', 'LegacyLib/OldCtrl', 'reason', 'Superseded');
% Protected params — agent won't modify these values
policyData.blockRules = struct('referenceBlock', 'Lib/SpeedCtrl', ...
'protectedParams', {{'Kp', 'Ki', 'Kd'}});
library.BlockPolicy.save(projectRoot, policyData);
使用默认设置(无限制):
policyData = library.BlockPolicy.defaults();
library.BlockPolicy.save(projectRoot, policyData);
架构
{
"schemaVersion": 1,
"policyMode": "approved_blocks_only | prefer_customer_libraries",
"fallbackToBuiltins": false,
"blockedBlocks": [
{ "referenceBlock": "LegacyLib/OldController", "reason": "Superseded" }
],
"blockRules": [
{ "referenceBlock": "Lib/SpeedController", "protectedParams": ["Kp", "Ki", "Kd", "SampleTime"] }
]
}
验证规则
policyMode:必须为prefer_customer_libraries或approved_blocks_onlyapproved_blocks_only+fallbackToBuiltins: true→ 拒绝(相互矛盾)protectedParams必须是非空字符串数组- 策略格式错误 → 报错(绝不静默忽略)
更新现有策略
如果 .satk/block-policy.json 已存在:
- 使用
library.BlockPolicy.loadRaw(projectRoot, libConfig)加载 - 概述当前状态——不要重新运行完整向导
- 询问要更改的内容,应用到现有结构体并保存
常见更新:排除某个块、将参数标记为禁止修改、更改模式、移除条目。
防护措施
- 未经用户确认,绝不写入
block-policy.json - 保存前始终进行验证(
library.BlockPolicy.validate(policyData)) - 如果用户提供的块名称不含完整库路径,则在 KG 中查找以解析
referenceBlock
版权所有 2026 The MathWorks, Inc.
评论
支持 Markdown