知行札记
专题AI 模型与系统智能体执行与工具协作

工具、协议与执行边界

分清工具描述、MCP、参数校验、授权、沙箱和界面操作。

工具描述与实际能力

工具定义包括名称、用途、参数和结果,帮助模型选择并形成请求。描述应交代覆盖范围、前提、副作用、失败和返回身份,避免“万能搜索”掩盖数据范围。工具调用只是行动请求,实际能力由宿主和目标系统决定。

执行前校验 schema、对象存在与权限,执行后检查实际结果。工具返回“成功”可能只表示接受任务,异步完成需要进一步状态或回执。工具 schema 本身也属于可被误导的输入,来自不可信服务器的“安全”注解不能代替检查。

MCP 连接哪些对象

MCP 规定宿主、客户端和服务器之间的能力发现与调用。tools 描述可调用功能,resources 提供 URI 寻址资料,prompts 提供模板。宿主取得工具清单,让模型提出请求,再转发调用并取得内容。模型如何选择、是否允许执行和任务怎样结束,仍属于宿主。MCP 2025-06-18 规范

该固定版本使用 JSON-RPC,包含初始化与能力协商,支持 stdio 和 Streamable HTTP 等传输。实际项目需确认双方版本、认证、生命周期、取消和恢复。不同规范版本的生命周期和传输约定可能变化,说明部署能力时需给出实际采用版本。

标准化可以减少每对宿主/服务重复适配,M×NM\times N 到 M+NM+N 只是理想集成模型。认证、数据语义、策略与兼容测试仍需逐组合审查。少量稳定自有工具可能直接分发更简单;跨宿主复用、第三方接入或动态发现能增加协议收益。

工具数量与信息预算

大量描述和 schema 会增加输入,干扰选择并占用预算。按任务提供工具、分组、检索后加载与稳定顺序可以减少载荷。工具检索也可能漏掉必需能力;缓存定义要随版本失效。具体节省比例依工具集合和模型,不能作为固定成本常数。

权限落实在执行点

用户目标限定允许的对象和动作,外部资料不能扩大授权。模型提出动作后,宿主按主体、目标、路径、网络、凭证和当前批准范围判断。敏感动作需要在仍能审查具体效果的位置取得授权,已经明确批准的范围可沿用。

代码执行需按不可信输入设计。语言白名单、AST 检查、进程、容器、系统调用隔离或 microVM 分别提供不同边界;动态代码与允许库可能突破简单静态限制。CPU、内存、磁盘、超时与网络出口也需限制。独立内核减少部分共享攻击面,仍有宿主、映像、控制面和凭证风险。

文件快照只能恢复受控状态,不能撤回已发送消息或外部付款。沙箱网络出口、数据挂载与密钥注入需要最少权限,不能只因运行在容器里就宣称隔离完成。

界面操作的观察条件

截图提供像素,可覆盖 canvas 和原生界面,坐标会受滚动、重绘和缩放影响。无障碍树提供角色与文字,缺语义的自定义控件可能不可见,元素引用随快照失效。代码脚本可以复用与审查,选择器和应用状态变化仍需维护。

选择方法按任务覆盖、观察精度、输出大小与执行风险决定;复杂树未必比截图更省 token。行动前读取适当新状态,行动后观察目标效果。界面上一个按钮名称不能证明背后副作用和账户范围。

最后更新于

本页目录