SuperAPI AI 工具集

langchain4j-tool-function-calling-patterns

智能体与模型

查看项目

更新于 10-15 21:52

技能介绍

用途:为 LangChain4j(Java)应用提供工具与函数调用(Tool / Function Calling)的实现模式,让大模型除生成文本外,还能执行数据库查询、API 调用、计算和业务系统集成。

主要能力:用 @Tool 注解把 Java 方法标记为可调用工具,首个参数写工具描述;用 @P 描述每个参数以引导模型;通过 AiServices.builder().tools() 注册工具实例;支持 @ToolMemoryId 注入会话/用户 ID、动态 ToolProvider、ReturnBehavior.IMMEDIATELY 立即返回不等模型响应。可配置 toolExecutionErrorHandler、hallucinatedToolNameStrategy、toolArgumentsErrorHandler 处理异常与模型虚构的工具名;用 executeToolsConcurrently(Executor) 并发执行独立工具,用 toolExecutionTimeout(Duration) 设置超时。

使用方式示例:定义工具类方法 @Tool("Get current weather for a city") public String getWeather(@P("City name") String city, ...);再 MathAssistant assistant = AiServices.builder(MathAssistant.class).chatModel(chatModel).tools(new Calculator()).build();随后调用 assistant.chat("...") 触发工具。

适用场景:构建可调用天气、行情、数据库等外部工具的 AI 智能体;定义函数规格;管理工具集与错误处理;实现上下文感知工具与大工具集的按需注册。

限制与注意:不要在 @Tool/@P 描述中放密钥等敏感数据;有副作用的工具应在描述中提示,模型可能多次调用;工具过多会干扰模型,宜用 ToolProvider 条件注册;避免无超时的阻塞 I/O;异常须经错误处理器返回安全字符串,不暴露堆栈;使用并发执行时工具类需无状态或线程安全;@Tool 描述与 @P 参数描述不精确会直接导致错误调用。更多细节见 references/ 下相关文档。具体版本与配置细节资料未完整提供。