RSS 春季
关注
Spring AI 2.0 中的工具调用:一种可组合的代理架构
Spring AI 2.0 重构了工具调用机制,将其作为顾问链中的核心且可组合的功能。智能体现在利用此能力来发现信息并朝着目标采取行动。工具通过在方法上使用 @Tool 注解进行定义,Spring AI 会自动为参数生成 JSON Schema。ToolCallingAdvisor 编排工具执行循环,递归调用 LLM,直到不再生成工具调用。将记忆顾问置于该循环内,可通过持久化完整的工具请求与响应历史来捕获更丰富的上下文。但这需要特定的 ChatMemoryRepository 实现,例如 InMemoryChatMemoryRepository。对于大型工具集,ToolSearchToolCallingAdvisor 提供增量工具披露,以避免上下文膨胀。该顾问使用工具索引,根据自然语言查询逐步暴露相关工具。工具参数增强功能允许在不修改工具代码的情况下动态扩展工具输入 Schema,适用于内部思考场景。MCP 工具集成了远程和本地工具定义,使应用程序能够通过 MCP 服务器消费或暴露由 Spring 管理的工具。本地 @Tool 注解和远程 MCP 工具均使用相同的 ToolCallback 接口,从而无缝将其集成到顾问链中。