Tool Capability Compartmentalization

Nikola Balic (@nibzard)· emerging

问题

模型上下文协议(MCP)鼓励工具的“混搭”使用——通常会将私有数据读取器、网络获取器和写入器整合到单个可调用单元中。这加剧了提示注入链的杀伤力。

方案

在工具层采用能力分域隔离

  • 将单体工具拆分为读取器(reader)、*处理器(processor)写入器(writer)*微工具。
  • 当跨能力类别组合工具时,每次调用都必须获得用户的显式同意。
  • 每个类别在独立子进程中运行,配备范围限定的API密钥与文件权限。
# tool-manifest.yml
email_reader:
  capabilities: [私有数据, 不可信输入]
  permissions:
    fs: 只读:/mail
    net: 无

issue_creator:
  capabilities: [外部通信]
  permissions:
    net: 白名单:github.com

如何使用

  • 从CI自动生成清单文件。
  • 你的Agent运行器在制定行动计划前会查阅该清单文件。
  • 对任何可能重现“致命三重组合”的工具链式调用尝试进行标记告警。

权衡

优点:细粒度;与模块化架构适配性良好。 缺点:工具链开销更大;存在随时间推移发生权限蔓延的风险。

参考文献

关键词

Willison提出警告,明确单个MCP工具中混合了全部三种模式。

直译

Willison警告称:“一个MCP在单个工具中混合了全部三种模式。”

来源摘要

正在获取来源并生成中文摘要…

来源: https://simonwillison.net/2025/Jun/16/lethal-trifecta/

← 返回社区