大模型、Skill 与 MCP 扩展
补编设计稿,2026-10-20;实施状态见阅读导航。本文件依据现有项目约定补写,不是缺失原文的恢复,也不表示功能已经实现。
1. 范围与默认状态
本稿定义基础任务闭环之后的扩展边界,模型、Skill、MCP 和可执行扩展默认关闭。
首版设备执行能力仍限定为 browser.open_url,不得通过通用工具接口间接开放桌面、Shell 或未知能力。
根 AGENTS.md 优先;统一任务和授权机制见正式开发规格。
密钥生命周期见用户权限与模型密钥,计划确认见聊天式远程控制。
所有容量、调用、网络与预算限制取自设计决策与参数基线。
本文登记字段、生命周期及接口均属规划,开放前必须形成迁移、共享 Schema 和适用验收记录。
数据库登记一项扩展、安装一个包或发现一个工具,都不代表获得执行许可。
2. 执行信任边界
| 组件 | 可以做的事 | 不得承担的权限 |
|---|---|---|
| 模型适配器 | 请求批准的服务商,返回答复或结构化建议 | 决定用户角色、绕过审批、直接操作设备 |
| 计划校验器 | 验证 Schema、目标、预算及能力映射 | 信任模型自报的身份或风险结论 |
| Skill 注册表 | 保存固定版本、来源、声明能力和审核记录 | 使自然语言指令自动变成授权 |
| MCP 注册表 | 绑定受审查服务端、工具 Schema 和版本 | 因工具被发现就默认启用 |
| 工具执行网关 | 每次授权、生成任务、绑定确认与审计 | 接受任意命令或绕过设备本地策略 |
| Windows Agent | 在独立身份和本地策略下执行批准任务 | 读取模型密钥、修改策略或自动提权 |
模型工具定义由服务端根据当前用户能力生成;模型提出未列出的工具时直接拒绝。 工具返回、网页、附件和 Skill 文本均是不可信数据,不可修改系统授权规则。 任务执行权限取当前用户、目标设备、已启用能力、工具许可、审批和本地策略的交集。 扩展升级、任务重放、模型切换或故障转移均不能扩大这个交集。
3. 模型适配层
适配器提供统一的输入、结构化输出、流式事件、错误映射和用量记录,业务服务不依赖服务商私有响应格式。 服务商、地址和模型应从批准目录选择;自定义地址仍需登记审核,不开放任意 URL 代理。 请求前检查模型配置所有者、密钥版本、调用预算、内容出站许可和功能开关。 只发送本次请求必要内容,不默认上传设备凭据、完整审计、他人聊天或未授权文件。 模型工具建议经严格 Schema 校验后转为计划;不能直接透传成 Agent 消息。 流式文本与工具参数分别处理,未接收完整且通过校验的参数不得提前执行。 超时、超限或结构化输出失败应停止该轮工具处理,不能尝试“修复”为宽松的任意执行参数。 服务商故障转移必须选择已获用户许可的目标,重新检查密钥作用域和数据出站范围。 调用日志保存必要标识、耗时、错误分类与用量,默认不记录原始密钥和完整提示词。
4. 出站网络控制
- 模型和远程 MCP 只允许经批准的 TLS 目标,并执行证书验证。
- 地址规范化后校验协议、域名、端口与策略;禁止 URL 用户信息、混淆表示和不受控代理配置。
- 默认拒绝环回、私网、链路本地、云元数据及其他禁止地址,兼顾 IPv4 和 IPv6。
- DNS 检查必须绑定实际连接目标;不能在预检后让底层客户端重新解析到另一地址。
- 每次重定向都按完整规则重新验证,不能自动携带秘密跨主机跳转。
- 明确限制连接、读取、总时长、响应体、流式消息和解析资源。
- 网络异常输出脱敏,不把授权头、带密钥 URL 或完整响应体写入普通日志。
- 网络策略由服务器控制,模型或扩展包不能自行增加允许域名。
- 若无法证明应用层校验覆盖实际连接,应使用受控出口实现并验证边界,不能仅做字符串黑名单。
5. Skill 包清单
Skill 清单至少声明固定标识、不可变版本、来源、内容摘要、兼容范围、入口、所需能力和审核信息。 来源信任与内容完整性分别验证;孤立哈希只能说明内容一致,不能证明发布者可信。 同一标识与版本对应内容发生变化时拒绝导入,不允许原地覆盖已经批准版本。 声明能力是审核输入,不是实际授权;最终执行仍逐次检查当前用户和设备权限。 纯文本 Skill 也可能诱导越权,必须经过同样的来源与内容审核。 可执行 Skill 默认禁用;未建立隔离、签名验证、资源限制和终止机制前不得开放。 包内不得包含设备凭据、模型密钥、真实用户数据或要求关闭安全工具的脚本。
6. Skill 导入、发布与回滚
- 在隔离暂存区接收包,先检查大小、类型与清单,不在 Agent 工作目录直接解压。
- 校验规范化后的目标路径处于暂存根内,拒绝绝对路径、路径穿越、链接及路径碰撞。
- 防范大小写碰撞、特殊设备名称、异常嵌套和超量解压,拒绝可能改变目标路径的元数据。
- 校验固定来源、版本和摘要或签名,失败时留存脱敏审计并清理暂存内容。
- 静态审查声明能力、代码入口、依赖和兼容范围,生成不可变审核对象。
- 审核通过后进入可部署目录;部署到指定范围仍需独立操作和审计。
- 更新创建新版本并重新审核,不继承旧版本对新内容的批准。
- 回滚只允许已审核且仍兼容的版本,重新校验当前权限与紧急禁用状态。
审核、部署与启用是独立记录;任何一步失败都不能使包出现在可调用目录。 任务绑定具体 Skill 版本和内容摘要,不能执行时解析为浮动的“最新版”。 紧急禁用优先于历史审核和回滚许可,禁用版本不得通过恢复数据库或回滚重新启用。 运行中的扩展在撤销后停止后续步骤;已经发生的副作用按任务真实结果处理。
7. MCP Server 与工具登记
| 登记对象 | 必须绑定的信息 |
|---|---|
| Server | 固定标识、所有者或管理范围、传输方式、批准目标、凭据引用及状态 |
| 远程连接 | 批准的 TLS 地址、认证方式、网络策略和兼容范围 |
| stdio 连接 | 登记的可执行文件、固定版本或摘要、类型化允许参数与受控运行身份 |
| 工具 | Server 标识、固定工具名、输入及输出 Schema 摘要、能力映射、风险和启用状态 |
| 调用 | 请求者、计划或确认、工具及 Schema 版本、任务关联、预算和审计 |
不允许客户端提交任意 stdio 命令、可执行路径或自由拼接参数。 stdio 工具不得继承包含平台秘密的整个进程环境;工作目录、环境和文件访问范围应明确限制。 工具发现只更新待审核目录,新发现工具默认禁用。 输入或输出 Schema、工具描述、Server 来源或执行文件发生变化时,禁用受影响工具并重新审核。 工具名相同不代表语义相同,不得仅凭名称沿用旧审核或审批。 输出按声明类型与大小校验,包含可执行内容或嵌套工具建议时仍作为不可信数据处理。 远程工具返回的 URL、资源或附件若需要进一步访问,应重新做对象授权及网络检查。 授权撤销后关闭适用连接或会话,并使缓存能力目录失效。
8. 工具调用与任务映射
工具执行网关将每个设备动作转为具备身份、超时、幂等和审计的任务,沿用统一状态机。
任务绑定已审核工具及 Schema 版本、不可变参数摘要和适用确认或审批,不携带模型秘密。
创建任务、分发、逻辑开始许可和 Agent 执行检查均不能被扩展绕过。
尚未纳入共享协议的工具能力保持禁用,不能用通用 execute 字段承载任意动作。
无设备目标的服务器工具不在本稿的执行范围;不得伪造 device_id,需另行设计版本化任务契约后开放。
工具描述中的“安全”“只读”等文字不构成风险证明;风险等级和审批由服务端政策确定。
相同幂等键、相同内容返回已有记录;相同键、不同工具版本或参数必须拒绝。
收到重复结果时去重,迟到或乱序结果不得覆盖已经确认的最终事实。
已创建任务在尚未执行且可证明未产生执行副作用时被扩展或 Agent 拒绝,记录 task.rejected 并转为 failed,不新增持久化拒绝状态。执行后的异常、结果解析失败或联系中断应根据实际证据处理为失败或 unknown_outcome,不得用执行前拒绝掩盖副作用。
任务结果不确定时使用 unknown_outcome 并停止自动重试,不能由模型自行判断“再执行一次即可”。
9. 预算、隔离与紧急禁用
- 模型费用、工具调用次数、步骤数、并发、时长与输出限额在请求前检查并预留,完成后结算实际用量。
- 用户、平台和服务商限制同时适用;不能通过新会话、改模型或换工具名绕过额度。
- 扩展运行身份使用最小权限,不提供管理员凭据,不允许关闭安全工具或绕过 UAC。
- 紧急禁用可按全局、用户、Server、Skill 版本或工具执行,记录操作者、原因和影响范围。
- 禁用先阻止新任务与新开始许可,再停止后续编排并请求终止适用的在途执行。
- 已逻辑开始的任务不能保证没有副作用,保留真实结果与取消确认。
- 缓存目录、连接池与工作流恢复均检查最新禁用状态,不能仅等待缓存自然过期。
- 回滚与恢复流程必须保留撤销记录,不得重启后自动恢复已禁用工具。
- 重新启用要求原因、验证证据及审计,不能由工具自身请求或模型输出触发。
10. 验收与开放条件
- 功能关闭时验证直接接口、伪造工具、旧缓存和恢复调度均无法触发执行。
- 使用不同用户验证模型配置、工具目录、任务输出和凭据引用的对象隔离。
- 验证恶意提示词、Skill 文本和 MCP 返回不能更改角色、白名单或请求任意命令。
- 验证路径穿越、符号链接、大小写碰撞、超量解压、摘要篡改和同版本不同内容被拒绝。
- 验证未审核工具、新工具和 Schema 变化后的工具保持禁用。
- 验证实际连接层面的 DNS 变化、重定向、IPv6、云元数据和响应超限拒绝路径。
- 验证预算预留的并发竞争、调用超时、配置撤销及故障转移的出站授权。
- 验证紧急禁用与开始许可并发、执行中的取消、离线重连与回滚后的禁用保持。
- 真实外部服务、真实 Windows、隔离运行与模拟测试分别记录,未验证项不能写为上线通过。
只有对应模块的契约、实现、负向测试、审计和运维处置均具备证据,才能从默认关闭转为受控开放。