大模型、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 导入、发布与回滚

  1. 在隔离暂存区接收包,先检查大小、类型与清单,不在 Agent 工作目录直接解压。
  2. 校验规范化后的目标路径处于暂存根内,拒绝绝对路径、路径穿越、链接及路径碰撞。
  3. 防范大小写碰撞、特殊设备名称、异常嵌套和超量解压,拒绝可能改变目标路径的元数据。
  4. 校验固定来源、版本和摘要或签名,失败时留存脱敏审计并清理暂存内容。
  5. 静态审查声明能力、代码入口、依赖和兼容范围,生成不可变审核对象。
  6. 审核通过后进入可部署目录;部署到指定范围仍需独立操作和审计。
  7. 更新创建新版本并重新审核,不继承旧版本对新内容的批准。
  8. 回滚只允许已审核且仍兼容的版本,重新校验当前权限与紧急禁用状态。

审核、部署与启用是独立记录;任何一步失败都不能使包出现在可调用目录。 任务绑定具体 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、隔离运行与模拟测试分别记录,未验证项不能写为上线通过。

只有对应模块的契约、实现、负向测试、审计和运维处置均具备证据,才能从默认关闭转为受控开放。