AI Agent智能体开发实战2
第2章 工具调用——Agent的手脚
学习目标:掌握Function Calling的底层机制,学会设计高质量的工具描述Schema,理解MCP协议的标准化价值,并构建具备错误处理和性能优化的生产级ToolExecutor。
2.1 Function Calling原理:从文本生成到结构化调用
2.1.1 从Completion到Tool Call的范式跃迁
早期的LLM交互基于纯文本补全(Text Completion)。开发者通过精心设计的提示词诱导模型输出特定格式的文本,再用正则表达式或简单解析器提取结构化信息。这种模式的脆弱性在于:模型随时可能"放飞自我",输出不符合预期的格式。
Function Calling(函数调用)的引入是一次根本性变革。它不是让模型"猜测"该输出什么格式,而是通过**约束解码(Constrained Decoding)**技术,在token生成阶段就强制模型遵循预定义的JSON Schema。
从工程视角看,Function Calling完成了三个关键抽象:
- 意图识别抽象:模型自动判断是否需要调用工具,无需外部分类器
- 参数结构化抽象:模型输出严格的JSON参数,而非自由文本
- 执行流控制抽象:系统通过解
