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在单个工具中混合了全部三种模式。”
来源摘要
正在获取来源并生成中文摘要…