Problem:思路对了,如何使用工具精准执行

Claude 本身只会生成文字。工具系统解决的问题是:让生成的文字变成真实的电脑操作。

没有工具系统,Claude 只能说"你应该执行 git commit -m 'fix bug'"——用户还要自己去做。有了工具系统,Claude 可以直接执行,结果回传给 Claude,Claude 继续思考下一步。

这套机制面临三个互相冲突的要求:

  1. 统一:Claude 有几十种工具(Bash、文件读写、搜索、浏览器……),每种实现完全不同,但 Claude 调用它们的方式必须一致
  2. 安全:不同操作危险程度不一样,cat file.txt 和 rm -rf / 不能用同一套权限规则
  3. 灵活:用户可以通过 MCP 协议接入自定义工具,系统不能对工具的内部结构做强假设

工具系统用一个统一接口 Tool 解决了第一个问题,用接口上的若干"安全属性"解决了第二个,用动态注册机制解决了第三个。