Spring AI Alibaba 28|Hooks 与 Interceptors · 实际示例
示例 1:内容审核 Interceptor public class ContentModerationInterceptor extends ModelInterceptor { private static final List<
Spring AI Alibaba 27|Hooks 与 Interceptors · 自定义 Hooks 和 Interceptors:使用 RunnableConfig 跨调用共享数据
RunnableConfig 提供了一个 context() 方法,允许你在同一个执行流程中的多个 Hook 调用、多轮模型或工具调用之间共享数据。这对于实现计数器、累积统计信息或跨多次调用维护状态非常有用。 适用场景: 跟踪模型或工具调用
Spring AI Alibaba 26|Hooks 与 Interceptors · 自定义 Hooks 和 Interceptors:ModelInterceptor
拦截和修改模型请求和响应: import com.alibaba.cloud.ai.graph.agent.interceptor.ModelInterceptor; import com.alibaba.cloud.ai.graph.ag
Spring AI Alibaba 25|Hooks 与 Interceptors · 自定义 Hooks 和 Interceptors:MessagesModelHook vs ModelHook:如何选择?
MessagesModelHook 和 ModelHook 都可以在模型调用前后执行自定义逻辑,但它们有不同的设计目标和适用场景。 核心区别 特性MessagesModelHookModelHook易用性⭐⭐⭐⭐⭐ 更简单,直接操作消息列表
Spring AI Alibaba 24|Hooks 与 Interceptors · 自定义 Hooks 和 Interceptors:ModelHook
在模型调用前后执行自定义逻辑: import com.alibaba.cloud.ai.graph.agent.hook.ModelHook; import com.alibaba.cloud.ai.graph.agent.hook.Hoo
Spring AI Alibaba 23|Hooks 与 Interceptors · 自定义 Hooks 和 Interceptors:MessagesModelHook
MessagesModelHook 是一个专门用于操作消息列表的 Hook,使用更简单,更推荐。它直接接收和返回消息列表,无需处理复杂的 OverAllState。 适用场景: 消息修剪、过滤或转换;添加系统提示或上下文消息;消息压缩和摘要
Spring AI Alibaba 22|Hooks 与 Interceptors · 内置实现
让开发者在每个步骤控制和自定义 Agent 执行。 Hooks 和 Interceptors 提供了一种更精细控制 Agent 内部行为的方式。 核心 Agent 循环涉及调用模型、让其选择要执行的工具,直到不需要调用工具时完成。 Hook