1. Spring AI工具配置概述
在构建AI驱动的应用程序时,工具调用(Tool Calling)是一个关键功能。Spring AI 1.x提供了灵活的机制来配置和管理工具,支持全局默认配置和运行时动态配置两种模式。这种设计允许开发者在不同场景下灵活控制工具的行为。
工具配置的核心价值在于:
- 解耦工具定义与使用:将工具实现与调用逻辑分离
- 动态性:运行时根据需要启用/禁用特定工具
- 复用性:全局工具可被多个对话共享
- 安全性:精确控制工具的执行上下文
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 全局默认工具配置
2.1 配置方式与生命周期
全局默认工具通过defaultTools()方法配置,其生命周期与创建它们的ChatClient.Builder或ChatModel实例绑定:
java复制// 配置全局默认工具的ChatClient
ChatClient chatClient = ChatClient.builder(chatModel)
.defaultTools(new DateTimeTools(), new WeatherTools())
.build();
// 配置全局默认工具的ChatModel
ChatModel chatModel = OllamaChatModel.builder()
.ollamaApi(OllamaApi.builder().build())
.defaultOptions(ToolCallingChatOptions.builder()
.toolCallbacks(ToolCallbacks.from(new DateTimeTools()))
.build())
.build();
关键特点:
- 全局工具对所有通过该构建器创建的ChatClient实例可见
- 适用于需要跨多个对话共享的工具(如通用工具)
- 生命周期长,通常伴随应用整个运行周期
2.2 典型使用场景
全局工具特别适合以下场景:
- 常用工具:如时间日期工具、单位转换等基础功能
- 低风险工具:不涉及敏感数据或关键业务逻辑的操作
- 高频使用工具:需要被
