跳转到内容

Slim 模式:最小工具集设计

Slim 模式:最小工具集设计

学习目标

本章分析 Chrome DevTools MCP 的 Slim 模式设计。你将理解:

  • 为什么需要最小工具集(简单任务不需要 40+ 工具)
  • 3 个核心工具的选择逻辑:导航、截图、脚本执行
  • SlimMcpResponseMcpResponse 的差异
  • --slim 如何影响 pageId routing、输入 schema 等

项目实践

3 个核心工具的选择逻辑

Slim 模式仅暴露 3 个工具:

工具对应能力为什么必须
navigate去到(Go)Agent 需要加载目标页面
screenshot看到(See)Agent 需要查看页面外观
evaluate执行(Do)Agent 需要与页面交互

这三个工具覆盖了看到、去到、执行的最小闭环,适合不需要 DevTools 高级能力(性能分析、网络调试、无障碍快照)的简单场景。

工具切换逻辑

createTools(args):
if (args.slim):
return slimTools (3 tools)
else:
return all tools (40+ tools from 13 modules)

SlimMcpResponse 与 McpResponse 的差异

SlimMcpResponseMcpResponse 的精简版:

方法McpResponseSlimMcpResponse
appendResponseLine
attachImage
includeSnapshot❌(Slim 无 AXTree)
setIncludeNetworkRequests❌(Slim 无 NetworkCollector)
setIncludeConsoleData❌(Slim 无 ConsoleCollector)
attachTraceSummary❌(Slim 无性能工具)
attachLighthouseResult❌(Slim 无 Lighthouse)

pageIdRouting 在 Slim 模式中被禁用

const inputSchema =
tool.pageScoped &&
serverArgs.experimentalPageIdRouting &&
!serverArgs.slim // ← Slim 模式不注入 pageId
? { ...pageIdSchema, ...tool.schema }
: tool.schema;

原因:Slim 模式面向简单场景,不需要多 Agent 并发操作。

何时使用 Slim 模式

适合 Slim 的场景

  • 只需要”打开网页 → 截图 → 填表”的任务
  • Token 预算有限(Agent 的上下文窗口小)
  • 工具列表过短降低 Agent 选择负担

不适合 Slim 的场景

  • 需要性能分析(Lighthouse、Trace)
  • 需要网络调试(请求检查)
  • 需要无障碍树导航(复杂表单/动态内容)
  • 需要多 Agent 并发

设计取舍

取舍选择原因
复用 Response 基类 vs 独立实现复用 + 精简保持 API 一致,减少维护成本
3 个 vs 5 个核心工具3 个Go + See + Do 覆盖最小闭环
Slim 独立代码 vs 子集过滤独立工具模块避免运行时判断,构建时即可确定

陷阱与对策

陷阱后果对策
在 Slim 模式下调用不支持的工具Agent 看不到该工具注册时过滤(createTools 中判断 slim)
Agent 期望 AXTree 但 Slim 不支持快照功能不可用使用 evaluate 代替
忘记同时更新两套 Response行为不一致SlimMcpResponseMcpResponse 共享基类/接口

参考来源