知识图谱定位:第16节我们拆解了 API 客户端如何可靠地与 LLM 通信——多 Provider 统一抽象、流式响应解析、指数退避重试。但 LLM 返回的不只是文本,更多的是工具调用指令:tool_useblock 里包含工具名和 JSON 参数。从 LLM 说"我要执行Bash命令rm -rf /"到系统真正(或拒绝)执行,中间经过了40+ 种工具定义、15 步执行流水线、6 层权限决策、Hook 拦截、MCP 扩展、流式编排——这就是 Claude Code 最庞大也最精密的子系统。本节将完整拆解src/Tool.ts、src/tools/、src/services/tools/三大模块,让你理解一个生产级 AI Agent 如何在"给 LLM 最大能力"和"保护用户安全"之间找到精确平衡。一、为什么工具系统是 Agent 的核心?1.1 从"聊天机器人"到"Agent"的质变一个只能输出文本的 LLM 是聊天机器人;一个能调用工具的 LLM 是 Agent。这个区别不只是功能上的——它是架构上的根本分野:维度聊天机器人Agent(Claude Code)