工具调用不是“让模型自己写代码”。更可靠的理解是:模型从受限的工具集合中选择一个动作,并提供结构化参数;应用程序仍然负责校验、授权、执行和记录。
这套分工有一个直接收益:模型可以处理自然语言中的模糊意图,而关键系统仍用普通软件工程的方式保持可测试性。函数名、参数模式、返回值与错误码,依旧是产品契约。
工具要小,输入要明确
一个工具只完成一种可解释的动作。例如“查询订单”与“取消订单”应该分开;后者还应由服务端重新确认用户权限和订单状态。不要把“任意执行 SQL”或“调用任意 URL”交给模型。
模型可以建议动作;系统必须决定动作是否被允许。
MCP 为 AI 应用连接工具、资源和提示提供了开放协议。它的架构文档将这些能力区分为不同的原语,也强调由宿主应用维护连接与权限边界。采用协议不能替代审查,但能让接口更一致。
给失败设计一条回路
工具可能超时、参数不完整、权限不足,或者外部数据已经改变。把这些状态以结构化结果返回给模型,再由模型向用户说明下一步,比让模型猜测成功结果安全得多。高风险写操作应要求用户最后确认。

